<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-33887471</id><updated>2012-01-18T00:28:04.136+02:00</updated><category term='LINQ'/><category term='Kids'/><category term='Visual Studio'/><category term='Microsoft'/><category term='XSLT'/><category term='XSL'/><category term='SQL'/><category term='CRM'/><category term='CSS'/><category term='Organization Chart'/><category term='Javascript'/><category term='Designer'/><category term='SilverLight'/><category term='TFS'/><category term='PerformancePoint'/><category term='UI'/><category term='CAML'/><category term='SPS2010'/><category term='SharePoint 2010'/><category term='XNA'/><category term='WEB'/><category term='SharePoint Backup'/><category term='orgchart'/><category term='C#'/><category term='Browser'/><category term='Games'/><category term='PowerShell'/><category term='Firefox'/><category term='IE8'/><category term='Sharepoint'/><category term='Accelerator'/><category term='HTML'/><category term='SPSArabia'/><category term='CQWP'/><category term='IE'/><category term='MOSS'/><category term='VS'/><category term='Query'/><category term='XBOX'/><category term='Windows 7'/><title type='text'>Osama Mourad</title><subtitle type='html'>A Devigner (Developer + Designer) from Egypt</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>68</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-33887471.post-4058528599782506597</id><published>2011-12-20T15:36:00.002+02:00</published><updated>2011-12-20T15:39:18.077+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShell script to configure your SharePoint Services</title><content type='html'>Check this link if you want to configure your SharePoint 2010 services from PowerShell script http://todd-carter.com/post/2010/04/26/The-Wizard-Likes-His-GUIDs.aspx&lt;br /&gt;&lt;br /&gt;The good thing here is that documenting these scripts is much more easier than documenting step by step with images to do it from the central admin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-4058528599782506597?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/4058528599782506597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=4058528599782506597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/4058528599782506597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/4058528599782506597'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2011/12/powershell-script-to-configure-your.html' title='PowerShell script to configure your SharePoint Services'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-3459711634705449858</id><published>2011-12-15T16:51:00.004+02:00</published><updated>2011-12-15T23:41:15.177+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='PerformancePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>PerformancePoint error after adding new servers to the farm</title><content type='html'>&lt;p class="MsoNormal"&gt;I was adding two front end servers to a SharePoint farm this week, and I got an error in all the dashboards when the load balancer redirect to these two servers:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;PerformancePoint  Services could not connect to the specified data source. Verify that either the  current user or Unattended Service Account has read permissions to the data  source, depending on your security configuration. Also verify that all required  connection information is provided and correct.&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;System.Data.SqlClient.SqlException:  A network-related or instance-specific error occurred while establishing a  connection to SQL Server. The server was not found or was not accessible. Verify  that the instance name is correct and that SQL Server is configured to allow  remote connections. (provider: Named Pipes Provider, error: 40 - Could not open  a connection to SQL Server)&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection  owningObject)&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection  owningConnection)&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection  owningObject)&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection  owningConnection)&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection  outerConnection, DbConnectionFactory connectionFactory)&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at System.Data.SqlClient.SqlConnection.Open()&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at System.Data.SqlClient.SqlConnection.Open()&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at  Microsoft.PerformancePoint.Scorecards.DataSourceProviders.SqlTabularDataSourceProvider.GetConnection()&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at  Microsoft.PerformancePoint.Scorecards.DataSourceProviders.SqlTabularDataSourceProvider.GetConnection()&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at  Microsoft.PerformancePoint.Scorecards.DataSourceProviders.SqlTabularDataSourceProvider.GetConnection()&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;    at  Microsoft.PerformancePoint.Scorecards.DataSourceProviders.SqlTabularDataSourceProvider.GetDataSetInternal(Int32  maximumRows)&lt;/span&gt;&lt;/p&gt; &lt;p style="LINE-HEIGHT: 9.75pt; BACKGROUND: white" class="MsoNormal"&gt;&lt;span   &gt;PerformancePoint  Services error code 201.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;And finally I found the solution here &lt;a href="http://social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/c488cf76-2515-440f-b3f8-9cfad689c5b6/"&gt;http://social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/c488cf76-2515-440f-b3f8-9cfad689c5b6/&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I’m just posting the URL in my blog to make sure that I will find it again as it helped me a lot, it has all the possible places to check.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Also you have to see if the servers are configured for Kerberos delegation if you have it, and the claims to windows token service account has the right permission on the servers as per this document &lt;a href="https://outlook.rdacorp.com/owa/redir.aspx?C=06672fe135b04e72b6516ad5a3f6dd39&amp;amp;URL=http%3a%2f%2fwww.microsoft.com%2fdownload%2fen%2fdetails.aspx%3fdisplaylang%3den%26id%3d23176" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=23176&lt;/a&gt;, and check the user groups on the servers to make sure that the service accounts are in the right place. you can also check the binding in the ISS and make sure that the required applications are running. Also check the web.config and the e-mail settings in iis (6)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-3459711634705449858?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/3459711634705449858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=3459711634705449858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3459711634705449858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3459711634705449858'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2011/12/performancepoint-error-after-adding-new.html' title='PerformancePoint error after adding new servers to the farm'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6358121250437382448</id><published>2011-11-22T20:43:00.002+02:00</published><updated>2011-11-22T20:45:44.617+02:00</updated><title type='text'>Get Public Key External Tool</title><content type='html'>&lt;div&gt;Another good external tool command is to get the public key token of your assembly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Title: Get Public Key&lt;/div&gt;&lt;div&gt;Command: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\sn.exe&lt;/div&gt;&lt;div&gt;Arguments: -Tp "$(TargetPath)"&lt;/div&gt;&lt;div&gt;Use Output Window: Yes&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6358121250437382448?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6358121250437382448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6358121250437382448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6358121250437382448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6358121250437382448'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2011/11/get-public-key-external-tool.html' title='Get Public Key External Tool'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-3303890643983193389</id><published>2011-10-19T19:08:00.003+02:00</published><updated>2011-10-19T19:15:01.059+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Know which process to debug</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With each new machine or new setup I'm searching for this information to know which w3wp process is mine to debug, so I'm adding it here in my blog to find it easily next time and to be available to everyone who search for the same information.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;go to Tools from the upper menu, then External tool and add a new command:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/-IbiP58L-fAI/Tp8E8-vre1I/AAAAAAAAAF0/6yA4W-e3rjg/s1600/PID.PNG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 342px; height: 400px;" src="http://4.bp.blogspot.com/-IbiP58L-fAI/Tp8E8-vre1I/AAAAAAAAAF0/6yA4W-e3rjg/s400/PID.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5665252301937015634" /&gt;&lt;/a&gt;&lt;br /&gt;The ID displayed in the output menu beside your application pool name is yours, and this is the process ID that you can select when you want to debug your application.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-3303890643983193389?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/3303890643983193389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=3303890643983193389' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3303890643983193389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3303890643983193389'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2011/10/know-which-process-to-debug.html' title='Know which process to debug'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-IbiP58L-fAI/Tp8E8-vre1I/AAAAAAAAAF0/6yA4W-e3rjg/s72-c/PID.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-7263290432094420304</id><published>2011-05-10T10:09:00.002+02:00</published><updated>2011-05-10T10:13:13.247+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Moving SPWeb inside the SPSSite in SharePoint 2010 using PowerShell</title><content type='html'>&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;This script will move the site “ToBeMoved” to be under “ToBeMovedTo” and change its Url and Title to “Moved”&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;$w = Get-SPWeb 'http://servername/ToBeMoved'&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt;$w.Url&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt;$w.ServerRelativeUrl = '/ToBeMovedTo/Moved'&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt;$W.Title = 'Moved'&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt;$w.Update()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Calibri;"&gt;$w.Url&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="MARGIN: 0in 0in 10pt" class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;Please note that it will take some time to be updated.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-7263290432094420304?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/7263290432094420304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=7263290432094420304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7263290432094420304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7263290432094420304'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2011/05/moving-spweb-inside-spssite-in.html' title='Moving SPWeb inside the SPSSite in SharePoint 2010 using PowerShell'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-3012470759472325705</id><published>2011-03-13T09:42:00.001+02:00</published><updated>2011-03-13T09:45:02.214+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>SPDiscussionBoard after 6 years!</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(68, 68, 68); font-family: Arial, 'Helvetica Neue', sans-serif; font-size: 15px; line-height: 19px; "&gt;Just published &lt;a href="http://spdiscussionboard.codeplex.com/" target="_blank" rel="nofollow" class="twitter-timeline-link" url="http://spdiscussionboard.codeplex.com/" title="http://spdiscussionboard.codeplex.com/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 65, 107); text-decoration: none; "&gt;http://SPDiscussionBoard.codeplex.com/&lt;/a&gt; was developed on 2005 with &lt;a href="http://twitter.com/#!/search?q=%23SharePoint" title="#SharePoint" class="  twitter-hashtag" rel="nofollow" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 65, 107); text-decoration: none; "&gt;#SharePoint&lt;/a&gt; into consideration before working on SP.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(68, 68, 68); font-family: Arial, 'Helvetica Neue', sans-serif; font-size: 15px; line-height: 19px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(68, 68, 68); font-family: Arial, 'Helvetica Neue', sans-serif; font-size: 15px; line-height: 19px; "&gt;SPDiscussionBoard started on 2005 while developing an ASP.NET forum and taking  into consideration that I may use it on SharePoint in a day. Yesterday I  remembered that, and started to alter it to run as a webpart inside SharePoint  2010, and it took about 4 hours to work.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-3012470759472325705?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/3012470759472325705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=3012470759472325705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3012470759472325705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3012470759472325705'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2011/03/spdiscussionboard-after-6-years.html' title='SPDiscussionBoard after 6 years!'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-2910736267941326983</id><published>2010-11-19T21:25:00.001+02:00</published><updated>2010-11-19T21:26:14.120+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='orgchart'/><category scheme='http://www.blogger.com/atom/ns#' term='Organization Chart'/><title type='text'>My Silverlight 4.0 Organization Chart is now on CodePlex</title><content type='html'>Find the source code here http://silverorgchart.codeplex.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-2910736267941326983?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/2910736267941326983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=2910736267941326983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2910736267941326983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2910736267941326983'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/11/my-silverlight-40-organization-chart-is.html' title='My Silverlight 4.0 Organization Chart is now on CodePlex'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-7027033681646913862</id><published>2010-10-09T17:21:00.001+02:00</published><updated>2010-10-09T17:22:42.464+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>SharePoint 2010 Language Pack on Windows 7</title><content type='html'>Detailed post on how to install the SharePoint server language pack on Windows 7&lt;br /&gt;&lt;br /&gt;http://johnnyharbieh.wordpress.com/2010/04/08/installing-language-packs-on-windows-7-for-sharepoint-server-2010-rc/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-7027033681646913862?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/7027033681646913862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=7027033681646913862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7027033681646913862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7027033681646913862'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/10/sharepoint-2010-language-pack-on.html' title='SharePoint 2010 Language Pack on Windows 7'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-14129721278502806</id><published>2010-09-30T11:04:00.008+03:00</published><updated>2010-10-09T17:15:20.083+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>SharePoint Multilingual User Interface “MUI”</title><content type='html'>&lt;p class="MsoNormal"&gt;In a MOSS 2007 project, the customer requested from us to make the interface of the document library in the English site displayed in Arabic and vice versa based on the user choice, because the one who will manage the documents may not be able to understand the Arabic and another one may not be able to understand English.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I searched for a ready solution but I did not find any, and for sure I’ll not develop the same screens to make the same functionality just to add this feature. And working on client side, jQuery for example to replace the text based on an array will be also a long and should be done not just based on the text string.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Another solution is to change the UI culture of the response in a custom MasterPage based on the user selections, but this was the result:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_GUHozeIg7kI/TKRFnHRYiXI/AAAAAAAAAEc/fak9t47S5aI/s1600/CultAr.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 246px;" src="http://3.bp.blogspot.com/_GUHozeIg7kI/TKRFnHRYiXI/AAAAAAAAAEc/fak9t47S5aI/s400/CultAr.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5522615581332244850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Some text is translated and it seems that not all the text are came out of the recourse files.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Then it seems that this request is also requested from many people, Microsoft put it as a built in option in SharePoint 2010, which is known as Multilingual User Interface “MUI”, all what you need it to go to the Language Settings and select the alternate language:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GUHozeIg7kI/TKRE-CDxHrI/AAAAAAAAAD8/No3yw1ihZr0/s1600/SP2010+Language+01.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 193px;" src="http://4.bp.blogspot.com/_GUHozeIg7kI/TKRE-CDxHrI/AAAAAAAAAD8/No3yw1ihZr0/s400/SP2010+Language+01.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5522614875558321842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Then the user will be able to see it in the personal menu, and he can swap between the languages as he wants to:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GUHozeIg7kI/TKRE-dw8SDI/AAAAAAAAAEE/8_L1cCmTsMg/s1600/SP2010-Language-02.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 193px;" src="http://4.bp.blogspot.com/_GUHozeIg7kI/TKRE-dw8SDI/AAAAAAAAAEE/8_L1cCmTsMg/s400/SP2010-Language-02.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5522614882995554354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;Then the page will be displayed as shown here: (note that the site name is “Home”)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_GUHozeIg7kI/TKRE-xTlnVI/AAAAAAAAAEM/boI8pYq-AXw/s1600/SP2010-Language-03.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 192px;" src="http://3.bp.blogspot.com/_GUHozeIg7kI/TKRE-xTlnVI/AAAAAAAAAEM/boI8pYq-AXw/s400/SP2010-Language-03.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5522614888241143122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;And you can translate the site name by selecting the Overwrite translations from the Language Settings then change the site to the Arabic language, and from the site settings you will be able to change the site name to Arabic:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GUHozeIg7kI/TKRE_FUVD2I/AAAAAAAAAEU/lwHhr0kgy0U/s1600/SP2010-Language-06.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 193px;" src="http://4.bp.blogspot.com/_GUHozeIg7kI/TKRE_FUVD2I/AAAAAAAAAEU/lwHhr0kgy0U/s400/SP2010-Language-06.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5522614893612961634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-14129721278502806?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/14129721278502806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=14129721278502806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/14129721278502806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/14129721278502806'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/09/sharepoint-multilingual-user-interface.html' title='SharePoint Multilingual User Interface “MUI”'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GUHozeIg7kI/TKRFnHRYiXI/AAAAAAAAAEc/fak9t47S5aI/s72-c/CultAr.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-5329670030536528888</id><published>2010-09-29T22:50:00.006+03:00</published><updated>2010-09-30T14:10:41.587+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE8'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>SharePoint IE8 Accelerator</title><content type='html'>I was working on a SharePoint project where part of the requirements is to revamp the user interface of the portal. One of the problems is that the development company that develop the portal in the beginning were using about 10 MasterPages and 160 PageLayout. But after studding the needed MasterPages and the actual needed PageLayouts with the customer we got out that we just need 1 MasterPage and 5 PageLayouts! About 3% only are needed.&lt;div&gt;&lt;br /&gt;Most pages are not linked to right PageLayout as it is referring to URLs on the development and testing servers, so the first step here is to find out how to update the PageLayouts of the pages to the new ones and to keep all the WebParts in each place in the corresponding Zone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;In the 160 old PageLayouts the Zones are not named with a descriptive name just the GUID, the WebParts are not named as well, so I need a tool that a user can use easily to migrate to the new PageLayouts in the proper zone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;And while I’m working on this tool, I figured out that many pages are including Closed WebParts that we will need to delete them for better performance (15 closed webpart in the homepage only, while the displayed are just 4 webparts). And some of them have no DLLs anywhere.&lt;br /&gt;&lt;br /&gt;The Solution:&lt;br /&gt;1. Make a sitemap for the portal, and decide what is the important sections to be migrated first&lt;br /&gt;2. Break the inheritance for the MasterPages in the sub sites during the migration process&lt;br /&gt;3. Make a list of all the pages in the portal with current PageLayout&lt;br /&gt;4. Make a list of all the weparts and the current zones for each webpart&lt;br /&gt;5. Save all the above information in a database&lt;br /&gt;6. Make a page that takes the page URL as a parameter and displays the page information (PageLayout, Webparts (and the closed as well in red), Zones)&lt;br /&gt;7. Make the page to be displayed as preview for an IE8 accelerator as you can see in the image below&lt;br /&gt;8. Develop another page that takes the page URL as a parameter when clicking on the accelerator in case I need to change the PageLayout or the WebParts&lt;br /&gt;9. From the managing page I can select the new PageLayout to the page just by selecting from the layouts list, but it will not be changed now.&lt;br /&gt;10. After that select the new zone I want to add the webparts to, or I can select to delete it&lt;br /&gt;11. I can also set the new PageLayout to all the similar pages that were taking the same old PageLayout&lt;br /&gt;12. Also I can set the same new arrangements of the webparts to the similar pages that were using the same old layout and have the same new layout altered in the database&lt;br /&gt;13. And I can see which webparts are not yet matched to a new zone, in case I have any webpart missing.&lt;br /&gt;14. At the end I can just click on the button “Change” and the application will do it based on my settings&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GUHozeIg7kI/TKOZhf_pKWI/AAAAAAAAADs/IkWXXPk5OPc/s1600/Accelerator2.jpg"&gt;&lt;img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 320px; " src="http://4.bp.blogspot.com/_GUHozeIg7kI/TKOZhf_pKWI/AAAAAAAAADs/IkWXXPk5OPc/s400/Accelerator2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5522426368889530722" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GUHozeIg7kI/TKOZhf_pKWI/AAAAAAAAADs/IkWXXPk5OPc/s1600/Accelerator2.jpg"&gt;&lt;/a&gt;&lt;span class="Apple-style-span"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_GUHozeIg7kI/TKOZhtVxldI/AAAAAAAAAD0/R270TYFVKvE/s1600/Accelerator3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 329px; height: 400px;" src="http://1.bp.blogspot.com/_GUHozeIg7kI/TKOZhtVxldI/AAAAAAAAAD0/R270TYFVKvE/s400/Accelerator3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5522426372472018386" /&gt;&lt;/a&gt;&lt;p class="MsoNormal"&gt;In this solution The IE8 Accelerator helped me a lot, thanks Microsoft! And the project completed on time and the customer is happy AlHamd Lellah.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;And for sure, I want to thank all who was supporting this project. (Thank You All!)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-5329670030536528888?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/5329670030536528888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=5329670030536528888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5329670030536528888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5329670030536528888'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/09/sharepoint-ie8-accelerator.html' title='SharePoint IE8 Accelerator'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GUHozeIg7kI/TKOZhf_pKWI/AAAAAAAAADs/IkWXXPk5OPc/s72-c/Accelerator2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-1707154044392228668</id><published>2010-07-25T21:33:00.013+03:00</published><updated>2010-07-25T21:54:41.979+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>Bug in Search PageLayouts in SharePoint 2010</title><content type='html'>&lt;div align="left" style="text-align: left;"&gt;&lt;span style="color:#000000;"&gt;Today I was working on a SharePoint 2010 site, and I tried to let the search site use the same masterpage as the site not the minimal.master which is the default.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;But after changing the master page I found that the search text box is disappeared, but I can found the text box in the HTML source.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_GUHozeIg7kI/TEyEaDJiJUI/AAAAAAAAADE/UMAIeOJKBAA/s1600-h/Search3.png"&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 274px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5497914828169291074" border="0" alt="" src="http://1.bp.blogspot.com/_GUHozeIg7kI/TEyEaDJiJUI/AAAAAAAAADE/UMAIeOJKBAA/s400/Search3.png" /&gt;&lt;/a&gt;&lt;br /&gt;And after a while I found that the problem is that the webpart zone is added in the "PlaceHolderTitleBreadcrumb" place holder and not in the "PlaceHolderMain". &lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="COLOR: rgb(0,0,238); -webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;a href="http://1.bp.blogspot.com/_GUHozeIg7kI/TEyGIcFZSqI/AAAAAAAAADc/5nf1lWKw4cc/s1600-h/Search1.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 215px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5497916724648430242" border="0" alt="" src="http://1.bp.blogspot.com/_GUHozeIg7kI/TEyGIcFZSqI/AAAAAAAAADc/5nf1lWKw4cc/s400/Search1.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="-webkit-text-decorations-in-effect: underline; " class="Apple-style-span"&gt;And when I tried to edit the page I found it like this:&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,238); -webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="COLOR: rgb(0,0,238); -webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;span style="-webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;a href="http://3.bp.blogspot.com/_GUHozeIg7kI/TEyEvr4yiNI/AAAAAAAAADM/P8U-disXxhc/s1600-h/Search2.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 236px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5497915199882168530" border="0" alt="" src="http://3.bp.blogspot.com/_GUHozeIg7kI/TEyEvr4yiNI/AAAAAAAAADM/P8U-disXxhc/s400/Search2.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,238); -webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;span style="-webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="-webkit-text-decorations-in-effect: underline; " class="Apple-style-span"&gt;&lt;span style="-webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;And also the search result page is the same:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,238); -webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;span style="-webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,238); -webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;span style="-webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="COLOR: rgb(0,0,238); -webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;span style="-webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;span style="-webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;a href="http://4.bp.blogspot.com/_GUHozeIg7kI/TEyFAr9zSbI/AAAAAAAAADU/xJbhs4OfM2E/s1600-h/Search4.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 134px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5497915491960965554" border="0" alt="" src="http://4.bp.blogspot.com/_GUHozeIg7kI/TEyFAr9zSbI/AAAAAAAAADU/xJbhs4OfM2E/s400/Search4.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,238); -webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;span style="-webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;span style="-webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="-webkit-text-decorations-in-effect: underline; " class="Apple-style-span"&gt;As you can see in the image, the search filtration is not in the place as it should as well.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,238); -webkit-text-decorations-in-effect: underline" class="Apple-style-span"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-1707154044392228668?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/1707154044392228668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=1707154044392228668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/1707154044392228668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/1707154044392228668'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/07/bug-in-search-pagelayouts-in-sharepoint.html' title='Bug in Search PageLayouts in SharePoint 2010'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GUHozeIg7kI/TEyEaDJiJUI/AAAAAAAAADE/UMAIeOJKBAA/s72-c/Search3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-5240966561454453718</id><published>2010-07-24T11:26:00.002+03:00</published><updated>2010-07-24T11:30:32.277+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Installing WSS 3.0 extensions beside SPS2010</title><content type='html'>&lt;div&gt;I was trying to open a sharepoint 2007 project on my x64 windows 7 with  SPS2010&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;First download the x64 extensions:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;http://www.microsoft.com/downloads/details.aspx?familyid=FB9D4B85-DA2A-432E-91FB-D505199C49F6&amp;amp;displaylang=en&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But you will not be able to install it because you don't have WSS 3.0 installed, so go to this post and follow the steps http://www.dotnetspark.com/kb/2014-installing-visual-studio-extensions-for.aspx to tell your PC that you have the WSS 3.0 installed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-5240966561454453718?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/5240966561454453718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=5240966561454453718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5240966561454453718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5240966561454453718'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/07/installing-wss-30-extensions-beside.html' title='Installing WSS 3.0 extensions beside SPS2010'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-5627356388889484934</id><published>2010-06-23T01:14:00.003+03:00</published><updated>2010-06-23T01:28:00.572+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='orgchart'/><category scheme='http://www.blogger.com/atom/ns#' term='Organization Chart'/><title type='text'>Silverlight Organization Chart - Part 4 - Drawing</title><content type='html'>&lt;div&gt;&lt;p class="MsoNormal"&gt;I have received too many messages to post the code for drawing the lines and the boxes for the &lt;a href="http://omourad.blogspot.com/2009/08/silverlight-organization-chart.html"&gt;Organization Chart&lt;/a&gt;, which actually the easy part after calculating the positions, but here it is:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;u&gt;Drawing Lines:&lt;/u&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;here in this method it is simply drawing a line&lt;/p&gt;&lt;/div&gt;&lt;div&gt; public void DrawLine(Canvas canvas, double x1, double y1, double x2, double y2)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            Line line = new Line();&lt;/div&gt;&lt;div&gt;            line.X1 = x1;&lt;/div&gt;&lt;div&gt;            line.Y1 = y1;&lt;/div&gt;&lt;div&gt;            line.X2 = x2;&lt;/div&gt;&lt;div&gt;            line.Y2 = y2;&lt;/div&gt;&lt;div&gt;            line.Stroke = Util.GetColorFromHex("#FF6495ed");&lt;/div&gt;&lt;div&gt;            line.StrokeThickness = LinesStrokeThickness;&lt;/div&gt;&lt;div&gt;            canvas.Children.Add(line);&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Where LinesStrokeThickness = 1 And GetColorFromHex is a method that convert the RGB color to brush color:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;public static SolidColorBrush GetColorFromHex(string myColor)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            return new SolidColorBrush(&lt;/div&gt;&lt;div&gt;                Color.FromArgb(&lt;/div&gt;&lt;div&gt;                    Convert.ToByte(myColor.Substring(1, 2), 16),&lt;/div&gt;&lt;div&gt;                    Convert.ToByte(myColor.Substring(3, 2), 16),&lt;/div&gt;&lt;div&gt;                    Convert.ToByte(myColor.Substring(5, 2), 16),&lt;/div&gt;&lt;div&gt;                    Convert.ToByte(myColor.Substring(7, 2), 16)&lt;/div&gt;&lt;div&gt;                )&lt;/div&gt;&lt;div&gt;            );&lt;/div&gt;&lt;div&gt;        }        &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;Drawing the box with the lines:&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this method it is drawing the &lt;a href="http://omourad.blogspot.com/2009/11/silverlight-organization-chart-part-3.html"&gt;NodeBox &lt;/a&gt;and set its values, also it put it in the right place based on the &lt;a href="http://omourad.blogspot.com/2009/11/silverlight-organization-chart-part-2.html"&gt;calculations&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        public void AddBox(Canvas canvas, double x, double y, double? parentX, string ID, string name, string title, string department, string extension, bool root, bool subNodes)&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            NodeBox nb = new NodeBox(drawingScale);&lt;/div&gt;&lt;div&gt;            nb.Name = ID;&lt;/div&gt;&lt;div&gt;            nb.EmployeeName = name;&lt;/div&gt;&lt;div&gt;            nb.Title = title;&lt;/div&gt;&lt;div&gt;            nb.Department = department;&lt;/div&gt;&lt;div&gt;            nb.Extension = extension;&lt;/div&gt;&lt;div&gt;            nb.Width = buttonWidth;&lt;/div&gt;&lt;div&gt;            nb.Height = buttonHeight;&lt;/div&gt;&lt;div&gt;            nb.SetValue(Canvas.LeftProperty, x - nb.Width / 2);&lt;/div&gt;&lt;div&gt;            nb.SetValue(Canvas.TopProperty, y);       &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            canvas.Children.Add(nb);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            // The line above the box&lt;/div&gt;&lt;div&gt;            if (root)&lt;/div&gt;&lt;div&gt;                DrawLine(canvas, x, y - minVerticalSpace, x, y);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            // Draw the horizontal line to the parent&lt;/div&gt;&lt;div&gt;            if (parentX != null)&lt;/div&gt;&lt;div&gt;                DrawLine(canvas, x, y - minVerticalSpace, Convert.ToDouble(parentX), y - minVerticalSpace);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            // Draw the line under the box&lt;/div&gt;&lt;div&gt;            if (subNodes)&lt;/div&gt;&lt;div&gt;                DrawLine(canvas, x, y + buttonHeight, x, y + buttonHeight + minVerticalSpace);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            &lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="font-family:&amp;quot;Georgia&amp;quot;,&amp;quot;serif&amp;quot;; color:black"&gt;in-shaa Allah, this post help you to complete your organization chart based on Silverlight.&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-5627356388889484934?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/5627356388889484934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=5627356388889484934' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5627356388889484934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5627356388889484934'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/06/silverlight-organization-chart-part-4.html' title='Silverlight Organization Chart - Part 4 - Drawing'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-2444949229537287912</id><published>2010-06-22T17:25:00.002+03:00</published><updated>2010-06-22T17:37:13.553+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>Columns associated with mappings have been deleted/renamed</title><content type='html'>I was working on a project where we are using the new linq with sharepoint 2010 , and I have received this error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Message: Columns associated with mappings have been deleted/renamed.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:85%;"&gt;Source : Microsoft.SharePoint.Linq&lt;br /&gt;Target site : Void ValidateMapping()&lt;br /&gt;Stack trace :&lt;br /&gt;at Microsoft.SharePoint.Linq.EntityTracker.ValidateMapping()&lt;br /&gt;at Microsoft.SharePoint.Linq.EntityTracker.SubmitChanges(ConflictMode failureMode, Boolean systemUpdate)&lt;br /&gt;at Microsoft.SharePoint.Linq.DataContext.SubmitChanges(ConflictMode failureMode, Boolean systemUpdate)&lt;br /&gt;at Microsoft.SharePoint.Linq.DataContext.SubmitChanges()&lt;br /&gt;at MyNameSpace.MethodName() &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;And I did not find any article talking about this error: "Columns associated with mappings have been deleted/renamed" when searching on google.&lt;br /&gt;&lt;br /&gt;After re-generating the class using the SPMetal command and receiving the same error, I found that the submitted list name is for another list. so just to share it with you :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-2444949229537287912?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/2444949229537287912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=2444949229537287912' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2444949229537287912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2444949229537287912'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/06/columns-associated-with-mappings-have.html' title='Columns associated with mappings have been deleted/renamed'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8267119377152801050</id><published>2010-03-27T22:54:00.004+02:00</published><updated>2010-03-28T10:17:25.497+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='XSL'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='SPSArabia'/><category scheme='http://www.blogger.com/atom/ns#' term='XSLT'/><title type='text'>SPSArabia: XSLT in SharePoint</title><content type='html'>&lt;p&gt;Today it was my pleasure and honor to speak in &lt;a href="http://www.slideshare.net/mohdyehia/cfakepathwhat-is-sps-arabia"&gt;SharePoint Saturday Arabia&lt;/a&gt;, my session was about “XSLT in SharePoint” starting from the difference between CSS and XSLT then different ways to transform the XML client side and server side then extending the XSLT with C# objects and methods, all of this as an introduction for the XSLT List View webpart and other webparts that use the XSLT like the CQWP. &lt;/p&gt;&lt;p&gt;But unfortunately I didn’t manage my time and I just give the introduction and just opened the SharePoint and the XSLT ListView WP.&lt;/p&gt;&lt;p&gt;It was nice experience for me to join like this event. And thanks for @AymanElhattab @MarwanTarek and @mohdyehia for organizing the event.&lt;/p&gt;&lt;p&gt;The presentation is available on &lt;a href="http://www.slideshare.net/omourad/sps-arabia-xslt-in-sharepoint"&gt;http://www.slideshare.net/omourad/sps-arabia-xslt-in-sharepoint&lt;/a&gt; &lt;/p&gt;&lt;p&gt;The Videos will be available soon on:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sharepointsaturday.org/arabia"&gt;http://www.sharepointsaturday.org/arabia&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepoint4arabs.com/"&gt;http://www.sharepoint4arabs.com/&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8267119377152801050?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8267119377152801050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8267119377152801050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8267119377152801050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8267119377152801050'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/03/spsarabia-xslt-in-sharepoint.html' title='SPSArabia: XSLT in SharePoint'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8066354642070362071</id><published>2010-03-17T07:36:00.005+02:00</published><updated>2010-03-17T07:58:02.717+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM'/><title type='text'>برامج إدارة الأملاك العقارية</title><content type='html'>&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;للمجال العقاري بالمملكة العربية السعودية نظام خاص يحكم المالك والمستأجر بأسس اجتماعية وحضارية قبل أن تكون أسس اقتصادية، فلم يغفل النظام العقاري بوضع معايير لاختلاط السكن العائلي بالسكن الفردي والذي يكون في الغالب من العمالة الواردة إلى المملكة مما حافظ على احترام الحياة الأسرية حتى للوافدين من خارج المملكة. ثم تواجد المحال التجارية ببعض الشوارع والطرق وتواجد العمائر السكنية والفلل الخاصة بشوارع أخرى يكون فيها الهدوء والأمان أكثر. وكما أن هناك اختلاف بين السكن العائلي والسكن الفردي فإن هناك قوانين وأسس تطبق على العقارات حسب مكانها كالتي يتم امتلاكها أو استئجارها في مدينتي مكة والمدينة.&lt;br /&gt;&lt;br /&gt;ومما هو ملحوظ في الآونة الأخيرة قيام الحكومة السعودية بتبني الكثير من المشاريع العقارية الضخمة مما ساعد على نمو الاقتصاد العقاري وتشجيع الكثير من الشركات للعمل قدما في تصميم وتخطيط المدن والأبراج الضخمة. كما أن لصدور القانون بإمكانية تملك غير السعوديون من وحدات سكنية وغيرها أثره في الإقبال على المنتج العقاري سواء من ناحية العرض أو الطلب. ثم قانون الرهن العقاري والذي سيعطي إمكانات ائتمانية والبيع بطريقة التقسيط.&lt;br /&gt;&lt;br /&gt;اعتبارات كثيرة تؤخذ بالحسبان عندما نتكلم عن العقار بالمملكة دينيا وقوميا وإقليميا، حيث يحق فقط للمسلمين بالتملك أو الاستئجار بالمناطق المقدسة ، ولا يحق لغير السعوديين بالتعاقد على استئجار العقارات لمدد تزيد عن السنتين بهذه المناطق ، واختلاف ذلك عن التملك عن طريق الورث الشرعي، وعندما نتكلم عن النظم المختلفة فهناك امتيازات أخرى لمواطني مجلس التعاون الخليجي عن غيرهم ، وهناك من هم سعوديون ولكن لم تكتمل إجراءات التجنس لهم.&lt;br /&gt;&lt;br /&gt;كل هذه المتغيرات يجب أخذها بالحسبان عندما نتكلم عن سوق العقار بالمملكة العربية السعودية ، ولكن عندما نتكلم عن تصميم وتطبيق برامج إدارة الأملاك فإنه يجب إضافة الكثير والكثير من الاعتبارات الأخرى ، فكما وضح نظام العقار السعودي العلاقة بين المالك المستأجر أو البائع و المشتري فإن برامج إدارة الأملاك يجب أن تضيف لهذه العلاقة الكثير من المعايير والتي تضمن إبقاء العلاقة على أتمها مما يضمن بقاء عملية الاستثمار والربح لمتبادل لأطول مدة ممكنة.&lt;br /&gt;&lt;br /&gt;على غير الكثير من الأعمال الاقتصادية الأخرى، فإن سوق العقار يحول المشتري من باحث عن السلعة لشخص لديه سلعة ممكن عرضها للبيع ومن ثم يتم تحويله لبائع، كما أن متملك أو مستأجر العقار يكون دائما في حاجه لأعمال الصيانة والتحسينات على العقار. &lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;ولا يجب أن نغفل في تصميم البرامج المماثلة طبيعة صاحب العقار، فقد تكون ملكية العقار ملكية فردية أو تكون ملكية مشتركة بنسب شراكة مختلفة وقد تكون شراكة بين أفراد ومؤسسات، وقد يرغب كل على حده من متابعة عوائد العقارات الخاصة به أو الرسوم المطلوبة منه. ويرغب المستأجر في معرفة مواعيد سداد القيمة الايجارية أو يطلب تذكيره قبل موعد السداد بفترة ما، وقد يقوم بطلب لعمل صيانة معينة بالوحدة أو يقوم بتقديم شكوى ومتابعة حالة طلبه. و يقوم مسؤول بالنظام بمتابعة فريق الصيانة والنظافة والأمن من نفس البرنامج.&lt;br /&gt;&lt;br /&gt;وعملية البحث عن عقار عملية صعبة حيث يتنقل الباحث بين الكثير من المكاتب سائلا عن طلبه ، وحتي يصل إلى مبتغاه فإنه يمر بالكثير ممن يخبروه بأن طلبه ليس موجود حالياً، ولكن إذا قام موظف المكتب بتسجيل بيانات السائل ومواصفات طلبه ومراسلته عندما يتوفر العقار المناسب فإن ذلك سيساعد السائل ويجعله عميل لهذا المكتب أو الشركة، كما سيقلل من فترة الانتظار حتى يتم استئجار عقار ما مما سيجعل صاحب أو مالك العقار عميل دائم لهذا المكتب.&lt;br /&gt;&lt;br /&gt;علاقات كثيرة ومتغيرات أكثر يجب على مصمم هذا النوع من البرامج من فهمها واعتبار كل تفاصيلها بجانب كل تفاصيل المدخلات والمخرجات بالبرنامج حتى يأتي بثمرة عمله من تطبيق هذا النظام.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8066354642070362071?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8066354642070362071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8066354642070362071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8066354642070362071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8066354642070362071'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/03/crm-real-estate-in-ksa.html' title='برامج إدارة الأملاك العقارية'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-5283164138038582585</id><published>2010-03-14T20:55:00.000+02:00</published><updated>2010-03-14T20:57:36.266+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPS2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>SPS2010 New Navigation Options</title><content type='html'>I’m back to continue writing about SharePoint after I bought a new laptop to be able to try SPS2010.&lt;br /&gt;&lt;br /&gt;One of the new things in SharePoint 2010 is the updated navigation page, as you can set whether to show the sub sites and the pages in Global Navigation or the Current Navigation only, before you just have one option for both the Global Navigation and the Current Navigation.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_GUHozeIg7kI/S50xRZMZslI/AAAAAAAAAC0/Hmo4GAaDo5s/s1600-h/Site+Navigation.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 255px;" src="http://2.bp.blogspot.com/_GUHozeIg7kI/S50xRZMZslI/AAAAAAAAAC0/Hmo4GAaDo5s/s400/Site+Navigation.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5448565299078607442" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Also one of the options here is the Maximum number of items to show within this level of navigation, which is the maximum number of navigation item to be displayed, this is very useful to avoid the long horizontal scroll bar displayed in many projects. The default number is 20, but by setting the number to zero all the items will be displayed.&lt;br /&gt;&lt;br /&gt;But I don’t know why they did not separate the sorting settings for the Global and the Current?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-5283164138038582585?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/5283164138038582585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=5283164138038582585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5283164138038582585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5283164138038582585'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/03/sps2010-new-navigation-options.html' title='SPS2010 New Navigation Options'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GUHozeIg7kI/S50xRZMZslI/AAAAAAAAAC0/Hmo4GAaDo5s/s72-c/Site+Navigation.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6021254133378339257</id><published>2010-02-06T06:45:00.004+02:00</published><updated>2010-02-06T06:49:31.813+02:00</updated><title type='text'>Storytelling Alice</title><content type='html'>&lt;div dir="rtl"&gt;&lt;br /&gt;&lt;div align="right"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;مما لا شك فيه أن النفس البشرية تمل من الأشياء الرتيبة وتميل دائما للتغيير. والتغيير قد يشمل تغيير المكان الذي اعتدنا فعل شيء ما فيه كتغيير مكان الاستذكار مثلا. وقد نميل لتغيير الأدوات كأن نشتري جهاز محمول جديد أو تغيير المشروب الذي نشربه أثناء قيامنا ببعض المهام.&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;strong&gt;&lt;div align="right"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;ومن الأشياء الصعب تغييرها هي عادات الناس وطريقة حياتهم اليومية ولذلك تحتاج لأفكار وحيل للتمكن من التغيير ، و في هذا الرابط &lt;/span&gt;&lt;a href="http://www.thefuntheory.com/"&gt;&lt;span style="font-size:130%;"&gt;http://www.thefuntheory.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt; بعض الأمثلة على ما أقصد ، وبه يقوم الناس بفعل نفس الأشياء التي اعتادوا عليها ولكن بطريقة مرحة فيقومون بفعلها بطيب خاطر. &lt;/span&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;span style="font-size:130%;"&gt;ومقولة تعلم وأنت تلعب ليست ببعيد عن ما أتكلم عنه، حيث ذكرت فيما سبق كيف كان لها تأثير علي شخصيا، وهذا ما تقوم به العديد من المدارس بالخارج حيث أن أكثر من ألفان مدرسة يقومون باستخدام برنامج يسمى "أليس" لتعليم الطلاب المبادئ الأساسية لبرمجة الحاسب باستخدام الأشياء. واسم "أليس" يرجع إلى القصة الشهيرة "أليس في بلاد العجائب" التي يحبها الكثير من الأطفال حول العالم. &lt;/span&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;باستخدام "أليس" يقوم الطالب بسرد قصة ثلاثية الأبعاد بالاستعانة ببعض الشخصيات الموجودة بمكتبة الشخصيات ويعطيها بعض الأوامر كأن يضع شخصية ويعطيها اسم "محسن" ويصدر أمر لمحسن ليتحرك للأمام أو أن يدور أو أن يقول شيء ما. وللشخصية بعض الخصائص كمكانه على الشاشة وحجمه وخلافه. &lt;/span&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;ومن الظريف أن الطالب يستطيع عمل الدوال الخاصة به كأن يقوم بعمل دالة اسمها "أرقص" ويعطيها بعض المعطيات كسرعة الرقصة وعدد مرات الرقص مثلا، وبالدالة يستخدم الأوامر الموجودة للحركة كأن يحرك القدم اليسرى بارتفاع ما ثم يخفضها ثم اليمنى مع اليد، وهكذا حتى ينهي تفاصيل الرقصة والتي أصبحت أمرا من أوامر الشخصية "محسن" بالقصة. &lt;/span&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;ومن الداعمين لهذا البرنامج أسماء كبيرة مثل جوجل و ديزني وصن وآخرون وبالإمكان الحصول على برنامج "أليس" مجانا من خلال هذا الرابط &lt;/span&gt;&lt;a href="http://www.alice.org/"&gt;&lt;span style="font-size:130%;"&gt;http://www.alice.org/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;وقد تكلمت عن هذ البرنامج على شاشة التلفاز في برنامج "أي تي شو" على القناة الفضائية الثقافية المصرية &lt;/span&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;span style="font-size:130%;"&gt;الجزء الأول: &lt;/span&gt;&lt;/strong&gt;&lt;a href="http://www.facebook.com/video/video.php?v=432997580181&amp;amp;subj=625921069"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;http://www.facebook.com/video/video.php?v=432997580181&amp;amp;subj=625921069&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;strong&gt;الجزء الثاني: &lt;/strong&gt;&lt;/span&gt;&lt;a href="http://www.facebook.com/video/video.php?v=433553535181&amp;amp;subj=625921069"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;http://www.facebook.com/video/video.php?v=433553535181&amp;amp;subj=625921069&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div align="right"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div align="right"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;وأتمنى أن أرى هذا البرنامج أو شبيه له يتم استخدامه في مدارسنا بالدول العربية حتى نبني أجيال من المبرمجين تربوا على متعة العلم.&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6021254133378339257?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6021254133378339257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6021254133378339257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6021254133378339257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6021254133378339257'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/02/storytelling-alice.html' title='Storytelling Alice'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-1714323381368289815</id><published>2010-01-27T18:04:00.005+02:00</published><updated>2010-01-27T18:17:30.968+02:00</updated><title type='text'>One Team - One Target</title><content type='html'>&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;"هذه الشركة عملت أشياء كثيرة معنا عندما كان بالإمكان ... جاء اليوم الذي نقف بجانب إدارتها" هذا ما سمعته من مصطفى مراد ، من العاملين بإحدى الشركات المنافسة للشركة التي أعمل بها ، و انتابني إحساس الغبطة لهذه الشركة حيث تمنيت أن يكون من العاملين معنا و ليس مع منافسينا شخص بهذا الحب والولاء لشركته.&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;p class="MsoNormal" dir="RTL" style="text-align:right;direction:rtl;unicode-bidi: embed"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="AR-SA"  style="font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-font-family: Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-mso-bidi-theme-font: minor-bidifont-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, serif;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;"يا عم احنا مالنا ... هي دي شركة ابونا" جملة نسمعها مثل "هي الشركة لو كسبت هانشوف منها حاجه؟" و الكثير من الأقوال التي نسمعها من العديد على مرور الأعوام خلال التنقل بين الشركات ، و قد يكون قائل هذه العبارات على صواب و قد يكون على خطأ ، لكن الأكيد انه مخطأ في حديثه بهذه الأقوال لما فيها من ضرر على معنويات المستمعين و حماسهم بالعمل.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div dir="rtl" align="right"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;قمت بإدارة فريق جوالة على مدار العديد من السنوات وقد حقق هذا الفريق الكثير من البطولات منها المستوى الأول لجنوب القاهرة والمركز الأول للقاهرة و قد تم تصوير الفريق تليفزيونيا في إحدى إحتفالات مدينة حلوان لما عرف عنه من عمل الأشياء بإتقان و بطريقة مختلفة عن ما هو معهود بين باقي الفرق. &lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div dir="rtl" align="right"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;وأحيانا يكون بين اعضاء الفريق من يشارك لمجرد انه يحب الصحبة و يكون منهم العضو المساعد ومنهم العضو الكسول الذي لا يقوم بدوره إلى جانب التفوه بعبارات تدعو للتكاسل وإهمال الأعمال و يرفع شعار "طز" و "تدفع كام؟"، وهذا هو النوع الذي حاولت علاجه أو عزله عن الفريق لأنه مثل السوس الذي ينخر بالمكان.&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div dir="rtl" align="right"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;و أخيرا أحب أن أتذكر دائما مجموعة العمل التي عملت معها منذ عام مضى و كان شعارنا وقتها "One Team One Target" فهذا كان مثال الفريق المتعاون الذي استمتعت بالعمل معه.&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-1714323381368289815?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/1714323381368289815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=1714323381368289815' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/1714323381368289815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/1714323381368289815'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/01/one-team-one-target.html' title='One Team - One Target'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-3460318323600596479</id><published>2010-01-05T22:06:00.002+02:00</published><updated>2010-01-05T22:12:37.131+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='XNA'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='XBOX'/><title type='text'>تعلم وأنت تلعب</title><content type='html'>&lt;p class="MsoNormal" dir="RTL" style="text-align:right;direction:rtl;unicode-bidi: embed"&gt;&lt;span lang="AR-SA" style="font-size:15.0pt;line-height:115%;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family: Arial;mso-bidi-theme-font:minor-bidi"&gt;"تعلم وأنت تلعب" هذا ما كان يقوله لي والدي دائما بعد أكتشافي أن اللعب الذي كان يلعبه معي له علاقة بالدروس الموجودة في كتاب المدرسة بطريقة أو بأخرى. وكنت أصرخ عندما أكتشف هذه المؤامرة "دي مذاكرة ... ده مش لعب ... انت دحكت عليا" ولا أدري كيف كان يجد كل هذه الأفكار حتي يجعل معلومة ما تصل إلى عقلي ، حيث كنت أبعد ما يكون عن المذاكرة مما دفعه يوما لربطي بالمكتب وكنت مستمتع بكل هذا لأنه في النهاية تم إخراجه في صورة لعب. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="RTL" style="text-align:right;direction:rtl;unicode-bidi: embed"&gt;&lt;span lang="AR-SA" style="font-size:15.0pt;line-height:115%;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family: Arial;mso-bidi-theme-font:minor-bidi"&gt;و عندما أصبح لدينا جهاز كمبيوتر وكنت بالسنة الخامسة الابتدائية و قد تعلمنا عليه سويا، أصبح اللعب بطريقة مختلفة وكان التركيز الأكبر على الرياضيات والفيزياء عن طريق عمل برامج بلغة الكويك بيسيك والتيربو سي لرسم المعادلات من الدرجة الأولى والثانية والثالثة وهكذا وحل أكثر من معادلة بدرجات مختلفة بالطريقة الرسومية ثم عمل لعبة صغيرة فكرتها محاولة إصابة هدف عشوائي على الشاشة عن طريق تحديد زاوية وسرعة القذيفة و تطبيق قوانين العجلة والسرعة والجاذبية الأرضية، و من الأشياء التي بدأت عليها لغة السي كانت توضيح رسومي للعلاقة بين الزاوية وجيب الزاوية ومحصلات القوة وخلافه.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="RTL" style="text-align:right;direction:rtl;unicode-bidi: embed"&gt;&lt;span lang="AR-SA" style="font-size:15.0pt;line-height:115%;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family: Arial;mso-bidi-theme-font:minor-bidi"&gt;و هذه الأشياء ترسخ بالعقل لمدد أطول من المذاكرة العادية، حتى أنني قمت يوما بحساب أشياء تحسب بالآلة الحاسبة ولم يكن معي يومها غير المنقلة والمسطرة حيث كنت قد نسيت أن عندي امتحان ولم أحضر معي الآلة.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="RTL" style="text-align:right;direction:rtl;unicode-bidi: embed"&gt;&lt;span lang="AR-SA" style="font-size:15.0pt;line-height:115%;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family: Arial;mso-bidi-theme-font:minor-bidi"&gt;ولكن لماذا كل هذه المقدمة؟ لقد قمت بشراء جهاز أكس بوكس جديد وعندما كنت أتصفح موقع &lt;/span&gt;&lt;a href="http://www.xbox.com/"&gt;&lt;span dir="LTR" style="font-size:15.0pt;line-height:115%"&gt;http://www.xbox.com&lt;/span&gt;&lt;/a&gt;&lt;span dir="RTL"&gt;&lt;/span&gt;&lt;span lang="AR-SA" style="font-size:15.0pt;line-height:115%; font-family:&amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-ascii-font-family:Calibri;mso-ascii-theme-font: minor-latin;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:Arial;mso-bidi-theme-font:minor-bidi"&gt;&lt;span dir="RTL"&gt;&lt;/span&gt; رأيت أن هناك بعض الألعاب تم تطويرها عن طريق بعض الهواة، مما استدرجني لمعرفة المزيد عن كيفية عمل ذلك، فوجدت أن البداية في غاية السهولة، بالطبع عمل ألعاب كالتي نشتريها من السوق أو نحصل عليها من الانترنت ليست بالعملية السهلة مطلقا، ولكن البداية كما ذكرت في غاية السهولة، وهذا هو هدفي من كتابة هذه الصفحة، حيث سأقوم بكتابة ما سأتعلمه عن كيفية عمل برامج تعمل على جهاز الكمبيوتر وجهاز الأكس بوكس، وسأقوم بكتابة هذه المواضيع باللغة العربية إن شاء الله حيث أن هناك العديد من المصادر باللغة الإنجليزية.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="RTL" style="text-align:right;direction:rtl;unicode-bidi: embed"&gt;&lt;span lang="AR-SA" style="font-size:15.0pt;line-height:115%;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin;mso-bidi-font-family: Arial;mso-bidi-theme-font:minor-bidi"&gt;وهدفي في هذا ليس عمل الألعاب فقط و لكن لتعليم البرمجة أثناء عمل الألعاب أيضا ، وأقصد هنا البرمجة بلغة السي شارب. وقد قمت بعمل بعض الاتصالات بمن قد يقوموا بتبني ودعم فكرة تعليم الشباب في مرحلة الإعدادي والثانوي بالمملكة العربية السعودية كيفية برمجة الألعاب واستخدامها في فهم أشياء مختلفة منها المناهج الدراسية وعلى رأسها كيفية البرمجة أصلا خلال عمل اللعبة. وهذا سيحتاج للعديد من الأيادي للمساعدة في تنفيذ و إنجاح هذا الأمر ولهذا قد يتم عمل مجموعة بدعم من شركة ميكروسوفت تضم المهتمين بهذا الأمر، فإن كان لك رغبة في الانضمام لتكوين هذه المجموعة رجاءا أرسل لي سواء كنت مبرمج أو مصمم جرافيكس.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-3460318323600596479?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/3460318323600596479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=3460318323600596479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3460318323600596479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3460318323600596479'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2010/01/blog-post.html' title='تعلم وأنت تلعب'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-2930867344161670823</id><published>2009-12-27T23:49:00.004+02:00</published><updated>2009-12-29T02:31:06.232+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM'/><title type='text'>Citizen Satisfaction</title><content type='html'>In my previous posts I talked about the customer satisfaction &lt;a href="http://omourad.blogspot.com/2009/09/customer-satisfaction-through.html"&gt;through requirements sign-off &lt;/a&gt;and &lt;a href="http://omourad.blogspot.com/2009/09/customer-satisfaction-vs-project-sign.html"&gt;through the project sign-off&lt;/a&gt;. Now I’ll talk a bit about customer satisfaction through a strong customer relationship.&lt;br /&gt;&lt;br /&gt;Customer relationship it that thing that makes your customer fell as if he is talking to a friend and not just a service provider or a seller. Some peoples are great in that, they are building strong relations with peoples in general and with customers specially. But how to achieve that as a company? This is the questions that every manager should answer by himself! But there are tips and tools that may help; one of them is the Customer Relationship Management applications, like Microsoft Dynamics CRM, Siebel CRM, SAP CRM and SalesForce that will help you a lot by making a profile to your customer and store all the information that you will need on the right time, in the right place and to the right person.&lt;br /&gt;&lt;br /&gt;Customers are sometimes just buyers to a product like a television or a mobile, or may be peoples that are using your service like hosting a web site or washing their cars. Patients are the doctors' and the hospitals' customers, students or the parents are the customers of a school or a university.&lt;br /&gt;&lt;br /&gt;One of the great samples that my company delivered is the &lt;a href="http://www.ameinfo.com/103834.html"&gt;Citizen Relationship Management&lt;/a&gt;, as the citizen is equals to customer from the government side view, and satisfying the customer – citizen – is one of the challenges that face all the governments, and building strong relation with the citizens will build the needed trust between the two sides.&lt;br /&gt;&lt;br /&gt;The same must be there between a company and the customers. As a customer I should call the customer service any time to find that the representative knows whom am I and when was my last call and what was the problem and if it is solved or not.&lt;br /&gt;&lt;br /&gt;Managers should view the reports that displays the numbers/percentages of the problems that needs to be solved and the average response time, and can dig into the details for a certain customer to see his satisfaction level. Hopefully our Citizen Relationship Management in Egypt used so that our ministers know how much the citizens are satisfied from their ministry and its services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-2930867344161670823?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/2930867344161670823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=2930867344161670823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2930867344161670823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2930867344161670823'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/12/citizen-satisfaction.html' title='Citizen Satisfaction'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8193201358403430635</id><published>2009-11-14T08:55:00.004+02:00</published><updated>2009-11-14T08:59:58.209+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Updating content type's and site column's group name using PowerShell</title><content type='html'>Few hours before deploying a SharePoint site I figured out that the group name of my Content Types and also the Site Columns are spelled incorrectly. I don’t want to delete and recreate neither the content types nor the site columns. So the options are: write console application that change the titles and run it on the server, or to make the same using PowerShell. And here are the steps to do it using PowerShell:&lt;br /&gt;&lt;br /&gt;Making backup from your site is recommended.&lt;br /&gt;&lt;br /&gt;1. First you need to have PowerShell installed on your server.&lt;br /&gt;2. From the CMD, type Powershell then Enter&lt;br /&gt;3. Import the SharePoint Assembly by typing [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")&lt;br /&gt;&lt;br /&gt;4. Create a site object from your site where the columns and the content types&lt;br /&gt;$site = new-object Microsoft.SharePoint.SPSite(“http://cairo:4000”);&lt;br /&gt;&lt;br /&gt;6. Update the Content Type group title&lt;br /&gt;$site.rootweb.contenttypes[“TheContentTypeName”].Group = “TheNewGroupTitle”; $site.rootweb.contenttypes[“TheContentTypeName”].Update($true,$true);&lt;br /&gt;&lt;br /&gt;8. Update the Site Column group title&lt;br /&gt;$site.rootweb.Fields[“TheColumnName”].Group = “TheNewGroupTitle”; $site.rootweb.Fields[“TheColumnName”].Update();&lt;br /&gt;&lt;br /&gt;10. Exit PowerShell&lt;br /&gt;11. Test the related modules.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8193201358403430635?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8193201358403430635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8193201358403430635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8193201358403430635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8193201358403430635'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/11/update-content-types-and-site-columns.html' title='Updating content type&apos;s and site column&apos;s group name using PowerShell'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-47511346209208119</id><published>2009-11-11T07:22:00.004+02:00</published><updated>2009-11-11T07:30:43.050+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='Organization Chart'/><title type='text'>Silverlight Organization Chart - Part 3 - The Node</title><content type='html'>Now after we talked about &lt;a href="http://omourad.blogspot.com/2009/10/silverlight-organization-chart-part-1.html"&gt;retrieving the data from the XML file&lt;/a&gt;, and &lt;a href="http://omourad.blogspot.com/2009/11/silverlight-organization-chart-part-2.html"&gt;calculating the nodes positions&lt;/a&gt;, we need to talk about drawing and the first thing that we need to draw is the node itself.&lt;br /&gt;&lt;br /&gt;In this post, please note that I’m using the “&lt;a href="http://silverlightrtl.codeplex.com/"&gt;Silverlight Hebrew &amp;amp; Arabic Language Support&lt;/a&gt;” library.&lt;br /&gt;&lt;br /&gt;My XAML file will look like that:&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: white;font-family:Courier New;font-size:8pt;color:black;"   &gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:red;"&gt; xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;my&lt;/span&gt;&lt;span style="color:blue;"&gt;="clr-namespace:System.Windows.BidiControls;assembly=BidiControls"&lt;/span&gt; &lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;dataInput&lt;/span&gt;&lt;span style="color:blue;"&gt;="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input"&lt;/span&gt; &lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Class&lt;/span&gt;&lt;span style="color:blue;"&gt;="OrgChart.NodeBox"&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;x&lt;/span&gt;&lt;span style="color:blue;"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;Width&lt;/span&gt;&lt;span style="color:blue;"&gt;="140"&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;="80"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Canvas&lt;/span&gt;&lt;span style="color:red;"&gt; x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;="canvMain"&lt;/span&gt;&lt;span style="color:red;"&gt; MouseEnter&lt;/span&gt;&lt;span style="color:blue;"&gt;="canvMain_MouseEnter"&lt;/span&gt;&lt;span style="color:red;"&gt; MouseLeave&lt;/span&gt;&lt;span style="color:blue;"&gt;="canvMain_MouseLeave"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Rectangle&lt;/span&gt;&lt;span style="color:red;"&gt; x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;="recBorder"&lt;/span&gt;&lt;span style="color:red;"&gt; RadiusX&lt;/span&gt;&lt;span style="color:blue;"&gt;="5"&lt;/span&gt;&lt;span style="color:red;"&gt; RadiusY&lt;/span&gt;&lt;span style="color:blue;"&gt;="5"&lt;/span&gt;&lt;span style="color:red;"&gt; Stroke&lt;/span&gt;&lt;span style="color:blue;"&gt;="CornflowerBlue"&lt;/span&gt;&lt;span style="color:red;"&gt; StrokeThickness&lt;/span&gt;&lt;span style="color:blue;"&gt;="2"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Rectangle.Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SolidColorBrush&lt;/span&gt;&lt;span style="color:red;"&gt; Color&lt;/span&gt;&lt;span style="color:blue;"&gt;='#f2f3fd' /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Rectangle.Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Rectangle&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;my&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:red;"&gt; TextAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;="left"&lt;/span&gt;&lt;span style="color:red;"&gt; x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;="tbEmployeeName"&lt;/span&gt;&lt;span style="color:red;"&gt; Width&lt;/span&gt;&lt;span style="color:blue;"&gt;="130"&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;="20"&lt;/span&gt;&lt;span style="color:red;"&gt; Foreground&lt;/span&gt;&lt;span style="color:blue;"&gt;="Black"&lt;/span&gt;&lt;span style="color:red;"&gt; Canvas.Left&lt;/span&gt;&lt;span style="color:blue;"&gt;="5"&lt;/span&gt;&lt;span style="color:red;"&gt; FontWeight&lt;/span&gt;&lt;span style="color:blue;"&gt;="Bold"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;my&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;my&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:red;"&gt; TextAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;="left"&lt;/span&gt;&lt;span style="color:red;"&gt; x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;="tbTitle"&lt;/span&gt;&lt;span style="color:red;"&gt; Width&lt;/span&gt;&lt;span style="color:blue;"&gt;="130"&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;="20"&lt;/span&gt;&lt;span style="color:red;"&gt; Foreground&lt;/span&gt;&lt;span style="color:blue;"&gt;="Black"&lt;/span&gt;&lt;span style="color:red;"&gt; Canvas.Left&lt;/span&gt;&lt;span style="color:blue;"&gt;="5"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;my&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;my&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:red;"&gt; TextAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;="left"&lt;/span&gt;&lt;span style="color:red;"&gt; x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;="tbDepartment"&lt;/span&gt;&lt;span style="color:red;"&gt; Width&lt;/span&gt;&lt;span style="color:blue;"&gt;="130"&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;="20"&lt;/span&gt;&lt;span style="color:red;"&gt; Foreground&lt;/span&gt;&lt;span style="color:blue;"&gt;="Black"&lt;/span&gt;&lt;span style="color:red;"&gt; Canvas.Left&lt;/span&gt;&lt;span style="color:blue;"&gt;="5"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;my&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;my&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:red;"&gt; TextAlignment&lt;/span&gt;&lt;span style="color:blue;"&gt;="left"&lt;/span&gt;&lt;span style="color:red;"&gt; x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;="tbExtension"&lt;/span&gt;&lt;span style="color:red;"&gt; Width&lt;/span&gt;&lt;span style="color:blue;"&gt;="130"&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;="20"&lt;/span&gt;&lt;span style="color:red;"&gt; Foreground&lt;/span&gt;&lt;span style="color:blue;"&gt;="Black"&lt;/span&gt;&lt;span style="color:red;"&gt; Canvas.Left&lt;/span&gt;&lt;span style="color:blue;"&gt;="5"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;my&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Canvas.Resources&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Storyboard&lt;/span&gt;&lt;span style="color:red;"&gt; x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;="mouseEnter"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColorAnimation&lt;/span&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;Duration&lt;/span&gt;&lt;span style="color:blue;"&gt;='00:00:01'&lt;/span&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;To&lt;/span&gt;&lt;span style="color:blue;"&gt;='#ffffcc'&lt;/span&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;='recBorder'&lt;/span&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;Storyboard.TargetProperty&lt;/span&gt;&lt;span style="color:blue;"&gt;='(Shape.Fill).(SolidColorBrush.Color)' /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Storyboard&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Storyboard&lt;/span&gt;&lt;span style="color:red;"&gt; x&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;Name&lt;/span&gt;&lt;span style="color:blue;"&gt;='mouseLeave'&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColorAnimation&lt;/span&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;Duration&lt;/span&gt;&lt;span style="color:blue;"&gt;='00:00:00'&lt;/span&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;To&lt;/span&gt;&lt;span style="color:blue;"&gt;='#f2f3fd'&lt;/span&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:blue;"&gt;='recBorder'&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:red;"&gt;Storyboard.TargetProperty&lt;/span&gt;&lt;span style="color:blue;"&gt;='(Shape.Fill).(SolidColorBrush.Color)' /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Storyboard&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Canvas.Resources&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Canvas&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Where you will find a reference to the BidiControls for the Arabic support, a canvas with a border and four TextBlock to display the Name, Title, Department and the Extension and the values are assigned from the properties in the code behind.&lt;br /&gt;Also there are two storyboards to change the background color on mouse hover.&lt;br /&gt;&lt;br /&gt;The code behind will look like that:&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND: white;font-family:Courier New;font-size:8pt;color:black;"   &gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; OrgChart&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;{&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;NodeBox&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;UserControl&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;{&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;double&lt;/span&gt; _fontSize = 10;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; NodeBox(&lt;span style="color:blue;"&gt;double&lt;/span&gt; scale)&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;{&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;_Scale = scale;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;InitializeComponent();&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;tbEmployeeName.FontSize = _fontSize * Scale;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;tbEmployeeName.SetValue(&lt;span style="color:#2b91af;"&gt;Canvas&lt;/span&gt;.TopProperty, 5 * scale);&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;tbEmployeeName.SetValue(&lt;span style="color:#2b91af;"&gt;Canvas&lt;/span&gt;.LeftProperty, 5 * scale);&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;tbEmployeeName.Height = 20 * scale;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;tbEmployeeName.Width = 130 * scale;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;tbEmployeeName.TextWrapping = &lt;span style="color:#2b91af;"&gt;TextWrapping&lt;/span&gt;.NoWrap;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;tbEmployeeName.Clip = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;RectangleGeometry&lt;/span&gt;() { Rect = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Rect&lt;/span&gt;(0, 0, 130 * scale, 20 * scale) };&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:green;"&gt;// the same for all the controls on the canvas&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;}&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;&lt;span style="color:green;"&gt;// Control Properties to set the TextBlock Values&lt;/span&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;}&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Where font size, width, height, the location and the clip area of each TextBlock must be adjusted based on the scale. Also the node border must be adjusted, the rounded corner radius and the thikness and the dimentions:&lt;br /&gt;&lt;br /&gt;&lt;div style="FONT-FAMILY: Courier New; BACKGROUND: white; COLOR: black; FONT-SIZE: 8pt"&gt;&lt;p style="MARGIN: 0px"&gt;recBorder.StrokeThickness = 2 * scale;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;recBorder.RadiusX = 5 * scale;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;recBorder.RadiusY = 5 * scale;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;recBorder.Width = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Width * scale;&lt;/p&gt;&lt;p style="MARGIN: 0px"&gt;recBorder.Height = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Height * scale;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Our next step will talk about drawing the nodes and the lines on the main control.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-47511346209208119?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/47511346209208119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=47511346209208119' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/47511346209208119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/47511346209208119'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/11/silverlight-organization-chart-part-3.html' title='Silverlight Organization Chart - Part 3 - The Node'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-5642465759510621473</id><published>2009-11-01T10:57:00.003+02:00</published><updated>2010-03-14T19:14:59.899+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Backup'/><title type='text'>Backup with DateTime</title><content type='html'>Want to make a batch file that is making backup to your SharePoint site and add to the file name a date? or add also the time?&lt;br /&gt;&lt;br /&gt;Use this command in your batch file:&lt;br /&gt;&lt;br /&gt;stsadm -o backup -url http://siteurl -filename sitename%date:~-4,4%%date:~-10,2%%date:~-7,2%-%time:~0,2%%time:~3,2%.dat&lt;br /&gt;&lt;br /&gt;This will make the command as:&lt;br /&gt;stsadm -o backup -url http://siteurl -filename sitename20091101-1159.dat&lt;br /&gt;&lt;br /&gt;Where: 20091101 is the date yyyymmdd, and 1159 is HHMM&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update:&lt;/strong&gt; running this script before 12 PM will render with space not a zero, so add these lines&lt;br /&gt;&lt;br /&gt;SET T=%time:~0,2%%time:~3,2%&lt;br /&gt;SET T=%T: =%&lt;br /&gt;&lt;br /&gt;which will replace the empty space&lt;br /&gt;&lt;br /&gt;stsadm -o backup -url http://siteurl -filename sitename%date:~-4,4%%date:~-10,2%%date:~-7,2%-%T%.dat&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-5642465759510621473?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/5642465759510621473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=5642465759510621473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5642465759510621473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5642465759510621473'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/11/backup-with-datetime.html' title='Backup with DateTime'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6599293857133198063</id><published>2009-11-01T06:07:00.003+02:00</published><updated>2009-11-01T06:31:20.193+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='Organization Chart'/><title type='text'>Silverlight Organization Chart – Part 2 – Calculations</title><content type='html'>Now we have the nodes list ready from &lt;a href="http://omourad.blogspot.com/2009/10/silverlight-organization-chart-part-1.html"&gt;the previous post&lt;/a&gt;, the second step is to start calculating where each node will be displayed. The below points will be called while loading the first time and then when the user resize the chart or open and close any node. For sure it will be better to just draw the chart with the new scale on resizing. And I’ll work on it to enhance its performance isA.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Point 1: Prepare the data&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this point we will start with the root node, and go to the child nodes then the sub child and so on. We need to set the level for each node, and the number of opened and closed sub nodes, also we will set the sub nodes order and the default allowed width for the second level. Also the total height will be calculated.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 8pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; SetLevel(&lt;span style="color: #2b91af;"&gt;Person&lt;/span&gt; parent, &lt;span style="color: blue;"&gt;int&lt;/span&gt; level)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: green;"&gt;// Set the node level&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; parent.Level = level;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: green;"&gt;// Calculate the total height based on the number of levels&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (totalHight &amp;lt; levelHight * (level + 2))&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; totalHight = levelHight * (level + 2) ;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MyCanvas.Height = totalHight;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: green;"&gt;// Select the closed items under this parent&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;var&lt;/span&gt; resultN = &lt;span style="color: blue;"&gt;from&lt;/span&gt; n &lt;span style="color: blue;"&gt;in&lt;/span&gt; persons&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; n.ManagerID == parent.ID &amp;amp;&amp;amp; n.Opened == &lt;span style="color: blue;"&gt;false&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;select&lt;/span&gt; n;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #2b91af;"&gt;Person&lt;/span&gt;[] nodesN = resultN.ToArray();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: green;"&gt;// Get the closed nodes number&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; parent.HiddenSubNodes = nodesN.Length;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: green;"&gt;// Select the opend nodes under this parent&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;var&lt;/span&gt; result = &lt;span style="color: blue;"&gt;from&lt;/span&gt; n &lt;span style="color: blue;"&gt;in&lt;/span&gt; persons&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; n.ManagerID == parent.ID &amp;amp;&amp;amp; n.Opened == &lt;span style="color: blue;"&gt;true&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;select&lt;/span&gt; n;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #2b91af;"&gt;Person&lt;/span&gt;[] nodes = result.ToArray();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: green;"&gt;// Get the Opend nodes number&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; parent.SubNodes = nodes.Length;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: green;"&gt;// Call the child nodes&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; nodes.Length; i++)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nodes[i].NodeOrder = i + 1;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nodes[i].MinChildWidth = buttonWidth + minHorizontalSpace;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetLevel(nodes[i], parent.Level + 1);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Point 2: Calculations&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 279px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398986459729738594" border="0" alt="" src="http://1.bp.blogspot.com/_GUHozeIg7kI/Su0NlH9Vu2I/AAAAAAAAACo/SdMmarTOJfU/s400/OrgChart.gif" /&gt;&lt;br /&gt;In this point we will need to:&lt;br /&gt;1. Calculate the width for each node based on the opened sub nodes. As you can see in the image, the minChildWidth for the blue node is not the same as the default.&lt;br /&gt;2. Calculate the StartX for each parent node.&lt;br /&gt;3. Calculate the X coordinate for each node based on the StartX of the parent and the node order. &lt;br /&gt;4. Realign the parent node to be centered in the space allowed for its sub nodes.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 8pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; CalculateWidth(&lt;span style="color: #2b91af;"&gt;Person&lt;/span&gt; parent)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (parent.SubNodes &amp;gt; 0)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;var&lt;/span&gt; result = &lt;span style="color: blue;"&gt;from&lt;/span&gt; n &lt;span style="color: blue;"&gt;in&lt;/span&gt; persons&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;where&lt;/span&gt; n.ManagerID == parent.ID &amp;amp;&amp;amp; n.Opened == &lt;span style="color: blue;"&gt;true&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;orderby&lt;/span&gt; n.NodeOrder&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;select&lt;/span&gt; n;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #2b91af;"&gt;Person&lt;/span&gt;[] nodes = result.ToArray();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;double&lt;/span&gt; minWidth = 0;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; nodes.Length; i++)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CalculateWidth(nodes[i]);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; minWidth = minWidth + nodes[i].MinChildWidth;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (minWidth &amp;gt; parent.MinChildWidth)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; parent.MinChildWidth = minWidth;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (MyCanvas.Width &amp;lt; minWidth)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MyCanvas.Width = minWidth;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; totalWidth = minWidth;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: green;"&gt;// Calculate the startX for each node&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;double&lt;/span&gt; start = parent.StartX;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; nodes.Length; i++)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nodes[i].StartX = start;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nodes[i].X = nodes[i].StartX + nodes[i].MinChildWidth / 2;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CalculateWidth(nodes[i]);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; start = start + nodes[i].MinChildWidth;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: green;"&gt;// realign the parent node to the middle of the child nodes&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (nodes.Length &amp;gt; 1)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; parent.X = (nodes[0].X + nodes[nodes.Length - 1].X) / 2;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;else&lt;/span&gt; &lt;span style="color: green;"&gt;// root element&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; parent.X = nodes[0].X;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;After that we will just need to draw the nodes, we have the X coordinate and we have the Y Coordinate with can be calculated from the level multiplied by the level hight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6599293857133198063?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6599293857133198063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6599293857133198063' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6599293857133198063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6599293857133198063'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/11/silverlight-organization-chart-part-2.html' title='Silverlight Organization Chart – Part 2 – Calculations'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GUHozeIg7kI/Su0NlH9Vu2I/AAAAAAAAACo/SdMmarTOJfU/s72-c/OrgChart.gif' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6099887854483498104</id><published>2009-10-28T05:33:00.002+02:00</published><updated>2009-10-28T07:05:50.413+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE8'/><title type='text'>IE8 Cool ... حركات IE8</title><content type='html'>In the latest Riyadh community summit last week, Microsoft KSA has announced for a competition for IE8 plug-ins “IE8 Cool ... حركات IE8”&lt;br /&gt;&lt;br /&gt;And the prizes for winners in the competition are:&lt;br /&gt;1st Winner: Tech-Ed Middle East March 1 – 3 Dubai&lt;br /&gt;2nd Winner: HTC HD2&lt;br /&gt;3rd Winner: Xbox 360 Elite System&lt;br /&gt;&lt;br /&gt;I have already some ideas, but if anyone can help me to go to Tech-Ed ME? :)&lt;br /&gt;&lt;br /&gt;For more info about the competition visit the &lt;a href="http://www.facebook.com/home.php?#/group.php?gid=155509007983"&gt;Facebook group&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6099887854483498104?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6099887854483498104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6099887854483498104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6099887854483498104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6099887854483498104'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/10/teched-middle-east-2010-i-may-be-there.html' title='IE8 Cool ... حركات IE8'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6373111811269356171</id><published>2009-10-26T06:56:00.008+02:00</published><updated>2009-10-26T07:45:07.132+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='Organization Chart'/><title type='text'>Silverlight Organization Chart – Part 1 – Read XML file</title><content type='html'>I’m sorry I did not post the details of how to do the &lt;a href="http://omourad.blogspot.com/2009/08/silverlight-organization-chart.html"&gt;Silverlight organization chart&lt;/a&gt; as was expected.&lt;br /&gt;&lt;br /&gt;I’ll not go in details of how to create a Silverlight application; you can see these details here.&lt;br /&gt;&lt;br /&gt;In my organization chart I make option either to read the nodes from XML file for read them from a web service (reading the data from Active Directory), I’m here will just talk about the XML file.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Point 1: the XML file &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;My XML file looks like this:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 8pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515;"&gt;xml&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;version&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;encoding&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; ?&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Persons&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Person&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;1&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Mostafa El Mashad &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Title&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;CEO&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Title&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Department&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Department&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Extension&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;1111&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Extension&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Email&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;mostafa.elmashad@domain.com&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Email&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ManagerID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ManagerID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Person&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Person&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;2&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Ahmed Sadek&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Title&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;HR Manager&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Title&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Department&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;HR&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Department&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Extension&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;1200&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Extension&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Email&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Ahmed.sadek@mydomain.com&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Email&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ManagerID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;1&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ManagerID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Person&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Person&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;3&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Hanan Youssef&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Title&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Sales Manager&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Title&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Department&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Sales&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Department&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Extension&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;1300&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Extension&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Email&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;hanan.youssef@mydomain.com&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Email&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ManagerID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;1&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ManagerID&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Person&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Persons&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;and you can add as much as person nodes as you want.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Where:&lt;/u&gt;&lt;br /&gt;ID: Is the identity of this person&lt;br /&gt;Name: The person name&lt;br /&gt;Title: His job title&lt;br /&gt;Department: The department he is working in&lt;br /&gt;Extension: Phone extension&lt;br /&gt;Email: his email address&lt;br /&gt;ManagerID: The identity value used in his manager data&lt;br /&gt;&lt;br /&gt;&lt;u&gt;In our example:&lt;/u&gt;&lt;br /&gt;Mostafa – the CEO – he has no manager, so the ManagerID is blank&lt;br /&gt;Hanan and Ahmed are reporting to Mostafa, so the ManagerID equal 1, which is Mostafa’s ID&lt;br /&gt;&lt;br /&gt;Note: this XML file will be deployed with the XAP file at the end.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Point 2: The Person class&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;I’ll need to make a class to represent the Person object, and while reading the data from the XML file I’ll put it in an list of Persons.&lt;br /&gt;&lt;br /&gt;public List&amp;lt;Person&amp;gt; persons = new List&amp;lt;Person&amp;gt;();&lt;br /&gt;&lt;br /&gt;Also I’ll need some extra data to be stored with each person, like:&lt;br /&gt;Level : The person level, in our example, Mostafa #1, Ahmed and Hanan #2&lt;br /&gt;SubNodes: How many person are reporting to the current, 2 are reporting to Mostafa&lt;br /&gt;HiddenSubNodes: The same as the SubNodes in case the node is not collapsed.&lt;br /&gt;NodeOrder: The order of this node between the same level under the same parent&lt;br /&gt;MinChildWidth: The display minimum width allowed for the child nodes&lt;br /&gt;X: The X coordinate of the node on the screen, the Y position is calculated from the node level&lt;br /&gt;StartX: The parent X&lt;br /&gt;Opened : is this node displayed or not&lt;br /&gt;Collapsed: Is this node’s child are displayed or not&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Point 3: Reading the XML file &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In the page load of my Silverlight control, I’ll call the method that will read the XML file:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 8pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; LoadXMLFile()&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #2b91af;"&gt;WebClient&lt;/span&gt; xmlClient = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;WebClient&lt;/span&gt;();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xmlClient.DownloadStringCompleted += &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;DownloadStringCompletedEventHandler&lt;/span&gt;(XMLFileLoaded);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xmlClient.DownloadStringAsync(&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Uri&lt;/span&gt;(&lt;span style="color: #a31515;"&gt;&amp;quot;OrgChart_Data.xml&amp;quot;&lt;/span&gt;, &lt;span style="color: #2b91af;"&gt;UriKind&lt;/span&gt;.RelativeOrAbsolute));&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Courier New; font-size: 8pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;void&lt;/span&gt; XMLFileLoaded(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af;"&gt;DownloadStringCompletedEventArgs&lt;/span&gt; e)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (e.Error == &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #2b91af;"&gt;Person&lt;/span&gt; firstNode = &lt;span style="color: #2b91af;"&gt;Person&lt;/span&gt;.GetPerson(&lt;span style="color: #a31515;"&gt;&amp;quot;OrgChartRootNode&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;&amp;quot;LINK Development&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; firstNode.MinChildWidth = totalWidth;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; persons.Add(firstNode);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #2b91af;"&gt;XElement&lt;/span&gt; lobjDocument = &lt;span style="color: #2b91af;"&gt;XElement&lt;/span&gt;.Parse(e.Result.ToString());&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;var&lt;/span&gt; Result = &lt;span style="color: blue;"&gt;from&lt;/span&gt; view1 &lt;span style="color: blue;"&gt;in&lt;/span&gt; lobjDocument.Descendants(&lt;span style="color: #a31515;"&gt;&amp;quot;Person&amp;quot;&lt;/span&gt;)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;select&lt;/span&gt; &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Person&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Name = (&lt;span style="color: blue;"&gt;string&lt;/span&gt;)view1.Element(&lt;span style="color: #a31515;"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;),&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ID = (&lt;span style="color: blue;"&gt;string&lt;/span&gt;)view1.Element(&lt;span style="color: #a31515;"&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;),&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ManagerID = (&lt;span style="color: blue;"&gt;string&lt;/span&gt;)view1.Element(&lt;span style="color: #a31515;"&gt;&amp;quot;ManagerID&amp;quot;&lt;/span&gt;),&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Title = (&lt;span style="color: blue;"&gt;string&lt;/span&gt;)view1.Element(&lt;span style="color: #a31515;"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;),&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Department = (&lt;span style="color: blue;"&gt;string&lt;/span&gt;)view1.Element(&lt;span style="color: #a31515;"&gt;&amp;quot;Department&amp;quot;&lt;/span&gt;),&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Extension = (&lt;span style="color: blue;"&gt;string&lt;/span&gt;)view1.Element(&lt;span style="color: #a31515;"&gt;&amp;quot;Extension&amp;quot;&lt;/span&gt;),&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Email = (&lt;span style="color: blue;"&gt;string&lt;/span&gt;)view1.Element(&lt;span style="color: #a31515;"&gt;&amp;quot;Email&amp;quot;&lt;/span&gt;)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; };&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #2b91af;"&gt;Person&lt;/span&gt;[] nodes = Result.ToArray();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; nodes.Length; i++)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (&lt;span style="color: blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(nodes[i].ManagerID))&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nodes[i].ManagerID = &lt;span style="color: #a31515;"&gt;&amp;quot;OrgChartRootNode&amp;quot;&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; persons.AddRange(nodes);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Start();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here in my control, if any node did not has a ManagerID value, I’ll consider it as a parent node just under the organization root element.&lt;br /&gt;&lt;br /&gt;In the last line of code, you will see a call to a Start method, which will start calculating and building the organization chart nodes. And we will talk about the calculations in a separate post soon isA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6373111811269356171?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6373111811269356171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6373111811269356171' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6373111811269356171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6373111811269356171'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/10/silverlight-organization-chart-part-1.html' title='Silverlight Organization Chart – Part 1 – Read XML file'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-3754828552972015587</id><published>2009-10-24T19:23:00.008+02:00</published><updated>2009-10-24T23:56:28.393+02:00</updated><title type='text'>Otlob.com on mobile</title><content type='html'>I have an account on Otlob since 2001 and make all my orders through it in Egypt. But using Otlob in KSA is a problem, all the restaurants are closing between 30 to 60 minutes for praying four times a day and you cannot place an order and you have to wait all this time - And you will not see a message when actually your order will be delivered - currently it is 40 minutes  fixed- which is the same if you are going to make your order and eat in the restaurant.&lt;br /&gt;&lt;br /&gt;Another problems that is facing me while using Otlob web site in KSA is the address, as still in KSA there is no accurate addresses in many places, and for each address I want the food to be delivered to I have to make a profile, while in some places I don’t know what is the address but I can just describe it.&lt;br /&gt;&lt;br /&gt;A lot of people come to KSA to do some tasks and then return back to their countries, and those are the most people whose needs to order fast foods, they did not have time, and they may not have any internet access to browse the Otlob website.&lt;br /&gt;&lt;br /&gt;A mobile application (not a mobile website) is a good idea for this scenario, the user will download the application from the net, and he can select which restaurants he wants to download its menus. He can check this menu while he is in the taxi and offline for example.&lt;br /&gt;&lt;br /&gt;He can also just check for the menu and go directly to the restaurant, but he knows already what the menu is and what are the prices, he may select to “prepare the order for me” service, to be able to go and eat it before the prayer time. He can also pass through and take it home.&lt;br /&gt;&lt;br /&gt;For the addresses, GPS became available in every mobile, so the user can set an order and select to receive it in the location where he is now. He doesn’t need to make a new profile for these addressees, as he may be today in Riyadh and tomorrow in Jeddah and so on.&lt;br /&gt;&lt;br /&gt;Preferred orders, will be much easier, as the mobile will display a reminder “Do you want to make the order now? It will be delivered after one hour”, he can select “Just prepare it for me, I’ll be there before the prayer time to take it home.”&lt;br /&gt;&lt;br /&gt;Just ideas. And that is what I want from a mobile application.&lt;br /&gt;&lt;br /&gt;What do you think? any ideas?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-3754828552972015587?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/3754828552972015587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=3754828552972015587' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3754828552972015587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3754828552972015587'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/10/otlobcom-on-mobile.html' title='Otlob.com on mobile'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8066241625554350414</id><published>2009-10-23T19:40:00.002+02:00</published><updated>2009-10-23T19:46:16.064+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>SharePoint4Arabs</title><content type='html'>A year ago, I met with Ayman El Hatab &lt;a href="http://www.aymanelhattab.com/"&gt;http://www.aymanelhattab.com/&lt;/a&gt; before he joined ITWorx, then two weeks ago I found him on Twitter. He sent to me an email introducing &lt;a href="http://www.sharepoint4arabs.com/"&gt;http://www.sharepoint4arabs.com/&lt;/a&gt; website, and I found it really interesting to make Arabic trainings, articles and video tutorials.&lt;br /&gt;&lt;br /&gt;Till now, they are focusing on the end user; for example: What is SharePoint, how to make a site columns, content types, and managing site security.&lt;br /&gt;&lt;br /&gt;I started with them by recording my first video “SharePoint Pages” talking about the Basic and the Web Part Pages, the related content types and its page layouts. And there will be soon another video that is talking about the “Publishing Pages” then “SharePoint MasterPages” and “Page Layouts” that will be in Arabic as well isA.&lt;br /&gt;&lt;br /&gt;Hopefully this series help in introducing SharePoint to Arabic audience and give them their first step on using, customizing, managing SharePoint sites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8066241625554350414?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8066241625554350414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8066241625554350414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8066241625554350414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8066241625554350414'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/10/sharepoint4arabs.html' title='SharePoint4Arabs'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-2556108302801030748</id><published>2009-10-23T00:46:00.008+02:00</published><updated>2009-10-23T01:07:12.997+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><title type='text'>Waiting for SharePoint 2010</title><content type='html'>No date for releasing the software and no actual date as well for the beta version (possibly mid of November), but everyone is waiting.&lt;br /&gt;&lt;br /&gt;But the good thing is that there is Development Hands-on Labs since the second day in the conference &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=c010fc68-b47f-4db6-b8a8-ad4ba33a35c5"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=c010fc68-b47f-4db6-b8a8-ad4ba33a35c5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Besides, there are ten modules to start developing on SharePoint 2010 &lt;a href="http://msdn.microsoft.com/en-us/sharepoint/ee513147.aspx"&gt;http://msdn.microsoft.com/en-us/sharepoint/ee513147.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As well, there will be a group of SharePoint 2010 courses (webcasts/offline) in December by a group of SharePoint MVPs (Andrew Connell is one of the instructors) &lt;a href="http://www.andrewconnell.com/blog/"&gt;http://www.andrewconnell.com/blog/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And today I have attended the Riyadh Community Summit, an event sponsored by Microsoft KSA and organized by three user groups in Riyadh:&lt;br /&gt;1. Riyadh SharePoint User Group – &lt;a href="http://www.rsug.net/"&gt;http://www.rsug.net/&lt;/a&gt;&lt;br /&gt;2. DevLifeStyle - &lt;a href="http://www.devlifestyle.net/"&gt;http://www.devlifestyle.net/&lt;/a&gt;&lt;br /&gt;3. CΏdeβettěЯ - &lt;a href="http://www.codebetter.net/"&gt;http://www.codebetter.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The event was at Al Yamamah University where all the software events are currently happened there.&lt;br /&gt;&lt;br /&gt;And it was really good to listen to someone talking about SharePoint 2010 at the same time as in #SPC09 (GDC09 will be in Riyadh isA 13-15 December)&lt;br /&gt;&lt;br /&gt;BTW, at the end of today’s sessions, the two persons that were sitting beside me on both sides have won a 1 year access to &lt;a href="http://www.microsoftelearning.com/"&gt;http://www.microsoftelearning.com/&lt;/a&gt; and for me I have received a book “Object Thinking” &lt;a href="http://www.amazon.com/Object-Thinking-DV-Microsoft-Professional-David/dp/0735619654"&gt;http://www.amazon.com/Object-Thinking-DV-Microsoft-Professional-David/dp/0735619654&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-2556108302801030748?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/2556108302801030748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=2556108302801030748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2556108302801030748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2556108302801030748'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/10/waiting-for-sharepoint-2010.html' title='Waiting for SharePoint 2010'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6577156065091304029</id><published>2009-10-21T19:40:00.006+02:00</published><updated>2009-10-21T19:58:28.044+02:00</updated><title type='text'>Nice !!!</title><content type='html'>&lt;strong&gt;&lt;u&gt;Nice #1:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This is the word that my son – 2 years - learned to say while patting on the cat; his mom told him to be nice with the cat and showed him how to pat smoothly, but he understand it as “pat a cat” = “Nice”.&lt;br /&gt;&lt;a href="http://www.facebook.com/photo.php?pid=8907036&amp;amp;id=610370569"&gt;http://www.facebook.com/photo.php?pid=8907036&amp;amp;id=610370569&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Nice #2:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;But I saw the word “Nice” in a blog, it was in the comments, and it was repeated many times plus some other words like “Extremely Interesting” and “Just Great”. I was happy to see these comments as the blog is related to a friend and a colleague and it was just his second post, but one comment stopped me, which is “You made some good points there” while the post was just a link to another website with two lines describing this link!&lt;br /&gt;&lt;br /&gt;I started to check, who add this comment and I found that his name is redirecting to a loans website, and the surprise was that some other comments are added by the same user (same site URL) and most of the comments are added by someone just want to increase the number of the sites that referring to his site!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Nice #3:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I have received a link to &lt;a href="http://www.personalizemedia.com/"&gt;http://www.personalizemedia.com/&lt;/a&gt; in this page you will find a flash object with numbers that are changed so fast. It is the social media counter, it shows you how many new Twitter user, or how many video are watched now on YouTube, or how much Facebook collected from the Gifts. The user who post the article said that you can embed this counter in your site like this:&lt;br /&gt;&lt;br /&gt;&lt;object id="Garys Social Media Count" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" height="325" width="300" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&lt;param name="_cx" value="15875"&gt;&lt;param name="_cy" value="17198"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://www.personalizemedia.com/media/socmedcounter.swf"&gt;&lt;param name="Src" value="http://www.personalizemedia.com/media/socmedcounter.swf"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="0"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value=""&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value=""&gt;&lt;param name="Scale" value="ShowAll"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value="FFFFFF"&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="false"&gt;&lt;embed id="Garys Social Media Count" type="application/x-shockwave-flash" width="300" height="325" src="http://www.personalizemedia.com/media/socmedcounter.swf" name="myMovieName" bgcolor="#FFFFFF" quality="high"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Very Nice!!!&lt;br /&gt;&lt;br /&gt;But the first thing that I thought about is the number of hits to all this information sources; take into consideration that ANYONE can embed it anywhere, which means that extra number of hits; also it was very strange that this person know how to read all these updated information and with this high frequency, instantly I switched off my wireless connection, but the numbers still increasing!&lt;br /&gt;&lt;br /&gt;Then I returned back to read and I found a link to the details page &lt;a href="http://www.personalizemedia.com/garys-social-media-count/#more-1734"&gt;http://www.personalizemedia.com/garys-social-media-count/#more-1734&lt;/a&gt; that his numbers are calculated based on facts, and not a real numbers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6577156065091304029?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6577156065091304029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6577156065091304029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6577156065091304029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6577156065091304029'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/10/nice.html' title='Nice !!!'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-1834560007919064984</id><published>2009-10-20T02:56:00.005+02:00</published><updated>2009-10-20T03:11:31.418+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>SharePoint 2010 - Day 1</title><content type='html'>It is 4:00 AM, and I’m online on twitter for more than three hours, trying to know as much as I can from the people at the SharePoint 2010 conference #SPC09, and it seems now that the most important thing is that #NoCofee and other people are asking about the #Power to recharge their laptops and mobiles (as per one of the attendees 40% are MAC).&lt;br /&gt;&lt;br /&gt;Well, I just realized the importance of twitter, it is great, and people there are wearing shirts and hats with their Twitter ID on it, but some users are describing this as cacophony, but for me it is really interesting.&lt;br /&gt;&lt;br /&gt;But actually I’m not going to talk about Twitter more than that, as I have to focus on SharePoint which I’ll work on isA and I have to manage some projects before they came up with the new versions - I’m sure it will be very soon.&lt;br /&gt;&lt;br /&gt;SharePoint 2010 comes up with a lot of changes and new features; the most thing that disappointed me is the new Silverlight Organization Chart. So, what can I do now with my Silverlight OrgChart? :(&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Now my plan is to:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1. Send email to my boss requesting some new Laptops and PCs for me and for my team. Check this link &lt;a href="http://blogs.msdn.com/opal/archive/2009/10/19/sharepoint-2010-what-does-that-mean-for-it-pros.aspx"&gt;http://blogs.msdn.com/opal/archive/2009/10/19/sharepoint-2010-what-does-that-mean-for-it-pros.aspx&lt;/a&gt;&lt;br /&gt;2. Start reading and studding SharePoint 2010 – check this &lt;a href="http://blogs.msdn.com/sharepoint/archive/2009/10/19/sharepoint-2010.aspx"&gt;http://blogs.msdn.com/sharepoint/archive/2009/10/19/sharepoint-2010.aspx&lt;/a&gt;&lt;br /&gt;3. SharePoint Designer 2010 – it will be free the same as 2007 – check this &lt;a href="http://willhlaw.wordpress.com/"&gt;http://willhlaw.wordpress.com/&lt;/a&gt;&lt;br /&gt;4. Visual Studio 2010&lt;br /&gt;5. .NET 4.0&lt;br /&gt;6. Silverlight&lt;br /&gt;7. More XSLT&lt;br /&gt;8. More LINQ&lt;br /&gt;9. PowerShell&lt;br /&gt;10. …..&lt;br /&gt;11. …..&lt;br /&gt;12. …..&lt;br /&gt;13. …..&lt;br /&gt;&lt;br /&gt;Now what? It is the same as changing the study courses each year in the school “Sorry, but you must start again from KG1, everything is changed!” and with every new version we hear people say: “we will not find anything to do, the new application will do everything, and we will lose our jobs”, but actually with every new software and new programming language there are much more things to do, and I’m really excited to start developing with the new things.&lt;br /&gt;&lt;br /&gt;But before developing, we have to support our sales team to bring new projects to be done over the new SharePoint, and as I’m working in KSA office, I think it is one of my tasks and it will start very soon isA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-1834560007919064984?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/1834560007919064984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=1834560007919064984' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/1834560007919064984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/1834560007919064984'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/10/sharepoint-2010-day-1.html' title='SharePoint 2010 - Day 1'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-60526031225932005</id><published>2009-10-18T03:25:00.003+02:00</published><updated>2009-10-18T18:07:30.358+02:00</updated><title type='text'>20 Years Ago...</title><content type='html'>For me it sounds like an old man telling the story of his life, but it really seems like this when the story is that of the internet and computer technologies, comparing it to what was there about 20 years ago.&lt;br /&gt;&lt;br /&gt;My PC was a 386 with only 1 MB ram, 1 floppy 5.25” (360 Kb, 1.2MB), floppy 3.5” (720 Kb, 1.44 MB) and a hard disk of 40 MB (I did not hear that any of my friends or relatives had larger than the 40 MB for another two years) this is how I started my life on computers, and it was something that our brains can accept bit by bit, but now things are changed and changed again two or three times without even hearing about the changes in between.&lt;br /&gt;&lt;br /&gt;Today, it is a human right in Finland to have a broad band connection 1MB, you can access the internet anywhere via your mobile, but 15 years ago I was sharing the same internet password with 10 of my friends (only one user can log in at a time)&lt;br /&gt;&lt;br /&gt;One MB email inbox, now I don’t know what is the used or the available space on my Gmail account.&lt;br /&gt;&lt;br /&gt;I do not remember how many students from my school growing up had a computer at home they may have been 4 or 6 (not Atari or Shakhr) but now there are 600k new user registrations  on Facebook every day!!&lt;br /&gt;&lt;br /&gt;20 years ago, it was a fact that there is something named Magnetic Field and nothing about the Magnetricity, now Facebook, Twitter, LinkedIn,… are facts, and accept it or not, you are in the Google Age!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-60526031225932005?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/60526031225932005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=60526031225932005' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/60526031225932005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/60526031225932005'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/10/20-years-ago.html' title='20 Years Ago...'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-4051165663462772189</id><published>2009-10-13T21:11:00.003+02:00</published><updated>2009-10-13T21:47:26.579+02:00</updated><title type='text'>فتحي رضوان : مبادئ مصطفى كامل</title><content type='html'>&lt;h1 dir="rtl" align="right"&gt;قصة الغلاف : مبادئ مصطفى كامل&lt;/h1&gt;&lt;a href="http://3.bp.blogspot.com/_GUHozeIg7kI/StTWYHiUs1I/AAAAAAAAACQ/YCo2bKg5vCw/s1600-h/FathyRadwan1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5392170363697541970" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 236px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_GUHozeIg7kI/StTWYHiUs1I/AAAAAAAAACQ/YCo2bKg5vCw/s320/FathyRadwan1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="right"&gt;&lt;strong&gt;قال الملك السابق لوزرائه: "لو أفرجتم عنه ... فإنه سوف يقتلني"&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;فلقد كانت قضايا "الاغتيالات" هي القاسم المشترك الأعظم في حساة ذلك الشاب اللذي يخفي ثورة جيل كامل وراء ذلك الهدوء العجيب الذي معدنه .. ووراء هذه الابتسامة البريئة الحلوة التي ترتسم دائما على شفتيه وكأنها صادرة من أعماق قلبه .. ووراء تلك الشعيرات البيضاء التي تكلل هامته كما يكلل الثلج قمم الجبال العالية على الرغم من أنه لا يزال في الحادية والاربعين من عمره.لقد اتهم فتحي رضوان و اعتقل في أكثر من ست قضايا للاغتيالات منها محاولة اغتيال مصطفى النحاس واغتيال أحمد ماهر واغتيال النقراشي و اغتيال أمين عثمان.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;فمن يكون فتحي رضوان؟ &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;شرقاوي&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;لقد ولد في 14 مايو 1911 في المنيا وكان والده مهندس ري المنيا .. أما جده فقد كان ضابطا في الجيش التركي أحيل على التقاعد عندما بلغ السن القانونية ثم هاجر وتزوج من سيدة مصرية، وعاش حياته في بلدة المنير بالقرب من مدينة القناطر.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وفي هذه القرية اشترى قطعة من الارض بمعاشه ، كان يفلحها ويزرعها بنفسه ثم يوزع الايراد على القرويين ولذلك أحبه الفلاحون و أصبحوا يحاكمون إليه في منازعاتهم ومشاجراتهم ويقبلون حكمه.وعندما مات اعتبروه وليا من أولياء الله الصالحين وشيدوا له ضريح لا يزال قائما حتى الآن ويعرف بإسم "ضريح الشيخ عثمان" ثم راحوا يحتفلون كل عام بمولده. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;السيد فتحي&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;واسم وزير الدولة في شهادة الميلاد هو "السيد فتحي" .. ولذلك قصة طريفة فقد كانت والدته تتمنى من الله أن يرزقها بمولود ذكر، و في إحدى الليالي رأت في الرؤيا السيد البدوي و هو يحمل طفلا بين يديه قدمه إليها وقال لها: "سترزقين بولد .. فسميه فتح الله" فتفاءلت الام بهذه الرؤيا و ارادت ان تجمع بين اسم السيد البدوي و بين الاسم الذي ذكره لها في الرؤيا فسمته "السيد فتحي"&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ومنذ اليوم الاول لميلاد فتحي رضوان وهو فريسة عدة امراض، فقد توالت عليه معظم الادواء فأصيب بالتيفود و الديفتريا والجدري والحمى القرمزية والروماتيزم.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وكان والده – وهو لا يزال حتى الآن في قيد الحياة – كثير التنقل بين مديريات الوجه القبلي شأنه في ذلك شأن الموظفين الآخرين .. و أخيرا عين في مديرية الجيزة "باشمهندس" للري .. فأقامت الاسرة الصغيرة – وكانت تتكون من ولد واحد هو فتحي رضوان و ثلاثة بنات – في منزل صغير في حي السيدة زينب تملكه بريمادونة مصر في ذلك الوقت "امليا ديان" المشهورة باسم "مليا" وكانت هي الممثلة الاولى في فرقة الشيخ سلامة حجازي.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وكانت اسعد اللحظات في حياة الطفل فتحي رضوان هي تلك اللحظات التي كانت تحضر فيها "مليا" بنفسها لتتسلم ايجار الشقة وتدعو الاسرة في بعض الاحيان إلى مسرح سلامح حجازي أو تجلس "لتدردش" عن نهضة المسرح وتاريخه وعن سلامة حجازي وفنه. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;مصطفى كامل&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;و سمع فتحي رضوان عن مصطفى كامل لأول مرة في مدرسة الجمعية الأهلية المصرية ، و كان ناظرها "محمود أنيس" أحد الذين اتهموا في قضية اغتيال بطرس غالي بالاشتراك مع الورداني و لكن التهمة لم تثبت عليه فأفرج عنه المستشار متولي غنيم لانه لم يجد وجها لاقامة الدعوى ضده. ولكن الحكومة فصلت محمود انيس ففتح هذه المدرسة الأهلية ، ولما كان انيس صديقا حميما لوالد فتحي رضوان فقد ألحق بها نجله تشجيعا لصديقه، وكان ناظر المدرسة محمود أنيس ينتهز كل عام فرصة نهاية العام الدراسي فيقيم حفلا وطنيا كبيرا ويخطب فيه في الطلبة ويتحدث عن مزايا مصطفى كامل وعن دوره في الحركة الوطنية. &lt;/strong&gt;&lt;/p&gt;&lt;a href="http://1.bp.blogspot.com/_GUHozeIg7kI/StTWYeIZGyI/AAAAAAAAACY/KX18l8wV9yo/s1600-h/FathyAndAminaRadwan.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5392170369762794274" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 237px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_GUHozeIg7kI/StTWYeIZGyI/AAAAAAAAACY/KX18l8wV9yo/s320/FathyAndAminaRadwan.jpg" border="0" /&gt;&lt;/a&gt; &lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;ثورة 1919&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وعندما بدأت ثورة 1919 كان فتحي رضوان في السنة الاولى الابتدائية بمدرسة محمد علي.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;إنه ما زال يتذكر ذلك اليوم الذي دخلت فيه اخته المنزل وهي تنشج بالبكاء فسألتها أمها: ماذا حدث؟&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;فقالت أخته: لقد أهانتني ناظرة المدرسة مسز كارتر الانجليزية .. كم كنت أود أن أصفعها.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;فقالت لها أمها: ماذا قالت لك؟&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;قالت لي انك تلميزة مشاغبة ومن الافضل فصلك لانك تريدين أن تشعلي نار الثورة في المدرسة وانك بذلك تعرضين نفسك للطرد والفصل.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وماذا قلت لها؟&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;قلت لها.. أن وطني يجئ في المرتبة الأولى وأنه في حاجة إلى جميع مجهوداتنا .. أما أنت .. فاذهبي إلى وطنك واحتفظي بوعيدك ونصائحك لنفسك. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;أعتقال&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ويقول فتحي رضوان: وراحت انباء الثورة تتواتر إلى سمعي .. اعتقالات في كل مكان .. رصاص .. ثورة .. مدافع .. دماء .. اعتداءات من الانجليز على الارواح البريئة .. قطع خطوط السكة الحديد.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ولكني تعلمت دور الوطنية الاولى من المنزل .. بل من أمي بالذات .. كنت أعود من المدرسة .. فأجدها متجهمة الوجه .. ثائرة الأعصاب .. و في أحد الايام قالت لي أمي: يا فتحي .. ناد اخواتك و تعال.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وعندما عدت بعد لحظات مع شقيقاتي الثلاث ، وجدت أمي تجلس على أحد المقاعد وأمامها سلة كبيرة مغطاة ، وما كادت ترانا حتى قالت: هل أنتم جميعا هنا اجلسوا حولي. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ثم رفعت أمي غطاء السلة وأخرجت منها مجموعة من جريدة اللواء وبدأت تقرأ في صوت مرتفع خطب مصطفى كامل ومقالات مصطفى كامل.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;و في إحدى الامسيات عدت إلى المنزل متأخرا فوجدت شقيقاتي وأمي وهن ينتحبن في صوت مسموع وأمامهن جريدة اللواء، وارتعدت لهذا المنظر فقلت في سذاجة: أمي .. ماذا حدث .. هل مات أحد؟&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;فقالت أمي: أجلس يا بني .. اني اقرأ لشقيقاتك وصف جنازة مصطفى كامل! &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;النشاط الأول&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وفي المدرسة الابتدائية التقى فتحي رضوان بأحمد حسين .. وقاما بأول نشاط .. فلقد انشآ بالاشتراك مع عباس حلمي – وهو الآن بكباشي بالبوليس – جمعية أطلقوا عليها اسم "نصر الدين الاسلامي" وكانت هذه الجمعية تطبع منشورات وتوزعها على الطلبة وعلى رواد المقاهي تدعو فيها الناس إلى التقوى والولرع والعمل الصالح.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وفي أحد الايام استدعى ناظر المدرسة - وكان اسمه محمد توفيق البرادعي – أعضاء هذه الجمعية وهددهم بالفصل إذا لم يكفوا عن طبع هذه المنشورات، ومن الطريف أن أحمد حسين وفتحي رضوان لم يحاولا أن يدفعا تهمة توزيع المنشورات عن نفسيهما ، بل دافعا عن فكرة الجمعية وعن أهدافها ومراميها .. في الوقت الذي تخلى فيه أعضاء الجمعية عنها و القيا عليهما كل المسئولية. و كان هذا أول اصطدام بين فتحي رضوان والسلطات المختصة بخصوص المنشورات التي تدعو إلى فكرة معينة. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;التلميذ الصحفي&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وفي مدرسة أسيوط برز فتحي رضوان كصحفي، فقد دعا الطلبة إلى اصدار مجلة للمدرسة على غرار مجلة الخديوية والسعيدية.. فكانت بذلك أول مجلة لمدرسة أقليمية خارج القاهرة.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;كما كتب أول مقال له في جريدة اللواء المصري التي كان يصدرها الاستاذ أمين الرافعي عام 1925 وكان المقال حول تنقيح البرامج المدرسية وهو البرنامج الذي وضعه "علي ماهر" وزير المعارف في ذلك الوقت.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وكانت أول محاضرة القاها فتحي رضوان عن داروين ومذهب التطور في جمعية القلم التي كان يرأسها الاستاذ حافظ محمود. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;حادث طريف&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وقد حدث أثناء هذه المرحلة التي قضاها فتحي رضوان في مدرسة بني سويف أن قام الملك فؤاد بزيارة لمدارس الوجه القبلي .. و كان ضمن برنامج الملك زيارة مدرسة أسيوط. &lt;/strong&gt;&lt;strong&gt;فانتدبت المدرسة فتحي رضوان لالقاء قصيدة عصماء من تأليف الاستاذ علي الجارم مفتش اللغة العربية في ذلك الوقت أمام الملك. وكان مطلع القصيدة:يا مالك ملك القلوب .. فكان خير المالكين.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;و كان مقررا في الحفلة أن يزور الملك فؤاد الفصول .. ثم يقف في الشرفة الكبيرة المطلة على فناء المدرسة فيستعرض فرق الالعاب الرياضية والكشافة .. ثم ينزل الدرجات العريضة للشرفة .. وعنئذ يشق فتحي رضوان صفوف طلبة الالعاب الرباضية .. وعلى بعد خمسة أمتار من الملك يلقي القصيدة.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;والذي حدث أن زيارة الفصول استغرقت أكثر من الوقت المحدد لها وبدأت الشمس تميل إلى المغيب والملك يستعرض الفرق الرياضية .. فما كادت الالعاب تنتهي حتى أسرع الملك في الخروج.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ولاحظ فتحي رضوان ذلك وكان حريصا على إلقاء القصيدة فخرج يعدو وراء الملك .. وكان من عادته وهو يجري أن يضع يده في جيبه و يخرج منديلا ابيض اللون .. ولكنه في ارتباكه هذه المرة وضع يده في جيبه ولم يخرجها .. فاعتقدت حاشية الملك أن فتحي رضوان يحاول ان يغتال الملك أو انه على الاقل اعتزم القيام بعمل ما. وصرخ ناظر المدرسة – وكان اذ ذاك الاستاذ محمد رفعت – وقال للمدرسين: ماذا يريد هذه الولد .. امنعوه. وقبل أن يمنعوه كان الطالب فتحي رضوان على بعد متر واحد من الملك والورقة ترتعش بين إصبعه وهو يقول: يا مالك ملك القلوب .... &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;مقلب&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ومما يذكر أيضا ان الاستاذ لطفي السيد – وكان وزير المعارف وقتئذ – جاء لزيارة المدرسة .. و تفقد الدراسة فيها .. وكان المفروض أن يقف فتحي رضوان بالنيابة عن الطلبة فيلقي قصيدة عصماء كتبها ايضا الاستاذ علي الجارم.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وقبل الزيارة قامت المدرسة باجراء عدة "بروفات" كان يقف فيها فتحي رضوان ويلقي القصيدة مرة ومرتين وثلاث مرات .. وعندما حان موعد الزيارة .. تقدم فتحي رضوان في خطوات جريئة واخرج القصيدة من جيبه .. ولكنه بدلا من ان يقرأها كورها بين اصابعه ورماها على الارض وارتجل كلمة نثرية قال فيها: يا وزير المعارف .. اعلم تماما اننا لا نحتفل بك لانك وزير .. فلقد كنت أول من علمنا أن الوظائف تقليد لا تخليد .. وانما نحتفل بك كصاحب "الجريدة" ورئيس تحريرها .. وانك علمت فيها هيكل ومصطفى عبدالرازق والدكتور طه حسين ومنصور فهمي.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وتستطيع أن تتصور ايها القارئ مدى الرعب الذي بدا على وجه الناظر وهو يستمع إلى طالب في الخامسة عشرة من عمره يخوض في السياسة ويتحدث عن طه حسين وهيكل كانداد و يحكم عليه حكم قاض مجرب!!&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وما كاد الحفل ينتهي حتى اقبل لطفي السيد على هذا الطالب الجرئ ووضع يده على كتفيه وقال له : قل لي يا شاطر .. احنا صديقان .. انت ابن مين؟؟!! &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;في الجامعة&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;والتحق الطالب "المناكف" بكلية الحقوق .. وكانت السنة الأولى التحضيرية في كلية الآداب .. وأراد أن يشبع هوايته الصحفية.. فأجر جريدة اسمها "الصرخة" مع بعض شباب الطليعة في جزب مصر الفتاة وكان فتحي رضوان يكتب فيها قصة مسلسلة اسمها "غيور" تعالج بعض المشاكل النفسية. ولكن حدث أن اختلف فتحي رضوان مع صاحب الجريدة فامتنع عن اصدارها. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وكم كانت دهشته بالغة عندما تلقى انذارا من صاحب جريدة الصرخة يطلب فيها منه ارسال بقية القصة المسلسلة وإلا فان صاحب الصرخة نفسه سوف يكملها بنفسه و يبدل ابطالها ويشوه معالمها!! &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;من المحيط الضيق&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وبدأ فتحي رضوان يخرج من المحيط الجامعي التعيق إلى المحيط الخارجي .. فدعا إلى عقد مؤتمر للطلبة الشرقيين .. يجتمع كل عام في عاصمة إحدى الدول الشرقية وتنظم فيه العاب اوليمبية شرقية.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وسافر فتحي رضوان إلى سوريا والعراق وتركيا وفلسطين .. وحدث أن ألقى محاضرة في الجامعة السورية يدعو فيها إلى فكرته وشرح أهدافها ومراميها .. فرفضت لبنان دخوله وقالت السلطات المختصة ان هذه الدعوة دعوة سياسية وطرد بالقوة.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وعندما عاد فتحي رضوان إلى القاهرة .. نشر بيانا وجهه إلى شباب مصر ودعاهم إلى أن يعملوا على تدعيم زعامة مصر.وكانت الحكومة القائمة في ذلك الوقت هي حكومة اسماعيل صدقي. وفهم صدقي أن فتحي رضوان بدعوته إلى تدعيم زعامة مصر إنما يرمي إلى تدعيم زعامة النحاس على مصر!!&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;فأصدرت الحكومة قرارا بحل المؤتمر وكانت لجنته العليا مكونة من علي ابراهيم رئيسا ومصطفى مشرفة واحمد أمين وعبدالوهاب عزام ومنصور فهمي أعضاء من الاساتذة.أما الشبان فكانوا مجموعة غريبة من بينهم عبدالقادر الحسيني وموسى الحسيني واسعد طلسي وجميل المسلمي وعبد القهار المذكر ومصطفى الوكيل وعمر الدسوقي وغيرهم. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;بدء الحياة السياسية&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;بدأت حياة فتحي رضوان السياسية مع مشروع القرش .. فالذي حدث أن احمد حسين – صاحب المشروع – قد دعا بعض الذين تعاونوا معه في المشروع من الشبان وعرض عليهم برنامج الحزب فوافقوا عليه .. اما فتحي رضوان فانه رفض التوقيع على هذا البرنامج لانه كان يرى – مع موافقته على مبادئ الحزب ، وهي خلاصة تجارب طويلة في الحقل المدرسي – أن مشروع القرش مشروع قومي يستحق ان يستنفد جهود اعضائه بضعة أعوام .. وأنه ليس مشروعا اقتصاديا بحتا .. انما كان ذا أسس أدبية وروحية يتيح للقائمين عليه تنظيم الشباب والخطابة فيهم وتوجيههم .. وبمعنى أصح كان مشروعا بنائيا من الناحية السياسية.وانه يكفي تقديم مشروعين قوميين ناجحين للرأي العام كمشروع القرش ومؤتمر الشباب العربي ليكونا دعاية حسنة للشباب الواعي الجديد .. وذلك بدلا من صبغ مثل هذه المشروعات بالصبغة الحزبية.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وقد حدث ما توقعه فتحي رضوان .. اذ قام ألوف بحملة شعواء ضد مضروع القرش بدعوى أن القائمين به ذوي اللون الحزبي .. فاستقال احمد حسين ثم استقال من بعده فتحي رضوان. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;نشاط جديد&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وكان أحمد حسين وفتحي رضوان قد فكرا من قبل في اخراج جريدة .. وكان من رأي فتحي رضوان ان تكون هذه الجريدة أدبية .. أما أحمد حسين فقد رأى أن تكون هذه الجريدة سياسية .. وأخيرا رأى الاثنان ان يوحدا جهودهما في جريدة واحدة وهي "الصرخة" اقرارا لمبدأ التعاون.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ثم ظهر بعد ذلك خلاف جديد في الرأي .. كان أحمد حسين يرى أن سياسة الجريدة يجب أن تتجه نحو مهاجمة الامتيازات الاجنبية التي كانت السبب الاول في بالء الاستعمار .. وكان فتحي رضوان يرى أن الاحتلال هو أصل البلاء .. وأخيرا اتفقا على أن يكتب كل منهما عن وجهة نظره.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وصدرت الجريدة الجديدة وكان اسمها الصرخة .. وفي 13 نوفمبر 1933 وبعد صدور ثلاثة أعداد .. صدرت الصرخة في عدد خاص كان يتضمن حملة شعواء على الاحتلال وعلى الانجليز وأعوان الانجليز وكان أكثر هذه المقالات بقلم أحمد حسين نفسه. ولم ترق هذه الحملات لرجال الحكومة في ذلك الحين .. فأصدر النائب العام أمرا بالقبض على أحمد حسين وحافظ محمود رئيس التحرير المسئول وفتحي رضوان وأودعوا في قسم الموسكي.ومن الطريف أن فتحي رضوان عندما سئل عن كاتب هذه المقالات أصر على أنه هو كاتبها .. و عندما سئل أحمد حسين أصر على أنه هم نفسه كاتبها.. فاضطرت النيابة أمام اصرار الاثنين إلى القبض على ثلاثتهم مدة 18 يوما .. وبعد معارضتين افرج عنهم. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;عواصف&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ومنذ عام 1937 وحياة فتحي رضوان سلسلة من العواصف.وكان أول عهده بالاعتقال في جريمة اغتيال .. في نوفمبر 1937 .. عندما قبض على أحد أعضاء مصر الفتاة في شارع عباس بمصر الجديدة بتعمة الشروع في اغتيال النحاس .. فقبضت الحكومة على جميع المنتمين إلى حزب مصر الفتاة.وأمضى فتحي رضوان في سجن الاستئناف شهرين ثم ما لبث أن افرج عنه.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ومما يذكر أن رئيس المحكمة وقتئذ فكر في أن يجدد في الاساليب القضائية ، فكان يرى أن ملف القضية ليس سرا على المحامين والمتهم وحدهم كما جرى التقليد فيما بعد ، بل كان يراه ايضا سرا على قضاة المعارضة .. فكان القضاة يجتمعون في حجرة رئيس المحكمة ويسمعون مرافعات جماعية عن جميع المتهمين ثم يصدر الرئيس بعد ذلك قرارا برفض المعارضة أو بالحبس بالنسبة لجميع المتهمين دفعة واحدة. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;الحزب الوطني&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وكان عام 1939 هو مفترق الطرق في حياة فتحي رضوان السياسية .. فقد انفصل عن حزب مصر الفتاة انفصالا فعليا .. و أن اتخذ هذا الانفصال شكله الرسمي في عام 1942 .. وكان سبب الاستقالة هو احتجاج فتحي رضوان على أحد تصرفات أحمد حسين.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وتفصيل القصة هو أنه حدث أثناء اعتقال أحمد حسين في عام 1942 ان سمع جزءا من قصة 4 فبراير فهم منها أن النحاس انقذ البلاد من كارثة محققة وانقذ العرش من الاعتداء عليه .. فأرسل خطابين سريين احدهما إلى مصطفى النحاس والآخر إلى مكرم عبيد سكرتير الوفد يثني فيهما على النحاس ويؤيده في موقفه.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وعلى الرغم من سرية الخطابين فقد نشرهما الوفد في جريدة المصري .. ولذلك رأى فتحي رضوان أن يقدم استقالته لأن تصرف أحمد حسين لم يكن يتفق مع حقيقة الموقف في 4 فبراير .. كما انه كان يتنافى مع التقليد الصحيح للأحزاب.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وانحصر بعد ذلك نشاط فتحي رضوان في المحاماة والقضايا السياسية فترافع في قضية المنشورات لمحمود العيسوي وفي قضية مدحت عاصم وهي قضية منشورات ايضا وقضية الشيخ توفيق الملط وهي قضية احراز مواد مدمرة.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وفي عام 1944 انضم إلى الحزب الوطني .. فقد كان من رأي سليمان حافظ ومصطفى مرعي أن يدعما الحزب بعناصر جديدة .. وقد مهدا لهذه الفكرة عند حافظ رمضان الذي ما لبث ان قبل الفكرة وانضم إلى الحزب : فتحي رضوان ونور الدين طراف وحسين ابو زيد وزهير جرانه ومصطفى المنزلاوي وغيرهم ممن كونوا فيما بعد اللجنة العليا للحزب الوطني عندما وجدوا ان مجال التعاون بينهم وبين الجيل القديم ضيق عسير. &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;فكرة اعلان الحرب&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ومما يذكر ان هؤلاء السبان لعبوا دورا خطيرا في حياة الحزب الوطني .. فلقد بدأوا بمجرد انضمامهم يغذون فكرة استقالة حافظ رمضان من وزارة أحمد ماهر حتى نجحوا في ذلك بسبب تضارب سياسة هذه الوزارة مع سياسة الحزب الوطني.فقد حدث عندما عرضت فكرة إعلان الحرب على المحور .. ان اجتمع الحزب وقرر معارضة هذه الفكرة .. وكتب حافظ رمضان استقالته احتجاجا على دخول مصر الحرب .. وسلمها إلى فتحي رضوان .. فقدمها بدوره إلى أحمد ماهر ثم ما لبث ان طبعها في منشورات سرية ووزعها على لجان الحزب الوطني في جميع انحاء مصر!! &lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;الأقدار&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وقد لعبت الاقدار دورا عجيبا في حياة فتحي رضوان .. وفي اعتقاله كان كل ما حدث يقع في مصر يعتبر فتحي رضوان مسئولا عنه .. عزيز المصري يهرب بطائرة مع اثنين من الطيارين هما : حسين ذو الفقار وعبدالمنعم عبدالرؤوف فيقبض عليه .. وما كاد يفرج عنه بعد يوم واحد حتى يقبض على عزيز المصري في منزل المثال المعروف عبدالقادر رزق .. وتشاء المصادفات ان يجد البوليس في جيب عبدالقادر خطابا من عزيز المصري باسم فتحي رضوان فيعتقل مرة اخرى .. وما كاد يفرج عنه بعد يومين حتى يأمر الحاكم العسكري باعتقاله للمرة الثالثة ستة أشهر أمضى بعضها في سجن الاجانب والبعض الآخر في معتقل الزيتون.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ويغتال أحمد ماهر في البرلمان .. وتشاء المصادفات أن يكون فتحي رضوان داخل البرلمان .. وتشاء المصادفات ايضا أن يدعوه اسماعيل صدقي مع النائب السعدي عبدالمنعم ابو زيد للانصراف معا والركوب في سيارته فيخرج .. وذلك قبل صدور الاوامر بإغلاق الابواب ومنع جميع الموجودين من مغادرة دار البرلمان بما فيهم كبار الموظفين ورجال البوليس سواء منهم من كان بثيابه العسكرية أو المدنية.ويعلم وزير الداخلية أن فتحي رضوان في داخل البرلمان .. فيأمر بالقبض عليه وعندما يبحثون عنه داخل البرلمان لا يجدونه فيثبت في يقينهم انه اشترك في الاغتيال وأن اعوانه في الجريمة قد استطاعوا ان يهربوه من البرلمان.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ويقبض على فتحي رضوان في منزله ويستدعيه النائب العام .. وفي داخل الغرفة يجد فتحي رضوان رئيس الوزراء وكبار رجال الأمن وبعض الوزراء .. و يوجه إليه النائب العام السؤال التالي: أين كنت في ذلك اليوم؟&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ويقول فتحي رضوان في بساطة : كنت في البرلمان&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وتعلوا الدهشة جميع الوجوه .. فقد كانوا يعتقدون أنه سينكر لأنه لا يمكن ان يقامر برأسه إلى هذا الحد &lt;/strong&gt;&lt;strong&gt;ويعتقل فتحي رضوان ثلاثة أشهر.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وتشاء المصادفات مرة أخرى ان يكون وزير العدل حافظ رمضان .&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ومرة ثالثة تلعب المصادفات دورا جديدا .. فقد حلت جمعية الاخوان المسلمين في ديسمبر 1948 ووقف الحزب الوطني يعارض في اجراء الحل ويعتبره اجراء غير دستوري .. ويحاول طبع هذا البيان فتصادره الرقابة .. وتشاء المصادفات ان يتخذ حسن البنا من مكتب فتحي رضوان مكانا مختارا يأتي إليه كل ليلية و ان يكون للاخوان المسلمين يد في اغتيال النقراشي .&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;الشربيني .. الشربيني&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;وتقبض الحكومة على الاخوان المسلمين وتضعهم في المعتقالت .. وتشاء المصادفات ان يهرب بعضهم عبر حدود مصر إلى ليبيا .. ويكون بينهم أحد الاخوان واسمه محمد الشربيني.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;و يلتقي رئيس الوزراء بمصطفى مرعي فيقول له : اننا مضطرون للقبض على فتحي رضوان .. فقد ضبطنا مكالمة تليفونية بينه وبين ذلك الهارب الذي يدعي الشربيني.&lt;/strong&gt;&lt;/p&gt;&lt;p align="right"&gt;&lt;strong&gt;ومرة أخرى تشاء المصادفات ان يكون لفتحي رضوان في مكتبه وكيل اسمه الشربيني.&lt;br /&gt;&lt;/p&gt;&lt;/strong&gt;&lt;p align="right"&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;وبعد&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;a href="http://3.bp.blogspot.com/_GUHozeIg7kI/StTWY90BU5I/AAAAAAAAACg/3spc-8Nh-Xs/s1600-h/FathyRadwan2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5392170378267284370" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 237px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_GUHozeIg7kI/StTWY90BU5I/AAAAAAAAACg/3spc-8Nh-Xs/s320/FathyRadwan2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="right"&gt;&lt;strong&gt;و بعد .. ان الشاب الثائر الذي كانوا في الماضي القريب يدفعون به إلى أعماق المعتقل ليبعدوا نار ثورته عن هشيم الرأي العام يتربع اليوم على مقعد وزارة الدعاية في وزارة الثورة . &lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-4051165663462772189?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/4051165663462772189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=4051165663462772189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/4051165663462772189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/4051165663462772189'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/10/blog-post.html' title='فتحي رضوان : مبادئ مصطفى كامل'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GUHozeIg7kI/StTWYHiUs1I/AAAAAAAAACQ/YCo2bKg5vCw/s72-c/FathyRadwan1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8873398463662355972</id><published>2009-09-30T09:43:00.000+02:00</published><updated>2009-09-30T09:44:24.302+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>WarmUp Script for MOSS</title><content type='html'>A very nice detailed blog talking about the &lt;a href="http://maclauweb.net/blog/Lists/Posts/Post.aspx?ID=4"&gt;WarmUp Script for MOSS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://maclauweb.net/blog/Lists/Posts/Post.aspx?ID=4"&gt;http://maclauweb.net/blog/Lists/Posts/Post.aspx?ID=4&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8873398463662355972?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8873398463662355972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8873398463662355972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8873398463662355972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8873398463662355972'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/09/warmup-script-for-moss.html' title='WarmUp Script for MOSS'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6014122575097865957</id><published>2009-09-22T02:30:00.004+02:00</published><updated>2009-09-22T03:21:13.991+02:00</updated><title type='text'>Customer satisfaction through requirements sign-off</title><content type='html'>In my previous post “Customer satisfaction VS Project sign-off” I focused on the customer satisfaction, but I’m not neglecting here the project sign-off, as signing-off a project on time with all the features that were in the RSD and with the required quality means customer satisfaction. But when the way became the target and all our effort is to achieve the points on the way without understanding what is the target of the project, for sure we will get the wrong results.&lt;br /&gt;&lt;br /&gt;Customer satisfaction is the responsibility of everyone involved in a project since its early days when it was just a lead, some projects failed or faced a lot of problems just because the sales person told the customer something that can’t be done, or told him something and write something else in the proposal, but it is there in the customer’s imagination and he is waiting for it at the end.&lt;br /&gt;&lt;br /&gt;Projects like this may be canceled just after this point while collecting the detailed requirements, the customer may hear too many times “out of scope and you have to pay for this and we will change the delivery date” that lets him think that he was talking to someone from another company and this is not a good company, and in this case it will be so difficult to achieve this customer satisfaction.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Please, if you are a sales person or helping the sales team, make sure that everything is clear to the customer and is written in your proposal, otherwise don’t blame the delivery team that they didn’t satisfy the customer because it was just you who lost him.&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;As a project manager this conflict must be solved immediately through good communication not just sending emails and receiving emails between you and the customer and the sales team, and don’t start this project before solving this problem, as you can’t start project and you can’t write the requirements, and for sure you can’t manage a project without knowing that is the requirements of this project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5384094428394651938" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 309px; CURSOR: hand; HEIGHT: 283px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_GUHozeIg7kI/SrglW0GfgSI/AAAAAAAAACA/aRKQyN2kp18/s320/clear.gif" border="0" /&gt;&lt;br /&gt;As a conclusion, the first step to satisfy the customer and to sign-off the project is to have clear written requirements, and to sign it off after reviewing it perfectly by your team and make sure that the customer understands what is written and has reviewed it and say it to him face to face: "You must read the document!!!" in our region you will hear it many times from customers: "I didn’t read it before, it is too much and it is in English" No problem if he said it in the beginning, but it is a disaster if he said it after a while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6014122575097865957?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6014122575097865957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6014122575097865957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6014122575097865957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6014122575097865957'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/09/customer-satisfaction-through.html' title='Customer satisfaction through requirements sign-off'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GUHozeIg7kI/SrglW0GfgSI/AAAAAAAAACA/aRKQyN2kp18/s72-c/clear.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-5437858914315282658</id><published>2009-09-14T16:06:00.002+02:00</published><updated>2009-09-14T16:29:52.314+02:00</updated><title type='text'>Customer satisfaction VS Project sign-off</title><content type='html'>“Satisfaction”, is a very big word epically when it relate to customers. Satisfying a customer sometimes can’t be achieved, but we have to plan and work on making it.&lt;br /&gt;&lt;br /&gt;In many companies, developers and all the related jobs like the graphics designers and even the project managers in some cases are all focusing on the delivery and the sign-off within the time frame in the first place then the budget then the quality. And no one is caring about the sales person and how his task may be impossible when he wants to make another deal with the same customer on another project or add new requirements to the same product.&lt;br /&gt;&lt;br /&gt;Making new deals with the same customer mean “customer satisfaction” mainly not the feedback you are receiving from the customer  as customers may not say it to you when they are not satisfied, but they will say it everywhere else the way that will affect your future business.&lt;br /&gt;&lt;br /&gt;From my experience with customers especially in KSA, they are going with the one who are working on the satisfaction of the product’s end user not just the customer himself. Going to an extra point with most customers in our region is the main key even if he is very professional and understands that delivering the written agreed requirements must be the only thing that governs our tasks.&lt;br /&gt;&lt;br /&gt;But also in all cases don’t go too much away from the project plan, and remember that you are hired to deliver the project, and sometimes you may need to say it to your customer that you can’t give him any extra point and you have to balance.&lt;br /&gt;&lt;br /&gt;Customer satisfaction is not just a good or neutral feedback with the closure of the project; it is the things that force your customer not to go with your competitors in the next project (hopefully not the same project).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-5437858914315282658?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/5437858914315282658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=5437858914315282658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5437858914315282658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5437858914315282658'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/09/customer-satisfaction-vs-project-sign.html' title='Customer satisfaction VS Project sign-off'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-98003048797045923</id><published>2009-09-13T06:16:00.005+02:00</published><updated>2009-09-13T06:31:13.657+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Supported web browsers</title><content type='html'>Developing a web page was and still a fun task, but one of the main problems that may face a web developer or as we said these days “Web UI Developer” is the variety of the browsers in the first place, as web developer must learn how to display his page on seven different browsers and each browser has something to force the web developer to work around.&lt;br /&gt;&lt;br /&gt;I was reviewing and analyzing the browsers statistics on &lt;a href="http://www.w3schools.com/browsers/browsers_stats.asp"&gt;W3Schools&lt;/a&gt; (&lt;a href="http://www.w3schools.com/browsers/browsers_stats.asp"&gt;http://www.w3schools.com/browsers/browsers_stats.asp&lt;/a&gt;) where you will find that the main browsers that we MUST support are Internet Explorer (39%) and Firefox (45%) and if you want to support an extra browser so you have to support Chrome (7%)&lt;br /&gt;&lt;br /&gt;Microsoft has announced that they will support IE6 until 2014, what that mean to web developers? In my opinion this is not affecting them by any mean, as the main factor that forcing them to make their web pages IE6 friendly is the percentage of visitors (13%) and not anything else! Also IE8 (10%) must be supported beside IE7 (15%). As you can see the differences between each other is very small and you cannot select one over the other.&lt;br /&gt;&lt;br /&gt;On the other hand, building a page that is supporting Firefox must include FF 3.0 (24%) and FF 3.5 (21%), and no need to support FF 2.0 (&lt; 2%) any more.&lt;br /&gt;&lt;br /&gt;Regarding the screen resolution, the statistics shows that most (93%) of the internet users are using 1024x786 or higher resolution.&lt;br /&gt;&lt;br /&gt;But please take care, all the above percentages may be changed dramatically if your page will be a part of an intranet site for example, as the numbers may be changed to 100% for IE6 on 800x600. So it is depending on collecting the right information from the customer before starting on developing your pages, as you will save too much time and serve your customer better.&lt;br /&gt;&lt;br /&gt;Finally, it is not a matter of colors and shapes that must be exactly the same on all the browsers, it is all about talking to your visitor the best way you can, as this is your main role as a web developer, and as you started your site by reading numbers representing the percentage of each browser usage, develop your page the way that will make the maximum number of visitors enjoys your site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-98003048797045923?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/98003048797045923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=98003048797045923' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/98003048797045923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/98003048797045923'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/09/web-supported-browsers.html' title='Supported web browsers'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8050562933947658234</id><published>2009-08-02T11:08:00.017+03:00</published><updated>2010-11-20T09:58:06.623+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><category scheme='http://www.blogger.com/atom/ns#' term='orgchart'/><category scheme='http://www.blogger.com/atom/ns#' term='Organization Chart'/><title type='text'>SilverLight Organization Chart</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_GUHozeIg7kI/SnVMOko7GOI/AAAAAAAAABg/CGwvwmLF6mM/s1600-h/OC1.jpg" target="_blank"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 214px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5365278344319015138" border="0" alt="" src="http://1.bp.blogspot.com/_GUHozeIg7kI/SnVMOko7GOI/AAAAAAAAABg/CGwvwmLF6mM/s320/OC1.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;There was an Organization Chart in the scope of one of the projects I’m managing, and it came to me the idea to make it in SilverLight the same way in &lt;a href="http://svdemo02.ilog.com/SilverlightOrgChart/OrgChart.html" target="_blank"&gt;http://svdemo02.ilog.com/SilverlightOrgChart/OrgChart.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;And here are the main points to make it out:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;1. Working with Canvas&lt;/div&gt;&lt;div&gt;2. &lt;a href="http://omourad.blogspot.com/2010/06/silverlight-organization-chart-part-4.html"&gt;Drawing Lines and Boxes&lt;/a&gt;&lt;br /&gt;3. Using ScrollViewer&lt;br /&gt;4. Using Slider (for the scale)&lt;br /&gt;5. Using SilverLight UserControls (&lt;a href="http://omourad.blogspot.com/2009/11/silverlight-organization-chart-part-3.html"&gt;the node element &lt;/a&gt;with the person information)&lt;br /&gt;6. &lt;a href="http://omourad.blogspot.com/2009/10/silverlight-organization-chart-part-1.html"&gt;Reading data from XML files&lt;/a&gt; and web services&lt;br /&gt;7. &lt;a href="http://omourad.blogspot.com/2009/11/silverlight-organization-chart-part-2.html"&gt;Some Calculations &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_GUHozeIg7kI/SnVLsgoxEQI/AAAAAAAAABY/6jWGAjnGl00/s1600-h/OC2.jpg" target="_blank"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 214px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5365278417340985778" border="0" alt="" src="http://4.bp.blogspot.com/_GUHozeIg7kI/SnVMS0qt8bI/AAAAAAAAABo/zg_ttaxMlCM/s320/OC2.jpg" /&gt;&lt;/a&gt;And isA I’ll describe these main ideas in details during the coming days. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Update: for the source code go to &lt;a href="http://silverorgchart.codeplex.com/"&gt;http://silverorgchart.codeplex.com/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8050562933947658234?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8050562933947658234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8050562933947658234' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8050562933947658234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8050562933947658234'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/08/silverlight-organization-chart.html' title='SilverLight Organization Chart'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GUHozeIg7kI/SnVMOko7GOI/AAAAAAAAABg/CGwvwmLF6mM/s72-c/OC1.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-9027195661018480370</id><published>2009-08-02T10:41:00.002+03:00</published><updated>2009-08-02T10:42:02.199+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SilverLight'/><title type='text'>Clip a TextBlock in SilverLight</title><content type='html'>One of the things that you may need to do in SilverLight is to limit the display area of a TextBlock, and you can do that using the Clip property, there are two ways to do that.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. From the XAML&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&amp;lt;TextBlock x:Name="tbExtension" Width="130" Height="30" Foreground="Black" Canvas.Left="5"&amp;gt;&lt;br /&gt;&amp;lt;TextBlock.Clip&amp;gt;&lt;br /&gt;&amp;lt;RectangleGeometry Rect="0, 0, 130, 30"/&amp;gt;&lt;br /&gt;&amp;lt;/TextBlock.Clip&amp;gt;&lt;br /&gt;&amp;lt;/TextBlock&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. From the code behind&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;tbExtension.Clip = new RectangleGeometry() {&lt;br /&gt;Rect = new Rect(0, 0, width, height)&lt;br /&gt;};&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-9027195661018480370?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/9027195661018480370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=9027195661018480370' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/9027195661018480370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/9027195661018480370'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/08/clip-textblock-in-silverlight.html' title='Clip a TextBlock in SilverLight'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-5898674988043818847</id><published>2009-07-20T19:13:00.007+03:00</published><updated>2009-07-20T19:23:59.733+03:00</updated><title type='text'>SSO and IFrame, more details please</title><content type='html'>I have faced some projects for example intranet portal for a company or organization, and one of the modules is to &lt;strong&gt;make SSO with an existing application&lt;/strong&gt; and that we will &lt;strong&gt;load&lt;/strong&gt; &lt;strong&gt;the application within an IFrame&lt;/strong&gt; in our page, something seems very simple, but is it that simple in the client imaginations or he will find something else at the end with the delivery, so we must make some point clear to the customer from the beginning like:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A. Points related to the SSO:&lt;/strong&gt;&lt;br /&gt;1. SSO itself&lt;br /&gt;2. Sign out&lt;br /&gt;3. Session expiration&lt;br /&gt;4. Browse directly to the application URL&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;B. Point related to the Frame:&lt;/strong&gt;&lt;br /&gt;1. Frame/Iframe&lt;br /&gt;2. Header&lt;br /&gt;3. Welcome Message&lt;br /&gt;4. Navigation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A.1. SSO itself:&lt;/strong&gt;&lt;br /&gt;A group of questions we must know here depend on the case , is it a product or the client have the source code, can we add some pages or DLLs to the application, can we use cookies, what will be the authentication type in both applications, can we encrypt/decrypt, can we use ISA to authenticate the users, can we use MOSS SSO, is there a common membership provider, and so on.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A.2. Sign out:&lt;/strong&gt;&lt;br /&gt;Is it required to sign the user out from the portal if he click on sign out in the other application, or is it required to sign him out from the application if he click on sign out from the portal? Where I’ll redirect the user in the portal if he logged out from the application?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A.3. Session expiration&lt;br /&gt;&lt;/strong&gt;How we will manage the session expiration in any of the two applications, the user may expend more time on the application and his session on the portal is expired and vies versa. Is it required to keep the session live while the user is browsing the other application?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A.4. Browse directly to the application URL&lt;/strong&gt;&lt;br /&gt;What if the user type the URL of the application while he is already signed in on the portal, is it required to authenticate him on the application also or not.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;B1. Frame/Iframe:&lt;/strong&gt;&lt;br /&gt;What about the look of the page, is it okay to have many scroll bars in the same page, is the size of the frame is sufficient to display the application screens? What about the color schema of the application, is it okay with the portal colors? So we can ask, what is the problem with a popup/new window?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;B2. Header:&lt;/strong&gt;&lt;br /&gt;If the application has his own header, so you will have two headers in the same page which mean more lost space, and may be two logos.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;B.4. Navigation:&lt;br /&gt;&lt;/strong&gt;The same here for the navigation, if the application has its own navigation, so we will have extra navigation and extra lost space, and for the usability it is not a good practice.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;B3. Welcome Message:&lt;/strong&gt;&lt;br /&gt;In case the two applications have separated membership providers or user profiles, you will see in the same page for example, Welcome omourad and Welcome Osama Mourad, is it okay? And the user may sign in with another user in the application, you will see in the same page for example Welcome omourad and Welcome Ahmed El Said.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-5898674988043818847?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/5898674988043818847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=5898674988043818847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5898674988043818847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/5898674988043818847'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/07/sso-and-iframe-more-details-please.html' title='SSO and IFrame, more details please'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8981437980954058162</id><published>2009-07-15T00:37:00.005+03:00</published><updated>2009-07-15T00:44:01.496+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Query'/><category scheme='http://www.blogger.com/atom/ns#' term='CAML'/><title type='text'>Paging SPList with ListItemCollectionPosition</title><content type='html'>Using ListItemCollectionPosition to make paging is somehow tricky, you have to take care if you are using order in your CAML query that you need to make paging on, as the parameters passed to ListItemCollectionPosition like “Paged=TRUE&amp;p_ID=8” is not just to say star from the itemID = 8, when it is used like this, the paging will page based on the default order.&lt;br /&gt;&lt;br /&gt;But if you want to order by example the created date in your CAML query, so you have to include that also in your ListItemCollectionPosition parameters, ex:&lt;br /&gt;&lt;br /&gt;Paged=TRUE&amp;p_Created=20091208%2006%3a24%3a35&amp;p_ID=8&lt;br /&gt;&lt;br /&gt;Where p_Created=20091208%2006%3a24%3a35 is the created date of the itemID = 8&lt;br /&gt;&lt;br /&gt;If it is not used like that you will see unrealistic output.&lt;br /&gt;A good idea to make paging is by making an array that its index will be the page index, and its value will be the ListItemCollectionPosition.PagingInfo like this:&lt;br /&gt;&lt;br /&gt;void SetupPager(SPList tmpList, string queryString)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myPagingData.Add("Paged=TRUE");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPQuery query = new SPQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;query.Query = queryString;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;query.RowLimit = 5;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;do &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPListItemCollection itemList = tmpList.GetItems(query);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;query.ListItemCollectionPosition = itemList.ListItemCollectionPosition; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (query.ListItemCollectionPosition != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myPagingData.Add(query.ListItemCollectionPosition.PagingInfo);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;                    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (query.ListItemCollectionPosition != null);&lt;br /&gt;            &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The above method can be called in the first time the page is opened, and you can add array to the viewstate and reload it with each postback and pass it to the query like this:&lt;br /&gt;SPListItemCollectionPosition objSPListColPos = new SPListItemCollectionPosition(myPagingData [e.CurrentPage]);&lt;br /&gt;query.ListItemCollectionPosition = objSPListColPos;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8981437980954058162?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8981437980954058162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8981437980954058162' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8981437980954058162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8981437980954058162'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/07/paging-with-listitemcollectionposition.html' title='Paging SPList with ListItemCollectionPosition'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-7037931556091895951</id><published>2009-07-08T17:34:00.002+03:00</published><updated>2009-07-08T17:36:18.173+03:00</updated><title type='text'>Forms Authentication with LDAP provider in Sharepoint - Part 2</title><content type='html'>We talked on how to configure a SharePoint site to use Forms Authentication on LDAP provider, but to complete the scenario we have to update the UI of the login page, this will work the same if any other forms authentication providers will be used.&lt;br /&gt;&lt;br /&gt;Once the authentication provider is changed from the central administration the web.config file will be also updated as:&lt;br /&gt;&lt;br /&gt;&amp;lt;authentication mode="Forms"&amp;gt;&lt;br /&gt; &amp;lt;forms loginUrl="~/layouts/ login.aspx" /&amp;gt;&lt;br /&gt;&amp;lt;/authentication&amp;gt;&lt;br /&gt;&lt;br /&gt;Where the login.aspx file is the default login page for SharePoint and you can go to C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS and update the login.aspx directly in this path, or make a copy from this page to any folder under your application ex. In a folder named login, you may also need to update the master page that this page is using, you can do this, by coping the new master page to the same folder, or copy simple.master from the same path and update it. &lt;br /&gt;&lt;br /&gt;To change the master page that the login.aspx page use you can type:&lt;br /&gt;&lt;br /&gt;&amp;lt;script runat="server"&amp;gt;&lt;br /&gt;    void page_PreInit(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        this.Page.MasterPageFile = "~/login/mymasterpage.master";      &lt;br /&gt;    }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;This will update the master page on the fly as you can't just update the masterpage path from the aspx page.&lt;br /&gt;&lt;br /&gt;Also, you may need to add StyleSheet file and some images to be displayed in this login page, and you can’t reference any file stored in the SharePoint libraries and you have to be authenticated first,  so you can add a web.config file in the same folder that just have:&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt; &lt;br /&gt;  &amp;lt;system.web&amp;gt;&lt;br /&gt;    &amp;lt;authorization&amp;gt;&lt;br /&gt;      &amp;lt;allow users="*" /&amp;gt;&lt;br /&gt;    &amp;lt;/authorization&amp;gt;&lt;br /&gt;    &amp;lt;/system.web&amp;gt;  &lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&lt;br /&gt;This will allow the anonymous user (till now) to be able to request the css, js and images.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-7037931556091895951?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/7037931556091895951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=7037931556091895951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7037931556091895951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7037931556091895951'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/07/forms-authentication-with-ldap-provider_08.html' title='Forms Authentication with LDAP provider in Sharepoint - Part 2'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-7276069768930962082</id><published>2009-07-07T17:42:00.004+03:00</published><updated>2009-07-08T12:09:58.390+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>Forms Authentication with LDAP provider in Sharepoint - Part 1</title><content type='html'>I was working on an extranet SharePoint project, on the requirement gathering it was agreed to have windows authentication, but after the deployment and during the UAT, the customer reported to us that he didn’t like the popup login window, and he want it to be forms authentication to have a better look, one solution is to publish the site using the ISA server that will request the username and password from the user via a form and path it to the SharePoint. &lt;a href="http://www.isaserver.org/tutorials/How-to-Publish-Microsoft-Sharepoint-Service-ISA-Server-2006.html"&gt;Here is a good article on how to be done&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Another solution is to use forms authentication with LDAP provider, and here are the steps to do it:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Configure the Central Administration and the application:&lt;/strong&gt;&lt;br /&gt;1. Extend the application&lt;br /&gt;2. Update the authentication type of the extended application to forms authentication, add the membership provider name, ex: LdapMembership&lt;br /&gt;3. In the extended site folder update the web.config file, add:&lt;br /&gt;&lt;br /&gt;&amp;lt;membership defaultProvider="LdapMembership"&amp;gt;&lt;br /&gt;&amp;lt;providers&amp;gt;&lt;br /&gt;&amp;lt;add name="LdapMembership" &lt;br /&gt;server="devtfs08-ksa" &lt;br /&gt;port="389" &lt;br /&gt;useSSL="false" &lt;br /&gt;userDNAttribute="distinguishedName" &lt;br /&gt;userNameAttribute="sAMAccountName" &lt;br /&gt;userContainer="CN=Users,DC=Devksa,DC=com" &lt;br /&gt;userObjectClass="person" &lt;br /&gt;userFilter="(ObjectClass=*)" &lt;br /&gt;scope="Subtree" &lt;br /&gt;otherRequiredUserAttributes="sn,givenname,cn" type="Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C" /&amp;gt;&lt;br /&gt;&amp;lt;/providers&amp;gt;&lt;br /&gt;&amp;lt;/membership&amp;gt;&lt;br /&gt;&lt;br /&gt;4. In the above code, “devtfs08-ksa” is my server name, my domain name is “devksa.com” The port number 389 is the default number, and userFilter=”(ObjectClass=*)” will get all the users and groups.&lt;br /&gt;5. Update the web.config file of the central administration site to be able to set the site administrator, you can make the first user as the admin on the default zone, and the second user is the admin on the extended zone.&lt;br /&gt;6. Browse to the extended site and test the login.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Configure the User Profiles import:&lt;/strong&gt;&lt;br /&gt;1. Go to the User Profiles and Properties in the SSP&lt;br /&gt;2. Click on View Import Connections, delete the current Active Directory connection, and create a new one.&lt;br /&gt;3. Select the type “LDAP Directory” and use the same values in the above membership provider as a values to the form.&lt;br /&gt;4. Click on the button “Auto Fill …”&lt;br /&gt;5. In the search base update it to use UserContainer  value from the values above.&lt;br /&gt;6. Update the user filters to use the same values as above.&lt;br /&gt;7. Add a username and password to an account that can list the directory.&lt;br /&gt;8. Start full import.&lt;br /&gt;&lt;br /&gt;The same can be done for MySite, but the user will be asked for his username and password when he browse from the intranet portal to his Site in case they are both on different application polls which is recommended.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-7276069768930962082?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/7276069768930962082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=7276069768930962082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7276069768930962082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7276069768930962082'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/07/forms-authentication-with-ldap-provider.html' title='Forms Authentication with LDAP provider in Sharepoint - Part 1'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6405290090125951118</id><published>2009-06-29T11:37:00.002+03:00</published><updated>2009-06-29T11:40:28.692+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>UmAlQura Calendar in SharePoint</title><content type='html'>I was working on a calendar webpart that is used to display events stored in a MOSS list, each item in the list will have a start date and end date, when this webpart is added in an English site it shows Gregorian calendar and on an Arabic site is shows the Hijri calendar based on the regional settings for each site,  but the problem was that the Hijri calendar is not accurate and the admin must go the regional settings page to add or subtract day or two to show the right dates.&lt;br /&gt;&lt;br /&gt;On the other side there is the &lt;a href="http://labs.developerfusion.co.uk/SourceViewer/browse.aspx?assembly=SSCLI&amp;namespace=System.Globalization&amp;type=UmAlQuraCalendar"&gt;UmAlQura calendar &lt;/a&gt;which is based on an array that relate the start of each Hijri month to a Gregorian calendar day, It can be used for dates in range between 1318/01/01 and 1450/12/29 which is good to be used for articles dates and events and birthdates and so on.&lt;br /&gt;&lt;br /&gt;So I changed the calendar format for my culture to be UmAlQura and it works perfect, but the problem is that the events are added in the list that is using Hijri calendar as a default for the Arabic site, and there is no UmAlQura calendar option in the regional settings to select, so I searched for how to make and add a custom calendar to SharePoint and found &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/sharepointgeneral/thread/48fbb674-b25a-494a-9191-32cbf03a4ea3"&gt;this link &lt;/a&gt;but still can’t find the answer&lt;br /&gt; &lt;br /&gt;The other thing I found and it was very weird when I write e.Day.Date in the calendar cell (in the Arabic site) it gives me a full Hijri date (27/09/1430) but when adding e.Day.Date.Day it gives me the equivalent day number from the Gregorian calendar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6405290090125951118?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6405290090125951118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6405290090125951118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6405290090125951118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6405290090125951118'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/06/umalqura-calendar-in-sharepoint.html' title='UmAlQura Calendar in SharePoint'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-2468592227590653840</id><published>2009-06-17T09:42:00.002+03:00</published><updated>2009-06-17T09:50:52.910+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='CQWP'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><category scheme='http://www.blogger.com/atom/ns#' term='XSLT'/><title type='text'>Alternate Styling</title><content type='html'>Want to make alternate styling in a DataViewWebPart or ContentQueryWebPart? Here is the way:&lt;br /&gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:red"&gt;&amp;lt;xsl:if test="position() mod 2 = 0"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xsl:attribute name="class"&amp;gt;AlternatingClass&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xsl:if&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td ...&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt;Where AlternatingClass: is the alternating class name that will be the value of the class attribute of the TR tag.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-2468592227590653840?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/2468592227590653840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=2468592227590653840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2468592227590653840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2468592227590653840'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/06/alternate-styling.html' title='Alternate Styling'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-3096028731530886596</id><published>2009-06-13T20:13:00.006+03:00</published><updated>2009-07-29T16:56:29.426+03:00</updated><title type='text'>Separate XSL files for Content Query Webpart (CQWP) - Part 2</title><content type='html'>We have talked before on how to &lt;a href="http://omourad.blogspot.com/2009/04/separate-xsl-files-for-content-query.html"&gt;Separate XSL files for Content Query Webpart (CQWP)&lt;/a&gt;, but we didn’t go in details for how to make your own Main.xsl file that can be used as the ContentQueryMain.xsl, the steps in the previous post will be used, we will create a new XSL file and name it for example “usefulLinksMain.xsl” and add its path to the “MainXslLink” property in the webpart file.&lt;br /&gt;&lt;br /&gt;The next step is to have a look on the minimal main xsl file:&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:stylesheet&lt;br /&gt;version="1.0"&lt;br /&gt;exclude-result-prefixes="x xsl cmswrt cbq"&lt;br /&gt;xmlns:x="http://www.w3.org/2001/XMLSchema"&lt;br /&gt;xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&lt;br /&gt;xmlns:cmswrt="http://schemas.microsoft.com/WebPart/v3/Publishing/runtime"&lt;br /&gt;xmlns:cbq="urn:schemas-microsoft-com:ContentByQueryWebPart"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="COLOR: red"&gt;&amp;lt;xsl:include href="/Style Library/XSL Style Sheets/ContentQueryMain.xsl"/&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;&amp;lt;xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:variable name="RowCount" select="count($Rows)" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:variable name="IsEmpty" select="$RowCount = 0" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;&amp;lt;xsl:when test="$IsEmpty"&amp;gt;&lt;br /&gt;&amp;lt;xsl:call-template name="OuterTemplate.Empty" &amp;gt;&lt;br /&gt;&amp;lt;xsl:with-param name="EditMode" select="$cbq_iseditmode" /&amp;gt;&lt;br /&gt;&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="COLOR: red"&gt;&amp;lt;xsl:when test="dsQueryResponse/Rows/Row/@Style='UsefulLinks'"&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&amp;lt;xsl:for-each select="$Rows"&amp;gt;&lt;br /&gt;&amp;lt;xsl:variable name="CurPosition" select="position()" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:call-template name="MyMain.CallItemTemplate"&amp;gt;&lt;br /&gt;&amp;lt;xsl:with-param name="CurPosition" select="$CurPosition" /&amp;gt;&lt;br /&gt;&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template name="MyMain.CallItemTemplate"&amp;gt;&lt;br /&gt;&amp;lt;xsl:param name="CurPosition" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:apply-templates select="." mode="itemstyle"&amp;gt;&lt;br /&gt;&amp;lt;xsl:with-param name="CurPos" select="$CurPosition" /&amp;gt;&lt;br /&gt;&amp;lt;/xsl:apply-templates&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can also update the three values to point to the same xsl file like that:&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:stylesheet version="1.0"&lt;br /&gt;exclude-result-prefixes="x d xsl msxsl cmswrt"&lt;br /&gt;xmlns:x="http://www.w3.org/2001/XMLSchema"&lt;br /&gt;xmlns:d="http://schemas.microsoft.com/sharepoint/dsp"&lt;br /&gt;xmlns:cmswrt="http://schemas.microsoft.com/WebParts/v3/Publishing/runtime"&lt;br /&gt;xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"&lt;br /&gt;xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;&amp;lt;xsl:call-template name="&lt;span style="color:#ff0000;"&gt;MyTemplateName&lt;/span&gt;" /&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:template name="&lt;span style="color:#ff0000;"&gt;MyTemplateName&lt;/span&gt;"&amp;gt;&lt;br /&gt;&amp;lt;xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&amp;lt;xsl:for-each select="dsQueryResponse/Rows/Row"&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;td&amp;gt;&amp;lt;a href="{@LinkUrl}" &amp;gt;&amp;lt;xsl:value-of select="@Title"/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;&lt;br /&gt;The two solutions are the same idea, but in the first one you can select the ItemStyle you want from the content query web part tool part.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-3096028731530886596?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/3096028731530886596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=3096028731530886596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3096028731530886596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3096028731530886596'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/06/separate-xsl-files-for-content-query.html' title='Separate XSL files for Content Query Webpart (CQWP) - Part 2'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-177197467436054897</id><published>2009-06-07T11:59:00.004+03:00</published><updated>2009-06-07T12:10:18.569+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>MCTS: Microsoft Office SharePoint Server 2007 – Configuration</title><content type='html'>I have attended a five days course “&lt;strong&gt;50047A: Advanced IT Pro Course for Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0&lt;/strong&gt;” at Microsoft Innovation Center – Al-Yamama University , The instructor was &lt;a href="http://geeksconnected.com/muhanad/" title="Office SharePoint Server MVP"&gt;Muhannad Omar&lt;/a&gt;. At the end of the course Muhannad gave me a book “&lt;a href="http://www.amazon.com/Microsoft-Office-SharePoint-Server-Practices/dp/0735625387"&gt;Microsoft Office 2007 – Best practice&lt;/a&gt;” and it was very nice from him.&lt;br /&gt;&lt;br /&gt;And today, &lt;span title="الحمد لله"&gt;Al-Hamd Lellah&lt;/span&gt;, I passed the exam “&lt;strong&gt;70:630 - Configuring Microsoft Office SharePoint Server 2007&lt;/strong&gt;” and now I’m &lt;strong&gt;Microsoft Certified Technology Specialist&lt;/strong&gt;: Microsoft Office SharePoint Server 2007 – Configuration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-177197467436054897?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/177197467436054897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=177197467436054897' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/177197467436054897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/177197467436054897'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/06/mcts.html' title='MCTS: Microsoft Office SharePoint Server 2007 – Configuration'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-2498429418800535986</id><published>2009-06-07T08:21:00.004+03:00</published><updated>2009-06-07T08:27:33.721+03:00</updated><title type='text'>أمي ... أبي</title><content type='html'>&lt;div align="right" DIR="RTL"&gt;&lt;strong&gt;كتبت هذه الاسطر في الصف الأول الثانوي لأهديها لأمي وأبي:&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;أمــــي أبــــي ، قــط وليــث عــنـدنـا و حـبـذا الأبـويـن في الحيـوان&lt;br /&gt;فـالـقـط معـروف بتربية الصغار والـلـه قـد خلقه لكون حـــــــــــنان&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;الناسُ قـد شهدوا النظافة للقطط، أحـرص عليها فإنها لإيــــــــــمـان&lt;br /&gt;والأًســدُ تـرعى م الـمـخـاوف شبلهـا والـلـه قـد خلقه لكون أمــــان&lt;br /&gt;إن كنت تعرف في الأسود شجاعة، فالشبل يعرف في الأسود حنان&lt;/strong&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-2498429418800535986?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/2498429418800535986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=2498429418800535986' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2498429418800535986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2498429418800535986'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/06/blog-post.html' title='أمي ... أبي'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-7558807142092045804</id><published>2009-05-26T23:45:00.001+03:00</published><updated>2009-05-26T23:47:56.813+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>From My Site to the Portal</title><content type='html'>Many people are asking “Why there is no link to go back from My Site to the portal?” and the answer is very simple, My Site may be shared between more than a portal, in this case which link you will display?&lt;br /&gt;&lt;br /&gt;But still you can make a link to a preferred portal, go to Site Actions &gt; Site Settings &gt; Site Collection Administration &gt; Portal Site Connection &gt; then type the URL and the title for the portal you want the users go back to from My Site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-7558807142092045804?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/7558807142092045804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=7558807142092045804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7558807142092045804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7558807142092045804'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/05/from-my-site-to-portal.html' title='From My Site to the Portal'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-3734169339216982922</id><published>2009-05-26T06:41:00.002+03:00</published><updated>2009-05-26T06:49:34.270+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>Absolute Paths in SharePoint</title><content type='html'>What if you want to add an image to your MasterPage that will be changed in each sub site, a logo for example, you can add an image tag like this:&lt;br /&gt;&lt;br /&gt;&amp;lt;img src="../SiteImages/MyLogo.gif" alt="SubSiteLogo " /&amp;gt;&lt;br /&gt;&lt;br /&gt;This is fine when you are browsing a page in the Pages list (http://www.mysite.com/subsite/pages/mypage.aspx), but what if you are browsing an overview.aspx page for example for a Survey list (http://www.mysite.com/subsite/lists/surveyname/overview.aspx), you will need to change the tag to:&lt;br /&gt;&lt;br /&gt;&amp;lt;img src="../../SiteImages/MyLogo.gif" alt="SubSiteLogo " /&amp;gt;&lt;br /&gt;&lt;br /&gt;So how to add the image tag to make it work for both pages?&lt;br /&gt;The solution is to change your tag to this:&lt;br /&gt;&lt;br /&gt;&amp;lt;img &lt;strong&gt;src="&amp;lt;% $SPUrl:~Site/SiteImages/MyLogo.gif %&amp;gt;"&lt;/strong&gt; alt="SubSiteLogo" &lt;strong&gt;runat="server"&lt;/strong&gt;/&amp;gt;&lt;br /&gt;&lt;br /&gt;Where &lt;strong&gt;~Site&lt;/strong&gt; is your absolute current site URL&lt;br /&gt;&lt;br /&gt;Okay, now what if this image is not changed per sub site, but it is changed per SiteCollection and the url is something like this: (http://www.mysite.com/anothersitecollection/subsite/pages/mypage.aspx), in my default SiteCollection I can make the tag like this:&lt;br /&gt;&lt;br /&gt;&amp;lt;img src="/SiteImages/MyLogo.gif" alt="SubSiteLogo " /&amp;gt;&lt;br /&gt;&lt;br /&gt;But in another site collection this will not work with me, so I can make it like this:&lt;br /&gt;&lt;br /&gt;&amp;lt;img src="&amp;lt;% $SPUrl:&lt;strong&gt;~ SiteCollection&lt;/strong&gt;/SiteImages/MyLogo.gif %&amp;gt;" alt="SubSiteLogo" runat="server"/&amp;gt;&lt;br /&gt;&lt;br /&gt;The same thing here with the stylesheet, you can do the same:&lt;br /&gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css" &lt;strong&gt;href="&amp;lt;% $SPUrl:~Site/StyleSheets/MyStyle.css %&amp;gt;"&lt;/strong&gt; &lt;strong&gt;runat="server"&lt;/strong&gt;/&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-3734169339216982922?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/3734169339216982922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=3734169339216982922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3734169339216982922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3734169339216982922'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/05/what-if-you-want-to-add-image-to-your.html' title='Absolute Paths in SharePoint'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6053963172541202759</id><published>2009-05-13T09:36:00.018+03:00</published><updated>2009-05-17T12:33:24.384+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>Things to ask the client about before working on My Site</title><content type='html'>In a MOSS project the RSD may say: “out of the box My Site”, but you have to make sure that the system analyst has asked the client the below questions:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Do you really need My Site, or can the requirements be developed?&lt;/strong&gt;&lt;br /&gt;Sometimes the user just wants to display the user information, but he heared that there is something called MY SITE and he wants it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. What is the expected number of users that will create My Site?&lt;br /&gt;&lt;/strong&gt;The expected number of MY SITEs is very important, as it is a factor of space and performance, as each My Site is a site collection and the default quota is 100 MB for each site. I was working on a project for a big organization that has 15000 users, but for obviously not all of those users will create My Site.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Will all the users be able to create "My Site"?&lt;br /&gt;&lt;/strong&gt;Some organizations like the 15k users case, for obviously not all of them will be able to create My Site as some of them are contractors that are doing a task and will leave after two or three months and may be more, but they will not be allowed to create My Site.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. Do we need the 100MB for each site?&lt;br /&gt;&lt;/strong&gt;100MB is a very large space, and may be very small for others, but the expected or the planed size is very important to make your hardware architecture regarding the performance and the storage space and the storage place (this is another question but you will need to answer it yourself, as you may need to create a group of My Sites that belong to a group of users in a place and another group in another place).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. Do you have only one AD domain or more?&lt;br /&gt;&lt;/strong&gt;More domains means that a username may be duplicated, so you must configure the settings to take the domain name in site URL, not just the username.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6. What is the authentication type of the OWA, In Case you will use Outlook webparts?&lt;br /&gt;&lt;/strong&gt;You will need to know this, as the forms authentication will display the login window inside each webpart iframe with a scroll if the webpart size is smaller, you may decide to pass the credentials using JavaScript and submit the form (you have to configure the trusted sites in the browser and make the OWA and the intranet site on the same domain but using a different sub-domains) , &lt;strong&gt;also what is the used version of the Exchange Server&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7. Is the email address the same as the username?&lt;br /&gt;&lt;/strong&gt;Some organizations are using username like &lt;em&gt;domain\usr24hr&lt;/em&gt; and the email for this user is &lt;em&gt;ramy.fawzy@domain.com&lt;/em&gt; for security reasons. In this case take care while working on customizing Outlook webparts automatically to set the exchange server address and the email inbox name.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8. Will you allow the user to select his "My Site" language or not?&lt;br /&gt;&lt;/strong&gt;In multiple language websites it may be a needed to allow the user to select his My Site interface language. The client may imagine that it can be English/Arabic the same as his portal for example.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;9. Do you need to customize in the layout or not?&lt;br /&gt;&lt;/strong&gt;Some customers ask for My Site, but they don ‘t know that it will not inherit the portal MasterPage, and they will be shocked after the site deployment, so make it clear from the beginning for him and for yourself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6053963172541202759?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6053963172541202759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6053963172541202759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6053963172541202759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6053963172541202759'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/05/things-to-ask-client-about-before.html' title='Things to ask the client about before working on My Site'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-2622426917693700271</id><published>2009-05-06T16:24:00.003+03:00</published><updated>2009-05-06T16:29:46.732+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Designer'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><category scheme='http://www.blogger.com/atom/ns#' term='XSLT'/><title type='text'>Listing Folders, SubFolders and Items in one page</title><content type='html'>It was requested from me to make a page in MOSS that will display Departments in an organization, and there is a set of sub departments and in each sub department there may be another group of sub departments and then a list of file library that may also be divided into groups.&lt;br /&gt;&lt;br /&gt;I want to save all these files in only one document library but divide them into folders and subfolders as required, and make the minimum number of pages and code to display these folders and items and without any .net coding.So my solution is to make a page in SharePoint designer and add a DataSource and a DataView then make the following steps:&lt;br /&gt;&lt;br /&gt;1. In the &lt;strong&gt;SPDataSource&lt;/strong&gt; add &lt;strong&gt;Scope="RecursiveAll"&lt;/strong&gt; this will make the datasource get all the items (folders and documents) not just the folders in the first level.&lt;br /&gt;&lt;br /&gt;2. Add parameter to the DataView, ex. Name: &lt;strong&gt;FolderPath&lt;/strong&gt;, Source: &lt;strong&gt;QueryString&lt;/strong&gt;, QueryStringVariable: &lt;strong&gt;FolderPath&lt;/strong&gt;, DefaultValue: &lt;strong&gt;En/DownloadCenter/Documents&lt;/strong&gt; (which is the path to your document library)&lt;br /&gt;&lt;br /&gt;3. Make a filter in the DataView to have &lt;strong&gt;Path&lt;/strong&gt;, &lt;strong&gt;Equals&lt;/strong&gt;, &lt;strong&gt;[FolderPath]&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;4. Make a variable to be used as the page link or the document link as:&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:variable name="url"&amp;gt;&lt;br /&gt;&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;&amp;lt;xsl:when test="@ContentType = 'Folder'"&amp;gt;documents.aspx?FolderPath=&amp;lt;xsl:value-of select="substring(@FileRef, 2)"&amp;gt;&lt;br /&gt;&amp;lt;/xsl:value-of&amp;gt;&lt;br /&gt;&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;&amp;lt;xsl:value-of select="@FileRef"/&amp;gt;&lt;br /&gt;&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;&lt;br /&gt;5. The above code will check if the item is a folder so we will need the link to redirect to the same page (documents.aspx in our case), and if the item is a document so we need to redirect to the document URL.&lt;br /&gt;&lt;br /&gt;6. &lt;strong&gt;substring(@FileRef, 2)&lt;/strong&gt; is used to remove the first &lt;strong&gt;/&lt;/strong&gt; character in the URL Path (not the Path), to know what is the difference between both, Path: &lt;strong&gt;En/DownloadCenter/Documents&lt;/strong&gt;, URL Path: &lt;strong&gt;/En/DownloadCenter/Documents/Subfolder1&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-2622426917693700271?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/2622426917693700271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=2622426917693700271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2622426917693700271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2622426917693700271'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/05/listing-folders-subfolders-and-items-in.html' title='Listing Folders, SubFolders and Items in one page'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8862202548645353483</id><published>2009-04-28T11:13:00.004+03:00</published><updated>2009-04-28T12:00:20.686+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>Separate XSL files for Content Query Webpart (CQWP)</title><content type='html'>Using the same ItemStyle.xsl for all the content query webparts in the site is a very bad thing to do, especially with the big sites.&lt;br /&gt;But you can make an XSL file for each content query webpart and here is how to do:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Edit the page you want to add the webpart in. &lt;/li&gt;&lt;li&gt;Add a content query webpart. &lt;/li&gt;&lt;li&gt;Export the webpart. &lt;/li&gt;&lt;li&gt;Open the exported file. &lt;/li&gt;&lt;li&gt;Search for “ItemXslLink” &lt;/li&gt;&lt;li&gt;Update the line to:&lt;br /&gt;&lt;br /&gt;&amp;lt;property name="ItemXslLink" type="string"&amp;gt;/Styles/XSL/MyCQWebpart.xsl&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Update the property "ItemStyle" to the templete name ("UsefulLinks" in this example) &lt;/li&gt;&lt;li&gt;Upload the XSL file  (remember to update "CommonViewFields" as needed)&lt;/li&gt;&lt;li&gt;The XSL file can be something like this to display a useful links (Title, Link):&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:stylesheet version="1.0" exclude-result-prefixes="x d xsl msxsl cmswrt" xmlns:x="http://www.w3.org/2001/XMLSchema" xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" xmlns:cmswrt="http://schemas.microsoft.com/WebParts/v3/Publishing/runtime" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"&amp;gt;&lt;br /&gt;&amp;lt;xsl:template name="UsefulLinks" match="Row[@Style='UsefulLinks']" mode="itemstyle"&amp;gt;&lt;br /&gt;&amp;lt;xsl:param name="CurPos" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:variable name="TitleLenght" select="string-length(@Title)" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:variable name="RowLimit" select="40" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:variable name="LinkURL" select="substring-before(@Link,',')" /&amp;gt;&lt;br /&gt;&amp;lt;xsl:variable name="LinkText" select="substring-after(@Link,',')" /&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href="{$LinkURL}" target="_blank" title="{$LinkText}" class="newsTitle"&amp;gt;&lt;br /&gt;&amp;lt;xsl:value-of select="$CurPos" /&amp;gt; - &amp;lt;xsl:value-of select="@Title" /&amp;gt;&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Import the webpart and configure it to read from the right place, filtration and sorting order and so on. &lt;/li&gt;&lt;li&gt;Go to the “ContentQueryMain.xsl” file and search for “OuterTemplate.CallItemTemplate” &lt;/li&gt;&lt;li&gt;In &amp;lt;xsl:apply-templates select="." mode="itemstyle"&amp;gt; add &amp;lt;xsl:with-param name="CurPos" select="$CurPosition" /&amp;gt; and any other parameters you want to send to the itemstyle. &lt;/li&gt;&lt;li&gt;You can also make your own ContentQueryMain XSL by updating the “MainXslLink” property in the webpart file, and the same for the header by updating the “HeaderXslLink” property.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8862202548645353483?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8862202548645353483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8862202548645353483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8862202548645353483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8862202548645353483'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/04/separate-xsl-files-for-content-query.html' title='Separate XSL files for Content Query Webpart (CQWP)'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-7791224867319939901</id><published>2009-04-27T11:17:00.002+03:00</published><updated>2009-04-27T11:20:15.346+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Delete WorkItem from TFS database</title><content type='html'>To delete workitem added by mistake, you have to delete every thing related to it, so you can go to the TFS database and run the following&lt;br /&gt;&lt;br /&gt;Declare @DeleteThisID int   set @DeleteThisID = &lt;span style="color:#ff0000;"&gt;10000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DELETE FROM [WorkItemLongTexts] WHERE ID = @DeleteThisID&lt;br /&gt;DELETE FROM [WorkItemsAre] WHERE ID = @DeleteThisID&lt;br /&gt;DELETE FROM [WorkItemsWere] WHERE ID = @DeleteThisID&lt;br /&gt;DELETE FROM [WorkItemsLatest] WHERE ID = @DeleteThisID&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-7791224867319939901?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/7791224867319939901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=7791224867319939901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7791224867319939901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7791224867319939901'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/04/delete-workitem-from-tfs-database.html' title='Delete WorkItem from TFS database'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-3581838844136808219</id><published>2009-04-20T14:49:00.000+02:00</published><updated>2009-04-20T14:50:27.028+02:00</updated><title type='text'>Error 'Code-blocks are not allowed in this file'</title><content type='html'>&lt;a href="http://www.hammendorp.net/post/Error-Code-blocks-are-not-allowed-in-this-file.aspx"&gt;http://www.hammendorp.net/post/Error-Code-blocks-are-not-allowed-in-this-file.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-3581838844136808219?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/3581838844136808219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=3581838844136808219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3581838844136808219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3581838844136808219'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/04/error-code-blocks-are-not-allowed-in.html' title='Error &apos;Code-blocks are not allowed in this file&apos;'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-7504712308822476581</id><published>2009-04-20T10:22:00.002+02:00</published><updated>2009-04-20T10:24:29.765+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Features included in Office SharePoint Server 2007</title><content type='html'>&lt;em&gt;"Features are modular groups that provide a collection of functionality. Features are available depending on the license type of the Office SharePoint Server 2007 installation, and are activated at various levels of the logical structure of Office SharePoint Server 2007: farm level, Web application, site collection, and site level."&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc678862.aspx"&gt;http://technet.microsoft.com/en-us/library/cc678862.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This article contains information about Microsoft Office SharePoint Server 2007 features and the level at which you can activate them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-7504712308822476581?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/7504712308822476581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=7504712308822476581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7504712308822476581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/7504712308822476581'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/04/features-included-in-office-sharepoint.html' title='Features included in Office SharePoint Server 2007'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8163698169972464099</id><published>2009-04-12T06:21:00.008+02:00</published><updated>2009-04-12T08:00:38.747+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>SPListItem: Update(), SystemUpdate() and UpdateOverwriteVersion()</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;If you are working with MOSS APIs to create list items and updating them, you have the option to update the item by using &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Update&lt;/span&gt;(), &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;SystemUpdate&lt;/span&gt;(), &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;SystemUpdate&lt;/span&gt;(&lt;span class="Apple-style-span" style="font-style: italic;"&gt;false&lt;/span&gt;) or &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;UpdateOverwriteVersion&lt;/span&gt;() methods, but what is the difference between them?&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Update()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;will make a new version of the item&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Update the modified time and modified by fields&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If the item is published it will be pending again&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;UpdateOverwriteVersion()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;No new version.&lt;/li&gt;&lt;li&gt;Updates the item without creating a new version of the item&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Update the modified time and modified by fields&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;SystemUpdate()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Nothing will be changed in the item except the fields you want to change&lt;br /&gt;&lt;/li&gt;&lt;li&gt;No new version (You can pass &lt;span class="Apple-style-span" style="font-style: italic; "&gt;false&lt;/span&gt; to the method just to enable generating a new version)&lt;/li&gt;&lt;li&gt;The events will be fired and the modifications will be logged, but no alerts will be sent, and you can disble the event firing before using the SystemUpdate then enable it again&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal"&gt;SystemUpdate() is very useful if you want to modify something like the rating value after the item is published without reapproving it every time.&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8163698169972464099?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8163698169972464099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8163698169972464099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8163698169972464099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8163698169972464099'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/04/moss-splistitemupdate-vs.html' title='SPListItem: Update(), SystemUpdate() and UpdateOverwriteVersion()'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-2724741429561354338</id><published>2009-04-12T05:33:00.008+02:00</published><updated>2009-08-25T16:30:23.716+02:00</updated><title type='text'>كان يا ما كان</title><content type='html'>&lt;div&gt;&lt;p class="MsoNormal" dir="rtl" style="DIRECTION: rtl; unicode-bidi: embed; TEXT-ALIGN: right" align="center"&gt;&lt;span class="Apple-style-span" style="LINE-HEIGHT: 18px;font-family:verdana;" &gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;رسالة كتبتها لأودع فريق العمل اللذي عملت معه بشركة &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.linkdev.com/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;لينك ديف&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt; بمصر للعمل بفرع الشركة بالسعودية&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" dir="rtl" style="DIRECTION: rtl; unicode-bidi: embed; TEXT-ALIGN: center; tab-stops: 166.5pt" align="center"&gt;&lt;span lang="AR-EG" style="LINE-HEIGHT: 115%"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;كان يا ما كان&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" dir="rtl" style="DIRECTION: rtl; unicode-bidi: embed; TEXT-ALIGN: justify; tab-stops: 166.5pt"&gt;&lt;span class="Apple-style-span" style="LINE-HEIGHT: 18px;font-family:verdana;" &gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;هل سمعتم عن إمارات الأبدان؟ ليست ببغداد ولا إيران! في كل حين وآن وأوان يُحكى عن إمارة في كان يا ما كان.. العقل لها حاكما ومُستشاره القلبُ بالانسان، الشعبُ عاش خلالها لبرهة من الزمان فترة رخاءٍ وامانٍ. وفي يوم من الأيام أصدر العقل حكماً قاسياً ليس فيه رأفة ولا إحسان، لم يُستشار المُستشار في الحكم حيث أنه أول من يدان، لم يرتكب القلب جُرما بل يُخشى منه على باقي الجسمان، العقل يخشى ان تثور عليه يدٌ او اذنٌ من الاذنان، أو قد تنقلب عليه قدميه أو يعارضه اللسان، كل هذا لأنه أخذ القرار وعلى البقية السمع والطاعة للسلطان. وفي ساعة المحاكمه (الآن) وقف العقلُ مُحاكماً لكنه يعلم ان مكانه مع البقية خلف القضبان، وبعد مرافعة القلب المُستشار والبلاغة في البيان، والتي ادت لهطول امطار غزيرة بمنطقة العينان وإثارة العواصف بمنطقة الرئتان. في الحال اُصدر الفرمان وقد تناقلته وسائل الاعلام.. بتوقيع اتفاق دبلوماسي مع باقي الامارات من الزملاء والاحباب والخلان، أن يترك بكل امارة ذكرى كسفير خير عبر الايام، و يَحِقُ للمتهمين زيارة السفراء كلما كان ذلك بالإمكان، لتجديد هعد وفاء وإخاء و سلام، وفي النهاية ختم الحكم بقوله: في هذا الزمان هذا ما كان يمكن ان يكون بالإمكان، فسلام.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl" style="DIRECTION: rtl; unicode-bidi: embed; TEXT-ALIGN: justify; tab-stops: 166.5pt"&gt;&lt;span class="Apple-style-span" style="LINE-HEIGHT: 18px;font-family:verdana;" &gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;&lt;img id="BLOGGER_PHOTO_ID_5373908566262651778" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 213px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_GUHozeIg7kI/SpP1XmuDm4I/AAAAAAAAAB4/MPkDk6e_XqY/s320/DSC01526.JPG" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" dir="rtl" style="DIRECTION: rtl; unicode-bidi: embed; TEXT-ALIGN: justify; tab-stops: 166.5pt"&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-2724741429561354338?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/2724741429561354338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=2724741429561354338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2724741429561354338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/2724741429561354338'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/04/blog-post.html' title='كان يا ما كان'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GUHozeIg7kI/SpP1XmuDm4I/AAAAAAAAAB4/MPkDk6e_XqY/s72-c/DSC01526.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-725523189121781677</id><published>2009-03-24T09:36:00.002+02:00</published><updated>2009-04-12T08:01:48.163+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>CSS best practice</title><content type='html'>Inline style is not a good practice if you want to work with styles, as it is difficult to update if you want to make a modification across the site.&lt;br /&gt;&lt;br /&gt;So, some WEB-UI developers start making a new framework to use while making their styles without using the inline style, they develop a class for each style, ex: .Width150px { width:150px;} and another one .Red {color:red;} and use it like this class=”Red Width150px”!&lt;br /&gt;For me, using inline style is better as it will be much more faster while developing than using the above way.&lt;br /&gt;&lt;br /&gt;The better practice for using CSS is by defining a meaning full name that describes the thing that will take the style, ex: .PageTitle {color:red; width:150px;} and give the DIV class=”PageTitle”, so I can update all the pages titles just by updating the CSS file, not going to each page title and update the class name.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-725523189121781677?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/725523189121781677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=725523189121781677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/725523189121781677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/725523189121781677'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/03/css-best-practice.html' title='CSS best practice'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8709401847299245884</id><published>2009-03-24T09:28:00.002+02:00</published><updated>2009-04-12T08:03:15.909+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>DIVs vs TABLES</title><content type='html'>Lots of WEB-UI developers are thinking of replacing all the tables with DIVs which in my opinion is not right, they are using DIVs even if they want to render a table saying that it is better in performance.&lt;br /&gt;&lt;br /&gt;But the right thing is: &lt;strong&gt;use div when you need it and use tables when you need it&lt;/strong&gt;.&lt;br /&gt;Using DIVs with CSS can make a lot of things that can’t be done by TABLEs, for example it you want to display data in rows and each row or some rows will not be aligned with the others and using TABLEs will make complicated TDs with a lot of COLSPANs, but displaying a form data can be done with TABLEs perfectly.&lt;br /&gt;&lt;br /&gt;But it is preferred to use DIVs if you want to work with the page layouts, as you will be able to change the layout just by using the CSS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8709401847299245884?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8709401847299245884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8709401847299245884' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8709401847299245884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8709401847299245884'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/03/divs-vs-tables.html' title='DIVs vs TABLES'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8608180428885006926</id><published>2009-03-11T11:31:00.002+02:00</published><updated>2009-04-12T08:02:06.063+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>setAttribute('maxlength', 5);</title><content type='html'>Setting maxlength with Javascript using the setAttribute() function will not work with IE like this: setAttribute('maxlength', 5);&lt;br /&gt;&lt;br /&gt;You have to make it setAttribute('max&lt;span style="color:#ff0000;"&gt;L&lt;/span&gt;ength', 5);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8608180428885006926?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8608180428885006926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8608180428885006926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8608180428885006926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8608180428885006926'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/03/setattributemaxlength-5.html' title='setAttribute(&apos;maxlength&apos;, 5);'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-3691218162121158717</id><published>2009-03-02T10:16:00.002+02:00</published><updated>2009-04-12T08:02:57.155+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Team Foundation Sidekicks</title><content type='html'>&lt;a href="http://www.attrice.info/cm/tfs/"&gt;Team Foundation Sidekicks&lt;/a&gt; is a suite of tools for Microsoft Team Foundation Server administrators and advanced users providing Graphic User Interface for administrative and advanced version control tasks in multi-user TFS environments.&lt;br /&gt;Version 2.2 of Team Foundation Sidekicks includes Permission Sidekick, Code Review Sidekick, Shelveset Sidekick, Labels Sidekick, History Sidekick, Workspace Sidekick and Status Sidekick in uniform GUI stand-alone application, and Visual Studio Integraton Package providing VS integration for all sidekicks as well as additional features such as Search Items dialog, dynamic History and Build Type editing support.&lt;br /&gt;Single installation package contains versions of application compatible both with Team Foundation Server 2005 and Team Foundation Server 2008.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-3691218162121158717?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/3691218162121158717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=3691218162121158717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3691218162121158717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3691218162121158717'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/03/team-foundation-sidekicks.html' title='Team Foundation Sidekicks'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6517117330986752512</id><published>2009-03-02T10:03:00.005+02:00</published><updated>2009-04-12T08:02:32.671+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><title type='text'>Move site collections to a new database (split a content database) (Windows SharePoint Services 3.0)</title><content type='html'>This is a very usefull article talking about &lt;a href="http://technet.microsoft.com/en-us/library/cc825327.aspx"&gt;how to move a site collections to a new database&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can also have a look on &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=263CD480-F6EB-4FA3-9F2E-2D47618505F2&amp;amp;displaylang=en"&gt;Microsoft SharePoint Administration Toolkit &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=263CD480-F6EB-4FA3-9F2E-2D47618505F2&amp;amp;displaylang=en"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6517117330986752512?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6517117330986752512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6517117330986752512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6517117330986752512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6517117330986752512'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/03/move-site-collections-to-new-database.html' title='Move site collections to a new database (split a content database) (Windows SharePoint Services 3.0)'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-8528979319330480673</id><published>2009-02-28T11:05:00.004+02:00</published><updated>2009-02-28T11:08:58.066+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Kids'/><title type='text'>Kid's Corner in Microsoft MSDN</title><content type='html'>&lt;div dir="ltr"&gt;Are you a cool kid who wants to impress your friends and family with your mad skillz? Check out the Kid's Corner for lots of fun, easy to understand lessons on programming!&lt;/div&gt;&lt;div dir="ltr"&gt; &lt;/div&gt;&lt;div dir="ltr"&gt;&lt;a href="http://msdn.microsoft.com/en-us/beginner/bb308754.aspx"&gt;http://msdn.microsoft.com/en-us/beginner/bb308754.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-8528979319330480673?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/8528979319330480673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=8528979319330480673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8528979319330480673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/8528979319330480673'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/02/kids-corner-in-microsoft-msdn.html' title='Kid&apos;s Corner in Microsoft MSDN'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-3839595183007125802</id><published>2009-02-25T09:33:00.003+02:00</published><updated>2009-02-25T09:35:49.171+02:00</updated><title type='text'></title><content type='html'>&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;I was asked if I worked before on making a module to allow the users from downloading a document without the direct access to that document, the document (not just images) may be saved in SQL or on MOSS document library with no read access to the user.&lt;br /&gt;Yes I worked before on file types like word files, but general files NO. and I give him the main idea of adding the document stream response and change the response content type.&lt;br /&gt;And after a while I asked him about the output and he sends this code to me:&lt;/span&gt;&lt;/div&gt;&lt;p dir="ltr"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div dir="ltr"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;System.IO.FileInfo fileInfo = new System.IO.FileInfo(@"C:\d\AhmedCV.doc");&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;System.IO.FileStream fl = fileInfo.OpenRead();&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;byte[] file = new byte[(int)fl.Length];&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;fl.Read(file, 0, (int)fl.Length);&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;fl.Close();&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;System.IO.MemoryStream mem = new System.IO.MemoryStream(file);&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;Response.Clear();&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;Response.ContentType = "application/x-unknown";&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;Response.AddHeader("Content-Disposition", "attachment; filename=" + fileInfo.Name);&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;mem.WriteTo(Response.OutputStream);&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family:verdana;"&gt;Response.End();&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-3839595183007125802?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/3839595183007125802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=3839595183007125802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3839595183007125802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/3839595183007125802'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2009/02/i-was-asked-if-i-worked-before-on.html' title=''/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6074666457156598227</id><published>2007-06-23T08:35:00.000+03:00</published><updated>2007-06-23T08:37:33.480+03:00</updated><title type='text'>التشكيل العربي ... مشكلة قد لا تظهر ولكن موجودة</title><content type='html'>&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;منذ عدة سنوات و انا اعمل في تطبيقات الويب العربية فقط، و قد لاحظت مرة أن هناك رابط لصفحة ما ، عندما اضغط عليه لا يستطيع المتصفح العثور على هذه الصفحة ، فراجعت العنوان بالرابط فوجدته صحيحا، فراجعت الملف نفسه ان كان موجودا ام لا، فوجدته في مكانه و بنفس الاسم!&lt;br /&gt;&lt;br /&gt;استغرق هذا الامر مني بعض الوقت حتى قررت ان أعيد كتابة الرابط من جديد ، فوجدته يعمل بشكل جيد! فقررت الرجوع مرة أخرى و وضعت الرابطين فوق بعض كل واحد منهم في سطر و قارنت بينهم فلم أجد ما هي المشكلة، متطابقين تماما! و احدهم يعمل و الآخر لا يعمل.&lt;br /&gt;&lt;br /&gt;في النهاية و انا اتحرك بالاسهم على الرابط حرف حرف فوجدت انه جاء في مكان ما و لم يتحرك ثم نقرة أخرى فتحرك! و اتضح لي الأمر أن لوحة المفاتيح كانت محولة على اللغة العربية عندما بدأت في كتابة حرف كبير ثم بعض الحروف الانجليزية الصغيرة، و عندما ادركت ان الكتابة عربي و ليس انجليزي حذفت ما امامي و حولت لوحة المفاتيح و اعدت الكتابة، و لكنني لم أرى التشكيل العربي الذي كان في بداية الكلمة و كان هذا هو سبب المشكلة.&lt;br /&gt;&lt;br /&gt;و منذ ذلك الوقت عندما ادرك اني اكتب بالعربي خطأً اقوم بحذف الكلمة و حرف آخر و اعادة كتابته حتى أتأكد من عدم وجود حروف خفية.&lt;/strong&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6074666457156598227?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6074666457156598227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6074666457156598227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6074666457156598227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6074666457156598227'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2007/06/blog-post.html' title='التشكيل العربي ... مشكلة قد لا تظهر ولكن موجودة'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33887471.post-6834206846194291983</id><published>2007-06-23T00:39:00.000+03:00</published><updated>2007-06-23T00:57:04.214+03:00</updated><title type='text'>1st</title><content type='html'>&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Al salam alikom, this will be my first post, and I would like to start it with:&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;font-size:130%;"&gt;&lt;strong&gt;”وَقُل رَّبِّ زِدْنِي عِلْمًا”&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33887471-6834206846194291983?l=omourad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://omourad.blogspot.com/feeds/6834206846194291983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33887471&amp;postID=6834206846194291983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6834206846194291983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33887471/posts/default/6834206846194291983'/><link rel='alternate' type='text/html' href='http://omourad.blogspot.com/2007/06/1st.html' title='1st'/><author><name>Osama Mourad</name><uri>http://www.blogger.com/profile/04206811971769877360</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-Zkp1UWtTddA/TlzX4SdWogI/AAAAAAAAAFQ/QvIuypCdkcQ/s220/Osama.jpg'/></author><thr:total>0</thr:total></entry></feed>
