<?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-27659513</id><updated>2012-01-24T21:10:30.854+02:00</updated><category term='Cryptography'/><category term='Python'/><category term='Vista'/><category term='Microsoft'/><category term='Research'/><category term='JAVA'/><category term='SilverLight'/><category term='SQL Server'/><category term='BizTalk'/><category term='Hibernate'/><category term='VS 2010'/><category term='AJAX'/><category term='open source'/><category term='Oracle'/><category term='Azure'/><category term='XNA'/><category term='ASP.NET'/><category term='Reversing'/><category term='VSTS'/><category term='ATG'/><category term='Smart Client Applications'/><category term='Solaris'/><category term='services'/><category term='SSIS'/><category term='Concepts'/><category term='Design Patterns'/><category term='Autodesk'/><category term='BIM'/><category term='Adobe'/><category term='MDC07'/><category term='MSSQL'/><category term='topas'/><category term='SDS'/><category term='SDLC'/><category term='MySQL'/><category term='C/C++'/><category term='XML'/><category term='Workflow'/><category term='Tips'/><category term='NetBeans'/><category term='Fun'/><category term='Soft Skills'/><category term='IIS'/><category term='.NET Q and A'/><category term='Announcements'/><category term='AdvancedC++'/><category term='Orcas'/><category term='C#'/><category term='Drupal'/><category term='WCF'/><category term='Learning Materials'/><category term='Database'/><category term='Linux'/><category term='BI'/><category term='swap'/><category term='TeamDevelopment'/><category term='Robotics Studio'/><category term='SMO'/><category term='Game Programming'/><category term='JavaScript'/><category term='AIX'/><title type='text'>FCIH</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default?start-index=101&amp;max-results=100'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>325</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-27659513.post-982582393157368099</id><published>2011-12-11T16:22:00.001+02:00</published><updated>2011-12-11T16:22:07.982+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Announcements'/><title type='text'>FCIH Initiative family call for new members</title><content type='html'>&lt;p&gt;FCIH initiative is group of &lt;a href="http://www.fcih.net/main/" target="_blank"&gt;FCIH&lt;/a&gt; graduates who are interested in passing their experience &amp;amp; knowledge to FCIH students. The kick off was on 7 November 2009; during these two years, we managed to hold number of sessions and&amp;#160; Java training.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;We think of the initiative as our role towards the society and as a chance to help others find their way in life. Currently, we are hoping to add new members to FCIH&amp;#160; initiative family. Kindly, if you are interested, take a few minutes to fill&amp;#160; &lt;a href="https://docs.google.com/spreadsheet/viewform?formkey=dGNuMXdlbndlR0JFbWczZVdYY0ttbmc6MQ" target="_blank"&gt;this form&lt;/a&gt;, if you are already a member please fill the form as well.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Please, feel free to spread the word to other &lt;u&gt;&lt;b&gt;FCIH graduates &lt;/b&gt;&lt;/u&gt;who might be interested.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-982582393157368099?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/982582393157368099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=982582393157368099' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/982582393157368099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/982582393157368099'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2011/12/fcih-initiative-family-call-for-new.html' title='FCIH Initiative family call for new members'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-6823143669446656788</id><published>2011-11-16T04:49:00.001+02:00</published><updated>2011-11-17T00:08:27.610+02:00</updated><title type='text'>Currying</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;In this post we will talk about currying, why youmay need it, how to implement it with different paradigms (OOP,meta-programming, and functional).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Let's first talk about motivation. Consider thesimple scenario where you have a list of integers, and you want to filter it toextract only the integers you want. For instance this list could be a list ofuser IDs, and you want to extract only the users who are late in their paymentsto send them an email.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;It is pretty much straight forward to do it in aloop; but we want a clearer way that focuses on semantics. For example considersomething like&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;send_email_to(select_from(all_users, &lt;span style="color: #f00000;"&gt;payment_due&lt;/span&gt;))&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;I've colored &lt;span style="color: #f00000; font-family: 'Courier New';"&gt;payment_due&lt;/span&gt;&amp;nbsp;inred to make it clear its a function, not a variable. The function &lt;span style="font-family: 'Courier New';"&gt;select_from&lt;/span&gt; couldcontain the loop structure (and maybe some database processing), where in eachloop they apply the function&amp;nbsp;&lt;span style="color: #f00000; font-family: 'Courier New';"&gt;payment_due&lt;/span&gt;&amp;nbsp;tosome user like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;select_from(list, test)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;selected = {};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;for(i=0; i &amp;lt; list.length; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(test(list[i]) == true)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;append(selected,list[i])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;return selected;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Notice that the function &lt;span style="color: #f00000; font-family: 'Courier New';"&gt;payment_due&lt;/span&gt; must be a function that takes only oneparameter, because that is how it will be called from inside &lt;span style="font-family: 'Courier New';"&gt;select_from&lt;/span&gt;. In &lt;a href="http://en.wikipedia.org/wiki/Filter_(higher-order_function)"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;most&lt;/span&gt;&lt;/a&gt;languages which have &lt;a href="http://en.wikipedia.org/wiki/First-class_function"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;first-classfunctions&lt;/span&gt;&lt;/a&gt; there is a built-in function which acts like &lt;span style="font-family: 'Courier New';"&gt;select_from&lt;/span&gt;, exactlyfor this kind of purpose. This includes C++ and all functional programminglanguages. In C++11 it is called &lt;a href="http://en.cppreference.com/w/cpp/algorithm/copy"&gt;&lt;span style="color: windowtext; font-family: 'Courier New'; text-decoration: none;"&gt;copy_if&lt;/span&gt;&lt;/a&gt; (it was dropped from C++ by &lt;a href="http://lists.boost.org/Archives/boost/2001/01/8022.php"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;accident&lt;/span&gt;&lt;/a&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Consider another «test» function that takes asargument a user ID, and returns true if the user’s monthly salary is more than3000. That could be written as:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #f00000; font-family: 'Courier New';"&gt;salary_greater_than_3000&lt;/span&gt;&lt;span style="font-family: 'Courier New';"&gt;(user)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp; returnuser.salary &amp;gt; 3000;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;send_email_to(select_from(all_users, &lt;span style="color: #f00000;"&gt;salary_greater_than_3000&lt;/span&gt;))&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Maybe we have something like this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #f00000; font-family: 'Courier New';"&gt;salary_greater_than_x&lt;/span&gt;&lt;span style="font-family: 'Courier New';"&gt;(user,x)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp; returnuser.salary &amp;gt; x;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #f00000; font-family: 'Courier New';"&gt;salary_greater_than_3000&lt;/span&gt;&lt;span style="font-family: 'Courier New';"&gt;(user)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp; return&lt;span style="color: #f00000;"&gt;salary_greater_than_x&lt;/span&gt;(user,3000);&lt;span style="color: #f00000;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;send_email_to(select_from(all_users, &lt;span style="color: #f00000;"&gt;salary_greater_than_3000&lt;/span&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;C++ macros won’t do the same thing as above, butC++ STL &lt;a href="http://www-h.eng.cam.ac.uk/help/tpl/languages/C++/bind.html"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;bind2nd&lt;/span&gt;&lt;/a&gt;(which is also compile-time meta-programming) can do the same thing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;If we don’t know the value 3000 at compile time andinstead we only have it in run-time, we can’t do this call &lt;span style="font-family: 'Courier New';"&gt;select_from(all_users,&lt;span style="color: #f00000;"&gt;salary_greater_than_x&lt;/span&gt;)&lt;/span&gt;. Thiswouldn’t work because &lt;span style="font-family: 'Courier New';"&gt;select_from&lt;/span&gt; expects a function takingone parameter only.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;In C++ this could be fixed by using a functor,which is a class which overrides operator(), and hence could be used as afunction. For example (this example is valid C++, not just pseudo code as theprevious examples):&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;class salary_greater_than_x&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp; constint x;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp; public:salary_greater_than_x(int x): x(x){}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp; booloperator()(User user) { return user.salary() &amp;gt; x; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;}&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;send_email_to(select_from(all_users, &lt;span style="color: #f00000;"&gt;salary_greater_than_x(3000)&lt;/span&gt;))&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Lambda expressions does the same thing exactly,without the need to write a class for it. In C++11 (which supports lambdaepxressions) that would be like:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;send_email_to(select_from(all_users, &lt;span style="color: #003dcc;"&gt;[](User user){&lt;/span&gt;&lt;span style="color: #f00000;"&gt;salary_greater_than_x(user,3000)&lt;/span&gt;&lt;span style="color: #0044fe;"&gt;}&lt;/span&gt;))&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The lambda expression, just like the functor,stores the value 3000, which is a sort of a &lt;a href="http://en.wikipedia.org/wiki/Closure_(computer_science)"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;closure&lt;/span&gt;&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Lambda expressions is too powerful; you can definearbitrary functions. We don’t need all that power, we only need to fix oneargument of another function. This is what currying does. For instance, we knowthat &lt;span style="color: #f00000; font-family: 'Courier New';"&gt;salary_greater_than_x &lt;/span&gt;takes twoarguments. If the language we are using supports implicit currying (like &lt;a href="http://www.haskell.org/haskellwiki/Currying"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;Haskell&lt;/span&gt;&lt;/a&gt;) if we omitted thesecond parameter we end up with a function whose first parameter is fixed.Concretely speaking we can do this (notice I switched the first and secondparameters in the definition of &lt;span style="color: #f00000; font-family: 'Courier New';"&gt;salary_greater_than_x&lt;/span&gt;) :&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #f00000; font-family: 'Courier New';"&gt;salary_greater_than_x&lt;/span&gt;&lt;span style="font-family: 'Courier New';"&gt;(x,user)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp; returnuser.salary &amp;gt; x;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #f00000; font-family: 'Courier New';"&gt;salary_greater_than_3000 =salary_greater_than_x(3000)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;send_email_to(select_from(all_users, &lt;span style="color: #f00000;"&gt;salary_greater_than_3000&lt;/span&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;or simply just :&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New';"&gt;send_email_to(select_from(all_users, &lt;span style="color: #f00000;"&gt;salary_greater_than_x(3000)&lt;/span&gt;))&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&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/27659513-6823143669446656788?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/6823143669446656788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=6823143669446656788' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/6823143669446656788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/6823143669446656788'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2011/11/currying.html' title='Currying'/><author><name>Mohammad Alaggan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/-GRdIwXAujpA/TtsetfBGQ6I/AAAAAAAAC7E/GQhFISn43mQ/s1600/n552022084_44018_9644.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-2521636642889427905</id><published>2011-07-12T21:34:00.000+02:00</published><updated>2011-07-12T21:34:30.836+02:00</updated><title type='text'>Announcement: FCIH Initiative</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-sK_SEOQVkdU/Thyhs80EJBI/AAAAAAAABPs/IpOSzhZOuzE/s1600/InitiativeLogo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="99" src="http://3.bp.blogspot.com/-sK_SEOQVkdU/Thyhs80EJBI/AAAAAAAABPs/IpOSzhZOuzE/s320/InitiativeLogo.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;b&gt;&lt;span style="color: #17365d; font-size: 13pt; line-height: 19px;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;b&gt;&lt;span style="color: #17365d; font-size: 13pt; line-height: 19px;"&gt;&lt;span style="font-family: Calibri;"&gt;FCIH Initiative….FCIH Revolution&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;If you love your country and want to take effective steps to raise Egypt&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;If you're seeking development, freedom, knowledge and science&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;So, you're a proactive Egyptian and FCIan and should join our FCIH Revolution&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;A revolution of knowledge, learning, working and a revolution of dreams&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;b&gt;&lt;span style="color: #17365d; font-size: 13pt; line-height: 19px;"&gt;&lt;span style="font-family: Calibri;"&gt;We're all together; FCIH Graduates and Students&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;We're all here to help each others; we're all here to develop our skills&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;Together, we'll have a better world, we'll have a better tom, and we'll have a better Egypt&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;We'll attend Technical &amp;amp; Business sessions to know&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;We'll be trained to learn&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;We'll do projects…and then we'll be ready to achieve&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;Let's join and train ourselves&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;Let's join and know the business world from experts from each field&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: center;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;Let's join and start building our future and career from now&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;Our program will be divided into three phases:&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 36pt; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span&gt;&lt;span style="font-family: Calibri;"&gt;1-&lt;/span&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;Sessions Phase:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;br /&gt;These sessions will open us a window to the business world, discuss technical topics and tell us about the world outside FCIH&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0pt; margin-left: 36pt; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span&gt;&lt;span style="font-family: Calibri;"&gt;2-&lt;/span&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;Training phase:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;"&gt;we'll have more than one training track, each track will be delivered and leaded by a group of experts in this track, we'll learn how to learn and how to apply what we've learned&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 36pt; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span&gt;&lt;span style="font-family: Calibri;"&gt;3-&lt;/span&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span dir="ltr"&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;Projects phase:&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 36pt; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;span style="color: #17365d; font-size: 12pt; line-height: 18px;"&gt;&lt;span style="font-family: Calibri;"&gt;After all this knowledge, it'll be our chance to do and achieve. We'll develop projects simulating business cases and deliver it according to modern software engineering methodologies used in real business by leading companies.&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 36pt; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #17365d;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;FCIH Initiative,&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #17365d;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Don't wait the chance, create it&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #17365d;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;u&gt;&lt;/u&gt;Contacts:&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #17365d;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;u&gt;&lt;/u&gt;Mail:&amp;nbsp;&lt;a href="mailto:FCIH.Initiative@fcih.net" style="color: #3333cc;" target="_blank"&gt;FCIH.Initiative@fcih.net&lt;/a&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #17365d;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;u&gt;&lt;/u&gt;Blog:&amp;nbsp;&lt;a href="http://fci-h.blogspot.com/" style="color: #3333cc;" target="_blank"&gt;http://fci-h.blogspot.com/&lt;/a&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #17365d;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;u&gt;&lt;/u&gt;&lt;span style="color: #17365d;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;u&gt;&lt;/u&gt;Facebook Event:&amp;nbsp;&lt;a href="http://www.facebook.com/#!/event.php?eid=201086659939630" style="color: #3333cc;" target="_blank"&gt;http://www.facebook.com/#!/&lt;wbr&gt;&lt;/wbr&gt;event.php?eid=201086659939630&lt;/a&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #17365d;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;u&gt;&lt;/u&gt;Facebook Group:&amp;nbsp;&lt;a href="http://www.facebook.com/#!/group.php?gid=147883125238765" style="color: #3333cc;" target="_blank"&gt;http://www.facebook.com/#!/&lt;wbr&gt;&lt;/wbr&gt;group.php?gid=147883125238765&lt;/a&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" dir="ltr" style="border-collapse: collapse; direction: ltr; font-family: arial, sans-serif; font-size: 13px; margin-bottom: 10pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; text-align: left;"&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/27659513-2521636642889427905?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/2521636642889427905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=2521636642889427905' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/2521636642889427905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/2521636642889427905'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2011/07/announcement-fcih-initiative.html' title='Announcement: FCIH Initiative'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-sK_SEOQVkdU/Thyhs80EJBI/AAAAAAAABPs/IpOSzhZOuzE/s72-c/InitiativeLogo.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-7960229292826691276</id><published>2011-03-03T21:12:00.001+02:00</published><updated>2011-03-03T21:12:34.339+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>"Note in (Google) Reader" issue Fix</title><content type='html'>&lt;p&gt;Probably you're familiar with the sharing button (at least on Firefox and Chrome) offered by Google reader to help you share stuff that don't have feeds. Today, for some reason I realized that mine wasn't working!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4401ryJ0di8/TW_oHKbxLrI/AAAAAAAAApQ/XdfcI6JP_08/s1600-h/GReader%5B6%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="GReader" border="0" alt="GReader" align="right" src="http://lh4.ggpht.com/_4401ryJ0di8/TW_oIA9IO9I/AAAAAAAAApU/fqwQAquyj90/GReader_thumb%5B4%5D.jpg?imgmax=800" width="244" height="179" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After &lt;a href="http://twitter.com/mShady/status/43322748356935680" target="_blank"&gt;tweeting&lt;/a&gt; about it, thanks to &lt;a href="http://www.google.vu/support/forum/p/reader/thread?tid=7eb6f6fc5796f544&amp;amp;hl=en&amp;amp;fid=7eb6f6fc5796f54400049d8cb32ee1ef&amp;amp;hltp=2" target="_blank"&gt;Flavio Gomes&lt;/a&gt; and &lt;a href="http://twitter.com/mtobis" target="_blank"&gt;@mtobis&lt;/a&gt;, I realized what went wrong. Seems like the &lt;a href="http://www.google.com/reader/ui/link-bookmarklet.js" target="_blank"&gt;JavaScript file&lt;/a&gt; used by the button was updated, without updating the button script accordingly.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To solve this, all you have to do is set _IS_MULTILOGIN_ENABLED a variable that's not defined (but used) in the script file in the button script. So add something like:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;_IS_MULTILOGIN_ENABLED=&lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="rem"&gt;// or&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;_IS_MULTILOGIN_ENABLED=&lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="rem"&gt;// or better&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;_IS_MULTILOGIN_ENABLED=((&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(_IS_MULTILOGIN_ENABLED)==&lt;span class="str"&gt;&amp;quot;undefined&amp;quot;&lt;/span&gt;)?&lt;span class="kwrd"&gt;false&lt;/span&gt;:_IS_MULTILOGIN_ENABLED);&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;at the beginning of the button script, just to set _IS_MULTILOGIN_ENABLED before it's accessed as &amp;quot;undefined&amp;quot; in the script.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-7960229292826691276?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/7960229292826691276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=7960229292826691276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/7960229292826691276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/7960229292826691276'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2011/03/in-google-reader-issue-fix.html' title='&amp;quot;Note in (Google) Reader&amp;quot; issue Fix'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_4401ryJ0di8/TW_oIA9IO9I/AAAAAAAAApU/fqwQAquyj90/s72-c/GReader_thumb%5B4%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-5220212462082142237</id><published>2011-01-17T14:00:00.001+02:00</published><updated>2011-01-17T14:01:56.064+02:00</updated><title type='text'>How to solve "Silverlight.CSharp.targets was not found" problem</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_tKqD3VvR8CI/TTQvlOH-QrI/AAAAAAAABKU/yG5FXHCo3oo/s1600/Silverlight.CSharp.targets+was+not+found.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://2.bp.blogspot.com/_tKqD3VvR8CI/TTQvlOH-QrI/AAAAAAAABKU/yG5FXHCo3oo/s400/Silverlight.CSharp.targets+was+not+found.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Friend of mine asked that she can't build any Silverlight project inside &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions"&gt;VS 2010&lt;/a&gt; from &lt;a href="http://gallery.expression.microsoft.com/"&gt;http://gallery.expression.microsoft.com.&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: red; text-align: left;"&gt;&lt;span style="font-size: small;"&gt;The error was similar to :&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: small;"&gt; C:\OverlappingTabs.csproj : error&amp;nbsp; :&lt;span style="color: red;"&gt; Unable to read the project file 'OverlappingTabs.csproj'. &lt;/span&gt;&lt;br /&gt;C:\OverlappingTabs.csproj(108,3): &lt;span style="color: red;"&gt;The imported project "C:\Program Files\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.CSharp.targets" was not found. Confirm that the path in the &lt;import&gt; declaration is correct, and that the file exists on disk.&lt;/import&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: small;"&gt;This problem runs because &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions"&gt;VS2010 &lt;/a&gt;came up with support for &lt;a href="http://www.silverlight.net/getstarted/silverlight3"&gt;Silverlight 3&lt;/a&gt; but not &lt;a href="http://www.silverlight.net/getstarted/silverlight-4/"&gt;Silverlight 4&lt;/a&gt; as &lt;a href="http://www.silverlight.net/getstarted/silverlight-4/"&gt;Silverlight 4&lt;/a&gt;&lt;/span&gt; had released after &lt;span style="font-size: small;"&gt;&lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions"&gt; VS2010.&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: small;"&gt;What you need is just setup&lt;/span&gt;&lt;span style="font-size: small;"&gt; "&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b3deb194-ca86-4fb6-a716-b67c2604a139"&gt;Microsoft Silverlight 4 Tools for Visual Studio 2010&lt;/a&gt;" about 35 MB without restarting your OS.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: small;"&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/27659513-5220212462082142237?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/5220212462082142237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=5220212462082142237' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5220212462082142237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5220212462082142237'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2011/01/how-to-solve-silverlightcsharptargets.html' title='How to solve &quot;Silverlight.CSharp.targets was not found&quot; problem'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tKqD3VvR8CI/TTQvlOH-QrI/AAAAAAAABKU/yG5FXHCo3oo/s72-c/Silverlight.CSharp.targets+was+not+found.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-2154605639709153257</id><published>2011-01-09T02:02:00.001+02:00</published><updated>2011-01-09T13:51:03.686+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VSTS'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>How to force undo checkout? #TFS</title><content type='html'>&lt;p&gt;Sometimes you'd pop into cases where you find yourself in a situation where you have to force undo pending code changes of someone else (say a colleague who is no more around, or even temporarily) or your own pending changes if say your machine (along with your workspace on it).&lt;/p&gt;  &lt;p&gt;Well, there a Visual Studio tool for that.. That's tf command-line utility, which you can look for in your VS directory under Common7\IDE.. &lt;/p&gt;  &lt;p&gt;Using tf has lots and lots of uses, here's a &lt;a href="http://msdn.microsoft.com/en-us/library/z51z7zy0.aspx" target="_blank"&gt;really LONG list&lt;/a&gt; of them. Note: there's 3 sub-lists for VS2005, 2008, 2010. But for our tiny problem here, we mainly have to options, I'm using here the most straight forward ones:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Undoing pending changes for a specific file:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;That will need mainly main parameters to start with: The name/path of the file checkout, User name (of the user who did the checkout), and the Workspace in which the checkout was done (usually your machine name if you didn't create an new workspace).&lt;/p&gt;  &lt;p&gt;You could have an issue with the third one (workspace name), so you might have to check the &lt;a href="http://msdn.microsoft.com/en-us/library/54dkh0y3.aspx" target="_blank"&gt;Workspaces command&lt;/a&gt; for more details, but generally a small command like the one below will do just ok in most cases:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;tf workspaces /owner:UserName&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Knowing the above you can easily undo the pending changes as below, note: parameters are in squiggly braces like {these}:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;tf undo {file path} /workspace:{workspace};{username} /server:{TFS name/IP}&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Of course the &amp;quot;/server&amp;quot; part can be removed if you're on the same server running TFS. An example with some data will look like:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;tf undo $/myProject/myFile.cs /workspace:mySpace;FCIH\shady /server:FCIH_TFS&lt;/em&gt;&lt;/p&gt;   &lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;Deleting the whole workspace:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;The other option is to delete the whole workspace, which in turn delete any related checkouts. A simple command for that could be:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;tf workspace /delete {workspace};{username} /server:{TFS name/IP}&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;which with some example parameters might look like:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;tf workspace /delete Shady-PC;FCIH\shady /server:10.0.0.2&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;u&gt;UPDATE:&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;After a &lt;a href="https://www.blogger.com/comment.g?blogID=27659513&amp;amp;postID=2154605639709153257" target="_blank"&gt;comment&lt;/a&gt; by &lt;a href="http://twitter.com/Meligy" target="_blank"&gt;Meligy&lt;/a&gt;, I think I needed to add this: Most of the above needs you to be logged in as an account with TFS admin privileges, check the exact required permissions for &lt;a href="http://msdn.microsoft.com/en-us/library/c72skhw4.aspx" target="_blank"&gt;Undo&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/y901w7se.aspx" target="_blank"&gt;Workspace&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/54dkh0y3.aspx" target="_blank"&gt;Workspaces&lt;/a&gt; commands.&lt;/p&gt;  &lt;p&gt;If you're not logged in as the appropriate account, you can append {/login:username, [password]} to provide the authorized username and password.&lt;/p&gt;  &lt;p&gt;Meligy, also, mentioned another tool called &lt;a href="http://www.attrice.info/cm/tfs/" target="_blank"&gt;TFS Sidekicks&lt;/a&gt; that can do similar stuff.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-2154605639709153257?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/2154605639709153257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=2154605639709153257' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/2154605639709153257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/2154605639709153257'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2011/01/how-to-force-undo-checkout-tfs.html' title='How to force undo checkout? #TFS'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-5054677640028187941</id><published>2011-01-06T21:30:00.000+02:00</published><updated>2011-01-06T21:30:52.834+02:00</updated><title type='text'>Silverlight: Image Carousel(3d Album)</title><content type='html'>Here is my "HelloWorld" Sliverlight application as in below picture for carousel by Sliverlight with source code as &lt;a href="http://www.gnu.org/licenses/gpl.html"&gt;GNU GENERAL PUBLIC LICENSE&lt;/a&gt;.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_tKqD3VvR8CI/TSYSZNoocVI/AAAAAAAABKM/PELGWLCn1OA/s1600/Silverlight_+Image_Carousel_3dAlbum_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="380" src="http://2.bp.blogspot.com/_tKqD3VvR8CI/TSYSZNoocVI/AAAAAAAABKM/PELGWLCn1OA/s400/Silverlight_+Image_Carousel_3dAlbum_1.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The original code is &lt;a href="http://www.shinedraw.com/animation-effect/flash-vs-silverlight-image-carousel/"&gt;here&lt;/a&gt; by &lt;span class="fn"&gt;&lt;a href="http://twitter.com/terence410"&gt; Shine Draw&lt;/a&gt; &lt;/span&gt;then modified and enhanced by &lt;a href="http://twitter.com/ahmedessawy"&gt;me&lt;/a&gt;.&lt;br /&gt;The following are new features which I have added: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Added Slider bar to view all items by scrolling.&lt;/li&gt;&lt;li&gt; Linked the (Slider) with mouse wheel.&lt;/li&gt;&lt;li&gt;Added a subject label related to every selected Item.&amp;nbsp; &lt;/li&gt;&lt;li&gt;Added the ablilty to move next by selecting an arbitrary item (mouse click to the corresponding item only).&lt;/li&gt;&lt;li&gt;Added a projection effect to every non-selected items.&lt;/li&gt;&lt;li&gt;Added control panel to setup metadata on running time.&amp;nbsp; &lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;Here is &lt;a href="https://sites.google.com/site/ahmedessawy2/ImageCarousel_v2_FCI-HBlog.rar"&gt;the source code&lt;/a&gt; with comments.&lt;br /&gt;All what you need is &lt;a href="http://www.microsoft.com/express/Downloads/"&gt; Visual Studio &lt;/a&gt;2008 or 2010 and &lt;a href="http://www.microsoft.com/silverlight/"&gt;Silverlight &lt;/a&gt;3 or more (&lt;a href="http://www.microsoft.com/getsilverlight/Get-Started/Install/Default.aspx"&gt;click here to get Sliverlight&lt;/a&gt;).&lt;br /&gt;&lt;div style="color: red;"&gt;Note:&amp;nbsp;&lt;/div&gt;No need to setup &lt;a href="http://www.microsoft.com/expression/products/blend_overview.aspx"&gt;Microsoft Expression Blend&lt;/a&gt;, all effects are mathematics behind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-5054677640028187941?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/5054677640028187941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=5054677640028187941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5054677640028187941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5054677640028187941'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2011/01/silverlight-image-carousel3d-album.html' title='Silverlight: Image Carousel(3d Album)'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tKqD3VvR8CI/TSYSZNoocVI/AAAAAAAABKM/PELGWLCn1OA/s72-c/Silverlight_+Image_Carousel_3dAlbum_1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-8145151535535359426</id><published>2010-12-29T17:01:00.000+02:00</published><updated>2010-12-29T17:01:27.301+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Finding &amp; Resolving Mysql Connection Leaks</title><content type='html'>As the title imply; we need to know why Mysql runs out of connections even if it may be configured to handle much more connections. First, most leaks come from the code, check for unclosed connections before anything. If you are using JPA/Hibernate - which is my case - you use a data source either managed by the container as a JNDI resource or a simple component used by the application.&lt;br /&gt;&lt;br /&gt;In my application I had a lot of time debugging why mysql runs out of connections and finally I did the following to know the cause:&lt;br /&gt;&lt;br /&gt;1- &lt;b&gt;Limit the running features of your app:&lt;/b&gt; for example; I ran only the scheduled jobs of the system to maintain a clear log and also monitor the DBMS health slowly. Let your app run for a while till the problem happen or a suitable time has passed.&lt;br /&gt;2- &lt;b&gt;Mysql Admin: &lt;/b&gt;see the health of the DBMS from the "&lt;i&gt;mysql admin&lt;/i&gt;" tool, if you find the connection usage rising up then we have a connection leak problem for sure.&lt;br /&gt;3- &lt;b&gt;show processlist: &lt;/b&gt;in the mysql command line tool, type "&lt;i&gt;show processlist;&lt;/i&gt;". Notice the "Command" column of the results in front of you if you find a lot of connections marked as "&lt;i&gt;Sleep&lt;/i&gt;" then we are on the right track for the disaster as sooner or later the connection pool will run out of connections.&lt;br /&gt;4- &lt;b&gt;wait_timeout: &lt;/b&gt;The "wait_timeout" variable tells Mysql when to consider an unused connection&amp;nbsp;available for termination.&amp;nbsp;for me, that was the problem, a default setting for the DB server not suitable for production or heavily loaded environments. Open the system variables tab and find the "wait_timeout" variable and check its value - default is 28880 seconds -, change this to a much lower value say 15 for example.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What caused the sleeping connections?&lt;/b&gt;&lt;br /&gt;A data source may not close the connection after communicating with the DBMS for future use purposes, so, it puts the connection in a sleeping mode and it is the&amp;nbsp;responsibility of the DBMS to terminate it as needed. What we have done in the last step is making sure the DBMS does its part in the play.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-8145151535535359426?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/8145151535535359426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=8145151535535359426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8145151535535359426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8145151535535359426'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/12/finding-resolving-mysql-connection.html' title='Finding &amp; Resolving Mysql Connection Leaks'/><author><name>Youssef Mamdouh</name><uri>http://www.blogger.com/profile/04917580493499832141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp1.blogger.com/__Gm5_q7g9WU/R7cGWLdwWeI/AAAAAAAAAHA/FMle7CHZbis/S220/n706360321_6498.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-6381889010472714959</id><published>2010-09-20T12:04:00.006+03:00</published><updated>2010-09-20T12:35:11.305+03:00</updated><title type='text'>Book Review: JasperReports 3.6.0 Development Cookbook</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://www.packtpub.com/sites/default/files/0769_MockupCover_Raw_01.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 215px; height: 265px;" src="https://www.packtpub.com/sites/default/files/0769_MockupCover_Raw_01.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link style="font-family: verdana;" rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link style="font-family: verdana;" rel="themeData" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link style="font-family: verdana;" rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;AR-SA&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-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;} a:link, span.MsoHyperlink 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:purple; 	mso-themecolor:followedhyperlink; 	text-decoration:underline; 	text-underline:single;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-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;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;    &lt;p  style="text-align: justify; font-family: verdana;font-family:verdana;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;    Two&lt;/span&gt; years ago I wrote a series of quick start articles &lt;a href="http://fci-h.blogspot.com/2008/06/java-reporting-jasperreports.html"&gt;&lt;u&gt;here&lt;/u&gt;&lt;/a&gt; that introduce java reports development through one of the most popular open source library JasperReports. Back then the main motivation for writing such articles was the lack of good learning materials whether blogposts, books or tutorials. I remember struggling with the documentation and digging the web looking for the best practices and avoiding the unknown limitations, it formed a drawback for using the well-known open source library for technical architects who need an assisting quick reference for decision making either to choose JasperReports or another provider according to their instant needs and also it have been a real pain for frontline developers to consider more time and effort navigating the entire web looking for a good learning reference and a professional best practices guide.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-family: verdana;"&gt;  &lt;/div&gt;&lt;p  style="text-align: left; font-family: verdana;font-family:verdana;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;Fortunately, that is a past. Recently &lt;a href="https://www.packtpub.com/authors/profiles/bilal-siddiqui"&gt;Bilal Siddiqui&lt;/a&gt; has published a new book on the topic &lt;a href="https://www.packtpub.com/jasperreports-3-5-2-development-cookbook/book" target="_blank"&gt;JasperReports 3.6.0 Development Cookbook&lt;/a&gt; which I’ve been reviewing through the last week and found it could be useful to share my impressions.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p  style="text-align: left; font-family: verdana;font-family:verdana;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;The book consists of 9 chapters; could be divided into two parts, the first one contains three chapters covers the basics of report designing using iReport v 3.6.0 through a step-by-step guiding and a dedicated chapter for enhancing the look and feel. The second part addresses the best practices for report developing e.g. using multiple data sources, Crosstabs and graphs; and finally a chapter for wrappers and consuming external swing applications as data source.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;  &lt;/div&gt;&lt;p style="text-align: left; font-family: verdana;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;Generally, the book is useful for the beginners either designers or developers, it provides the kick start and minimize the learning time and effort to the minimum by guiding you throughout the report designing, development, testing and integrating phases and addressing the most common problems and their solutions. However, the weak points of the book are the same reasons of its strength that it scratches the surface for a better beginner look but lacks of more advanced topics, e.g. row JRXML manipulation for more flexibility, performance best practice specially working with huge datasets and caching sub-reports, also &lt;span style=""&gt; &lt;/span&gt;integrating reports in web application could be useful.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-6381889010472714959?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/6381889010472714959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=6381889010472714959' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/6381889010472714959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/6381889010472714959'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/09/book-review-jasperreports-360.html' title='Book Review: JasperReports 3.6.0 Development Cookbook'/><author><name>Hossam Sadik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-1225754702820196523</id><published>2010-09-15T14:25:00.001+03:00</published><updated>2010-09-15T14:25:47.573+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Q and A'/><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL'/><title type='text'>SQLServer : How to know the last modified table in your DB</title><content type='html'>Here is simple T-SQL tip but great to be known. It was part of my task today :). It was making auditing tables for tables created after specific date.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;Select &lt;/span&gt;* &lt;span style="color: blue;"&gt;from &lt;/span&gt;&lt;span style="color: #38761d;"&gt;sys.objects&lt;/span&gt; &lt;span style="color: blue;"&gt;where &lt;/span&gt;type_desc= '&lt;span style="color: red;"&gt;USER_TABLE&lt;/span&gt;' &lt;span style="color: blue;"&gt;ORDER BY&lt;/span&gt; modify_date &lt;span style="color: blue;"&gt;desc&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;type_desc&lt;/b&gt; : is object type in SQL and here we wrote '&lt;span style="color: red;"&gt;USER_TABLE&lt;/span&gt;' as we need tables created by user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-1225754702820196523?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/1225754702820196523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=1225754702820196523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1225754702820196523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1225754702820196523'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/09/sqlserver-how-to-know-your-last.html' title='SQLServer : How to know the last modified table in your DB'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-3374122041842651555</id><published>2010-09-13T13:54:00.001+03:00</published><updated>2010-09-13T13:55:15.020+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Q and A'/><title type='text'>Do people in non-English-speaking countries code in English?</title><content type='html'>&lt;p&gt;I was reading a &lt;a href="http://programmers.stackexchange.com/questions/1483/do-people-in-non-english-speaking-countries-code-in-english" target="_blank"&gt;question&lt;/a&gt; with the same name on Stack-Exchange Beta site for Non-programmer-related questions (aka &lt;a href="http://programmers.stackexchange.com" target="_blank"&gt;Programmers&lt;/a&gt;) when I came across this &lt;a href="http://programmers.stackexchange.com/questions/1483/do-people-in-non-english-speaking-countries-code-in-english/3165#3165" target="_blank"&gt;answer&lt;/a&gt; posted by a (probably Ukrainian) developer named Igor.&lt;/p&gt;  &lt;p&gt;Accompanied by an earlier attempt by a colleague at work to write an &lt;em&gt;enum&lt;/em&gt; in Arabic, I tried to write this piece of code:&lt;/p&gt; &lt;script src="http://gist.github.com/577099.js"&gt; &lt;/script&gt;  &lt;p&gt;Strangely enough it compiled and even ran showing the expected output (10)!! Note, the order above of the 2nd &amp;amp; 3rd line is mingled due to RTL issues in Gist. Visual Studio will show it in the right order (or at least, a more readable order for me, copy it &amp;amp; past it in your IDE to know how it looks).&lt;/p&gt;  &lt;p&gt;Off course, I’m pretty convinced that this isn’t the best practice you should follow, (check &lt;a href="http://programmers.stackexchange.com/questions/1483/do-people-in-non-english-speaking-countries-code-in-english/1507#1507" target="_blank"&gt;my answer&lt;/a&gt; to the same question). Yet, I find this really hilarious! As a matter of fact, I took the claim that it’s bad practice too much for granted to the extent that I’ve never even tired to write such a strange piece of code :D&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-3374122041842651555?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/3374122041842651555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=3374122041842651555' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3374122041842651555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3374122041842651555'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/09/do-people-in-non-english-speaking.html' title='Do people in non-English-speaking countries code in English?'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-4836325580802232122</id><published>2010-09-08T20:18:00.001+02:00</published><updated>2010-09-09T17:33:59.265+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Does Google Instant really ruin SEO?</title><content type='html'>&lt;p&gt;I was just reading an &lt;a href="http://www.steverubel.com/google-instant-makes-seo-irrelevant" target="_blank"&gt;article&lt;/a&gt; I found on &lt;a href="http://twitter.com/hjarche/status/23933276680" target="_blank"&gt;twitter&lt;/a&gt; about how &lt;a href="http://www.google.com/instant" target="_blank"&gt;Google Instant&lt;/a&gt; (the new Google search enhancement to be rolled out to all users soon) will ruin Search Engine Optimization (SEO) which I find kinda wrong.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;First:&lt;/strong&gt; SEO is a way to aid (content providers to provide ways to) internet users to find their way to their content. ie, it’s a mean to an end, not an end! So if Google (or Bing, etc) added new features to enhance the user experience (UX) and personalize search results that might break SEO, SEO should find a way to adapt. Killing innovation is not an option :)&lt;/p&gt;  &lt;p&gt;SEO is not about deceiving people to direct them to your content, whether it’s relevant or not!!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Second:&lt;/strong&gt; &amp;amp; that’s the main point here: As far as I can see, Google Instant is not ruining SEO as Steve claims. Search results are still gonna be shown as the good old days, the only main difference is that you won’t have to click ENTER after typing your search words. You can get instant feedback about where your search results meet your expectations or not. So if content-providers did their SEO job right, their content will show up according to the relevance of their content to the typed keywords.&lt;/p&gt;  &lt;p&gt;So, what do you think? correct me if you can see it in any other way..&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update: &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I find this tweet by @&lt;a href="http://twitter.com/Bashmohandes" target="_blank"&gt;Bashmohandes&lt;/a&gt; more valid though: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Google Instant is cool, but I worry about advertisers, as some of their impression budgets are used while the user didn't show enough intent&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-4836325580802232122?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/4836325580802232122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=4836325580802232122' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4836325580802232122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4836325580802232122'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/09/does-google-instant-really-ruin-seo.html' title='Does Google Instant really ruin SEO?'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-5967704936216253361</id><published>2010-07-21T22:16:00.004+03:00</published><updated>2010-07-22T01:27:13.803+03:00</updated><title type='text'>FCIH Initiative launch</title><content type='html'>&lt;div align="center" dir="ltr" style="direction: ltr; text-align: center;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: #0070c0; font-size: 14pt; font-weight: bold; line-height: 115%;"&gt;&lt;span style="color: black; font-size: 100%;"&gt;Finally we are glad to announce the launch of&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #0070c0; font-size: 14pt; line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" dir="ltr" style="direction: ltr; font-weight: bold; text-align: center;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 180%;"&gt;&lt;span style="color: #0070c0; font-size: 14pt; line-height: 115%;"&gt;FCIH Initiative Program&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" dir="ltr" style="direction: ltr; font-weight: bold; text-align: center;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="color: black;"&gt;&lt;span style="line-height: 115%;"&gt;On Next Sunday 25/7/2010 &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="line-height: 115%;"&gt;at FCI-Helwan&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="color: black; direction: ltr; text-align: left;"&gt;&lt;span style="font-size: 12pt; line-height: 115%;"&gt;&lt;span style="font-family: Calibri;"&gt;Join our great event; Join a group of carefully selected sessions highly needed in your practical life.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="direction: ltr; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 13pt; line-height: 115%;"&gt;&lt;span style="font-family: Calibri;"&gt;Event Schedule:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="left" dir="ltr"&gt;&lt;table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border: medium none;"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td colspan="3" style="border: 1pt solid black; color: transparent; padding: 0cm 5.4pt;" valign="top" width="518"&gt;&lt;div dir="ltr" style="background: none repeat scroll 0% 0% white;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Day 1 [Sunday: 25-7-2010]: Let's get started&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;10:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;10:30&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Orientation&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;10:30&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;12:30   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Object Oriented Blocks&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;12:30&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;01:00   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Break&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;01:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;02:30   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Good Code&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;02:30&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;03:00   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Break&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;03:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;04:00   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;English&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;for Business&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="3" style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="518"&gt;&lt;div dir="ltr" style="background: none repeat scroll 0% 0% white;"&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 11pt;"&gt;Day 2 [Monday: 26-7-2010]: Develop your path&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #1f497d; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;10:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;11:30&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Web Development A – Z&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;11:30&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;12:00  &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Break&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;12:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;02:00   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Software Quality Engineering &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;02:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;02:30   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Break&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;02:30&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;04:00   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;CV Writing and interviewing skills  &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="3" style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="518"&gt;&lt;div dir="ltr" style="background: none repeat scroll 0% 0% white;"&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 11pt;"&gt;Day 3 [Wednesday: 28-7-2010]: IT, World of Endless Choices&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;10:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;11:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;&lt;span style="font-family: Calibri;"&gt;GIS: Geographic information system&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;11:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;12:00  &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;&lt;span style="font-family: Calibri;"&gt;CMS: Content Management System&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;12:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;12:30   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Break&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;02:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;02:30   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;&lt;span style="font-family: Calibri;"&gt;BI: Business Intelligence&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;02:30&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;03:30   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;RIA: Rich Internet Application&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="3" style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="518"&gt;&lt;div dir="ltr" style="background: none repeat scroll 0% 0% white;"&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 11pt;"&gt;Day 4 [Thursday: 29-7-2010]: Into the business world&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;10:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;01:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;&lt;span style="font-family: Calibri;"&gt;Agile Software Development&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;01:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;01:30  &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;&lt;span style="font-family: Calibri;"&gt;Break&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;01:30&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;3:00   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Understanding Business Analysis&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;03:00&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;04:30   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;&lt;span style="font-family: Calibri;"&gt;Global / Local IT Market&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td style="border-color: rgb(240, 240, 240) black black; border-style: none solid solid; border-width: medium 1pt 1pt; color: transparent; padding: 0cm 5.4pt;" valign="top" width="92"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;04:30&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="95"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;05:00   &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); border-style: none solid solid none; border-width: medium 1pt 1pt medium; color: transparent; padding: 0cm 5.4pt;" valign="top" width="331"&gt;&lt;div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Closing&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: #1f497d; font-size: 12pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div dir="ltr" style="direction: ltr; text-align: left;"&gt;&lt;span style="color: #1f497d; font-size: 12pt; line-height: 115%;"&gt;&lt;span style="font-family: Calibri;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="direction: ltr; text-align: left;"&gt;&lt;span style="color: #1f497d; font-size: 12pt; line-height: 115%;"&gt;&lt;span style="font-family: Calibri;"&gt;Don't miss the chance…..and don't forget our date  "&lt;span style="font-weight: bold;"&gt;25/7/2010&lt;/span&gt;" at &lt;span style="font-weight: bold;"&gt;FCI-Helwan&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="direction: ltr; text-align: left;"&gt;&lt;span style="color: #1f497d; font-size: 12pt; line-height: 115%;"&gt;&lt;span style="font-family: Calibri;"&gt;Waiting you there :)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="direction: ltr; text-align: left;"&gt;&lt;span style="color: #1f497d; font-size: 12pt; line-height: 115%;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div dir="ltr" style="direction: ltr; text-align: left;"&gt;&lt;span style="color: #1f497d; font-size: 12pt; line-height: 115%;"&gt;&lt;span style="font-family: Calibri;"&gt;Yours,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="direction: ltr; text-align: left;"&gt;&lt;span style="color: #1f497d; font-size: 12pt; line-height: 115%;"&gt;&lt;span style="font-family: Calibri;"&gt;FCIH Initiative Team&lt;/span&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/27659513-5967704936216253361?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/5967704936216253361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=5967704936216253361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5967704936216253361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5967704936216253361'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/07/fcih-initiative-launch.html' title='FCIH Initiative launch'/><author><name>Hossam Sadik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-1731268413104789531</id><published>2010-07-21T18:26:00.002+03:00</published><updated>2010-07-21T18:32:19.273+03:00</updated><title type='text'>Adding arabic letters jeem, peh, and veh to keyboard layout in Linux</title><content type='html'>The letters&lt;div&gt; چ&lt;/div&gt;&lt;div&gt;پ&lt;/div&gt;&lt;div&gt;ڤ&lt;/div&gt;&lt;div&gt;Do not come on the standard layout of arabic keyboard on linux. It is easy to add them.&lt;/div&gt;&lt;div&gt;You will need to edit /usr/share/X11/xkb/symbols/ara and log-out and login again.&lt;/div&gt;&lt;div&gt;The need to edit only the lines corresponding to they keys you'll attach those letters to. I chose the key corresponding to&lt;/div&gt;&lt;div&gt;ج&lt;/div&gt;&lt;div&gt;ب&lt;/div&gt;&lt;div&gt;ف&lt;/div&gt;&lt;div&gt;(naturally).&lt;/div&gt;&lt;div&gt;The 3 modified lines are:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;div&gt;    key &lt;ad05&gt; {  [      Arabic_feh,     0x100fef9 , Arabic_veh       ]     };&lt;/div&gt;&lt;div&gt;    key &lt;ad11&gt; {  [     Arabic_jeem, less , Arabic_tcheh  ]     };&lt;/div&gt;&lt;div&gt;    key &lt;ac04&gt; {  [      Arabic_beh, bracketleft, Arabic_peh    ]     };&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Notice that the new characters are in the third position. The first position is the letter typed when you press the key. The second position is the letter if you were pressing shift, and the third one is the letter if you were pressing the 3rd level selector key. To know which key you have (or to change it to a more convenient one) to go System&gt;Preferences&gt;Keyboard, Mappings tab, click on "Options" then click "Key to choose 3rd leve" then choose whichever key you prefer.&lt;/div&gt;&lt;div&gt;Enjoy your new characters :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-1731268413104789531?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/1731268413104789531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=1731268413104789531' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1731268413104789531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1731268413104789531'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/07/adding-arabic-letters-jeem-peh-and-veh.html' title='Adding arabic letters jeem, peh, and veh to keyboard layout in Linux'/><author><name>Mohammad Alaggan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/-GRdIwXAujpA/TtsetfBGQ6I/AAAAAAAAC7E/GQhFISn43mQ/s1600/n552022084_44018_9644.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-7386699355928264468</id><published>2010-07-15T23:34:00.002+03:00</published><updated>2010-07-15T23:44:48.889+03:00</updated><title type='text'>FCIH Initiative.. Postponement announcement</title><content type='html'>&lt;span style="font-family: georgia;"&gt;Hello all,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;           Because of some out-of-hand circumstances, we are sorry to announce that the big event is going to be postponed for few days. We are going to update you with the new dates along with the complete  schedule within few days isA.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;Sorry for any inconvenience,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;FCIH Initiative team.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-7386699355928264468?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/7386699355928264468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=7386699355928264468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/7386699355928264468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/7386699355928264468'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/07/fcih-initiative-postponement.html' title='FCIH Initiative.. Postponement announcement'/><author><name>Hossam Sadik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-6973827011244892146</id><published>2010-07-10T15:24:00.001+03:00</published><updated>2010-07-10T15:31:38.541+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>Creating a simple Open Search Provider/Plug-in</title><content type='html'>&lt;p&gt;Yesterday, I needed to check/search &lt;a href="http://delicious.com/m.shady" target="_blank"&gt;my delicious&lt;/a&gt; bookmarks more than once. I then realized that delicious have its a search plug-in as a part of a tool bar (along with other &lt;a href="http://delicious.com/help/tools" target="_blank"&gt;bookmarking tools&lt;/a&gt;, few search tools, though), which -I guess- loads all your bookmarks to browser &amp;amp; make them available for search.&lt;/p&gt;  &lt;p&gt;As I’m not so much into too much plug-ins, specially if they load lots of data (in contradiction to &lt;a href="http://dilbert.com/strips/comic/2010-07-06/" target="_blank"&gt;Pointy-haired Boss&lt;/a&gt;) , not to mention that I won’t need bookmarks when I’m offline, anyway, I decided I should create my search provider.&lt;/p&gt;  &lt;h2&gt;Creating the provider:&lt;/h2&gt;  &lt;p&gt;Here’s an example:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;      &lt;br /&gt;&amp;lt;OpenSearchDescription xmlns=&amp;quot;&lt;a href="http://a9.com/-/spec/opensearch/1.1/&amp;quot;"&gt;http://a9.com/-/spec/opensearch/1.1/&amp;quot;&lt;/a&gt;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;ShortName&amp;gt;My Delicious&amp;lt;/ShortName&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;Description&amp;gt;Search Shady’s Delicious Bookmarks&amp;lt;/Description&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;Tags&amp;gt;Delicious Bookmarks Search Favorites&amp;lt;/Tags&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;Image width=&amp;quot;16&amp;quot; height=&amp;quot;16&amp;quot; type=&amp;quot;image/x-icon&amp;quot;&amp;gt;&lt;a title="http://delicious.com/favicon.ico" href="http://delicious.com/favicon.ico"&gt;http://delicious.com/favicon.ico&lt;/a&gt;&amp;lt;/Image&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;Url type=&amp;quot;text/html&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; template=&amp;quot;&lt;a href="http://delicious.com/search?p={searchTerms}&amp;amp;amp;context=userposts|m.shady|&amp;amp;amp;lc=1" target="_blank"&gt;http://delicious.com/search?p={searchTerms}&amp;amp;amp;context=userposts|m.shady|&amp;amp;amp;lc=1&lt;/a&gt;&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;lt;/OpenSearchDescription&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Away from the fact that I badly need a WYSIWYG code hi-lighter, let’s check that XML. First the &lt;strong&gt;ShortName&lt;/strong&gt; which appears in your search box, something like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_4401ryJ0di8/TDhmcytlHtI/AAAAAAAAAhg/SXiOjkOZVIE/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Click to Enlarge" border="0" alt="Click to Enlarge" src="http://lh4.ggpht.com/_4401ryJ0di8/TDhmfV5uXSI/AAAAAAAAAhk/qx6p1jGJtz4/image_thumb%5B2%5D.png?imgmax=800" width="244" height="34" /&gt;&lt;/a&gt; &lt;strong&gt;Description&lt;/strong&gt; and &lt;strong&gt;Tags&lt;/strong&gt; are obvious, &amp;amp; I think optional too.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Image&lt;/strong&gt; is the small icon that appear beside when you select your provider (check the pic above again). You can either supply it as a URL to an image file (usually .ico or .png) or you can replace it with the base 64 string of the image (though I wasted quite sometime to make that work), like:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;Image width=&amp;quot;16&amp;quot; height=&amp;quot;16&amp;quot;&amp;gt;data:image/x-icon;base64,AAA…AAA==&amp;lt;/Image&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Finally, &lt;strong&gt;URL&lt;/strong&gt; note that I’m using &lt;em&gt;{SearchTerms}&lt;/em&gt; to pass the string typed in the search box. You can send other &lt;a href="http://www.opensearch.org/Specifications/OpenSearch/Extensions/Parameter/1.0" target="_blank"&gt;parameters&lt;/a&gt; to your search page. You might want add another URL for suggestions, here I’m only providing the search URL.&lt;/p&gt;  &lt;h2&gt;Using the provider:&lt;/h2&gt;  &lt;p&gt;To add the provider to your browser (as far as I’m concerned it works fine for Firefox &amp;amp; IE) you have one of two options:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Adding it as a suggested search provider&lt;/strong&gt;: This can be done by adding a single line in your page &lt;strong&gt;&amp;lt;Head&amp;gt;&lt;/strong&gt; tag, note that the attribute &lt;strong&gt;title&lt;/strong&gt; in the below tag refers to the name appearing in the list as [Add “&lt;em&gt;title&lt;/em&gt;”], check the image below the tag.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;link rel=&amp;quot;search&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; type=&amp;quot;application/opensearchdescription+xml&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; href=&amp;quot;&lt;a href="http://localhost/SearchProviders/delicious.xml&amp;quot;"&gt;http://localhost/SearchProviders/delicious.xml&amp;quot;&lt;/a&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; title=&amp;quot;Delicious&amp;quot; /&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_4401ryJ0di8/TDhmfxpLs_I/AAAAAAAAAho/TM4OwGEIhZI/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Click to Enlarge" border="0" alt="Click to Enlarge" src="http://lh6.ggpht.com/_4401ryJ0di8/TDhmgpqj08I/AAAAAAAAAhs/_N1ESu34ioM/image_thumb%5B3%5D.png?imgmax=800" width="176" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Using JavaScript to add the provider&lt;/strong&gt;: The other available option is to add the provider using scripting, here’s an eg of how you can do that:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;a href=&amp;quot;#&amp;quot; onclick=&amp;quot;window.external.AddSearchProvider('&lt;a href="http://localhost/SearchProviders/delicious.xml')&amp;quot;"&gt;http://localhost/SearchProviders/delicious.xml')&amp;quot;&lt;/a&gt;&amp;gt;Add delicious Search to your browser&amp;lt;/a&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Clicking a link like the one above will pop up a windows asking if you want to add the search provider.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;: &lt;a title="http://www.opensearch.org" href="http://www.opensearch.org"&gt;http://www.opensearch.org&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-6973827011244892146?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/6973827011244892146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=6973827011244892146' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/6973827011244892146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/6973827011244892146'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/07/creating-simple-open-search.html' title='Creating a simple Open Search Provider/Plug-in'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_4401ryJ0di8/TDhmfV5uXSI/AAAAAAAAAhk/qx6p1jGJtz4/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-7453052057726522031</id><published>2010-07-09T01:42:00.001+03:00</published><updated>2010-07-10T15:37:31.023+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Changing regional settings for System accounts (including ASPNET) in Windows 7</title><content type='html'>&lt;p&gt;One of the small issues I faced while switching my development machine to windows 7 was a bug/exception in an application I was working on in parsing date format.&lt;/p&gt;  &lt;p&gt;After switching my regional settings to the “expected” format, I still got the same exception. After playing a little with the regional settings, I realized that I was switching only my account date format, not the whole machine's date format. To push those settings to other system accounts (like ASPNET, etc), I did the following steps:&lt;/p&gt;  &lt;p&gt;After setting your your account regional settings, switch to “Administrative” tab:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4401ryJ0di8/TDZULRXQPGI/AAAAAAAAAhA/F-m_ILvOUtM/s1600-h/clip_image001%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Click to Enlarge" border="0" alt="Click to Enlarge" src="http://lh5.ggpht.com/_4401ryJ0di8/TDZUMftVbFI/AAAAAAAAAhE/Y8HM1GxFbCk/clip_image001_thumb%5B1%5D.png?imgmax=800" width="216" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;From “Welcome screen and new user accounts”, click “Copy setting”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_4401ryJ0di8/TDZUOA2d_eI/AAAAAAAAAhI/3X7pgRokPmg/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Click to Enlarge" border="0" alt="Click to Enlarge" src="http://lh5.ggpht.com/_4401ryJ0di8/TDZUPfc5KYI/AAAAAAAAAhM/zwReGQb0Ywo/image_thumb%5B1%5D.png?imgmax=800" width="192" height="244" /&gt;&lt;/a&gt;Make sure “Welcome screen and system accounts”&amp;#160; check box is checked, press ok, and Voila!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-7453052057726522031?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/7453052057726522031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=7453052057726522031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/7453052057726522031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/7453052057726522031'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/07/changing-regional-settings-for-system.html' title='Changing regional settings for System accounts (including ASPNET) in Windows 7'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_4401ryJ0di8/TDZUMftVbFI/AAAAAAAAAhE/Y8HM1GxFbCk/s72-c/clip_image001_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-4908158741808954118</id><published>2010-07-05T15:15:00.009+03:00</published><updated>2010-07-05T16:40:09.075+03:00</updated><title type='text'>FCIH Initiative -- Students to Business</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a name="129a2d261e12c4e4_129a2cfc834047db_OLE_LINK2"&gt;&lt;b&gt;&lt;span style="line-height: 115%; font-family: 'Cambria','serif'; color: rgb(84, 141, 212); font-size: 18pt;" dir="ltr"&gt;FCIH Initiative&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="line-height: 115%; font-family: 'Cambria','serif'; color: rgb(84, 141, 212); font-size: 12pt;" dir="ltr"&gt; …..&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="line-height: 115%; font-family: 'Cambria','serif'; color: rgb(84, 141, 212); font-size: 12pt;" dir="ltr"&gt; Don't wait the  chance, Create It&lt;/span&gt;&lt;/b&gt;&lt;/div&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr"&gt;Thinking about your future? Worried about your career?&lt;/span&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" lang="AR-EG"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="color: rgb(112, 48, 160);" dir="ltr"&gt;Thinking that you are far  away from real market life and limited by your academic life?&lt;/span&gt;&lt;span style="color: rgb(112, 48, 160);" lang="AR-EG"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="line-height: 115%; color: rgb(112, 48, 160); font-size: 10pt;" dir="ltr"&gt;Want to be professional but don't know where to start?&lt;/span&gt;&lt;span style="line-height: 115%; color: rgb(112, 48, 160); font-size: 10pt;" lang="AR-EG"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr"&gt;Interested to know how people work and deliver projects?&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr"&gt;Need to gain experience in market? Need to know about Egyptian  IT market?&lt;/span&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" lang="AR-EG"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(227, 108, 10); font-size: 13pt;" dir="ltr"&gt;FCIH Initiative is now here for you&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="color: rgb(112, 48, 160);" dir="ltr"&gt;Our goal is &lt;b&gt;you&lt;/b&gt;,  preparing for &lt;b&gt;you&lt;/b&gt;, planning for &lt;b&gt;you&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(112, 48, 160);" lang="AR-EG"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr"&gt;Build your own market and Make companies sigh for you&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr"&gt;This summer, we'll be together to make your dreams come true&lt;/span&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" lang="AR-EG"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="line-height: 115%; color: rgb(112, 48, 160); font-size: 13pt;" dir="ltr"&gt;To bridge your academic study to your career&lt;/span&gt;&lt;span style="line-height: 115%; color: rgb(112, 48, 160); font-size: 13pt;" lang="AR-EG"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr"&gt;Plan for your career right now&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr"&gt;Meet your older colleagues and learn from them&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(227, 108, 10); font-size: 14pt;" dir="ltr"&gt;Join us and enjoy:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(227, 108, 10); font-size: 14pt;" dir="ltr"&gt;Trainings – Research – Business Experience – Technical  Knowledge – English Club - and more….&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(227, 108, 10); font-size: 16pt;" lang="AR-EG"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 14pt;" lang="AR-EG"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(79, 98, 40); font-size: 14pt;" dir="ltr"&gt;FCIH initiative program will start on 17-7, so don't miss the  chance.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: left;" dir="rtl" align="right"&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" dir="ltr"&gt;We're planning to provide: &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" lang="AR-EG"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"&gt;&lt;span style="font-family: Symbol; color: rgb(0, 112, 192);"&gt;&lt;span&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 112, 192);"&gt;Technical sessions&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"&gt;&lt;span style="font-family: Symbol; color: rgb(0, 112, 192);"&gt;&lt;span&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 112, 192);"&gt;Training program in 3 tracks (java,  .net, and PHP)&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"&gt;&lt;span style="font-family: Symbol; color: rgb(0, 112, 192);"&gt;&lt;span&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 112, 192);"&gt;Sessions talking about market, and  adding to your personal skills.&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"&gt;&lt;span style="font-family: Symbol; color: rgb(0, 112, 192);"&gt;&lt;span&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 112, 192);"&gt;Program for those who are interested in  research.&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"&gt;&lt;span style="font-family: Symbol; color: rgb(0, 112, 192);"&gt;&lt;span&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 112, 192);"&gt;Soft skills program.&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"&gt;&lt;span style="font-family: Symbol; color: rgb(0, 112, 192);"&gt;&lt;span&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 112, 192);"&gt;English club.&lt;/span&gt;&lt;/p&gt; &lt;p dir="rtl"&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(227, 108, 10); font-size: 10pt;" dir="ltr"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;b&gt;&lt;span style="color: rgb(227, 108, 10);" dir="ltr"&gt;Now, don't worry about the  future...Together we'll build a better tomorrow&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: left; margin-bottom: 0pt;" dir="rtl" align="right"&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: black; font-size: 13pt;" dir="ltr"&gt;Contacts&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: black; font-size: 12pt;" dir="ltr"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: black; font-size: 12pt;" lang="AR-EG"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: left; margin-bottom: 0pt;" dir="rtl" align="right"&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" dir="ltr"&gt;Mail&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: rgb(15, 36, 62);" dir="ltr"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: red;" dir="ltr"&gt; &lt;/span&gt;&lt;/b&gt;&lt;a href="mailto:FCIH.Initiative@fcih.net" target="_blank"&gt;&lt;b&gt;&lt;span dir="ltr"&gt;FCIH.Initiative@fcih.net&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="color: red;" dir="ltr"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: left; margin-bottom: 0pt;" dir="rtl" align="right"&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" dir="ltr"&gt;Website&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: rgb(15, 36, 62);" dir="ltr"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: red;" dir="ltr"&gt; &lt;/span&gt;&lt;/b&gt;&lt;a href="http://www.helwan.edu.eg:90/fcih/details.asp?id=161" target="_blank"&gt;&lt;b&gt;&lt;span dir="ltr"&gt;http://www.helwan.edu.eg:90/&lt;wbr&gt;fcih/details.asp?id=161&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="color: red;" lang="AR-EG"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;b&gt;&lt;span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" dir="ltr"&gt;FaceBook&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: rgb(15, 36, 62);" dir="ltr"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" dir="ltr"&gt;Event&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: rgb(15, 36, 62);" dir="ltr"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: red;" dir="ltr"&gt; &lt;/span&gt;&lt;/b&gt;&lt;a href="http://www.facebook.com/#%21/event.php?eid=128813070490801&amp;amp;ref=mf" target="_blank"&gt;&lt;b&gt;&lt;span dir="ltr"&gt;http://www.facebook.com/#!/&lt;wbr&gt;event.php?eid=128813070490801&amp;amp;&lt;wbr&gt;ref=mf&lt;/span&gt;&lt;/b&gt;&lt;/a&gt; &lt;p style="text-align: left; margin-bottom: 0pt;" dir="rtl" align="right"&gt;&lt;b&gt;&lt;span  lang="AR-EG" style="color:red;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="text-align: center;" dir="rtl" align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tKqD3VvR8CI/TDHN0H-ZVXI/AAAAAAAABEI/-IHjLGTgVkI/s1600/image001.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 397px; height: 564px;" src="http://1.bp.blogspot.com/_tKqD3VvR8CI/TDHN0H-ZVXI/AAAAAAAABEI/-IHjLGTgVkI/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5490395716118992242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="text-align: left;" dir="rtl" align="right"&gt;&lt;span style="line-height: 115%;font-size:9pt;" dir="ltr" &gt; &lt;/span&gt;&lt;/p&gt;&lt;div class="hm"&gt; &lt;p dir="rtl"&gt;&lt;span dir="ltr"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="hm"&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/27659513-4908158741808954118?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/4908158741808954118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=4908158741808954118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4908158741808954118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4908158741808954118'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/07/fcih-initiative-students-to-business.html' title='FCIH Initiative -- Students to Business'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tKqD3VvR8CI/TDHN0H-ZVXI/AAAAAAAABEI/-IHjLGTgVkI/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-5970591352829365743</id><published>2010-07-03T21:50:00.001+03:00</published><updated>2010-07-03T21:51:55.233+03:00</updated><title type='text'>Customizing your eclipse download</title><content type='html'>In this site (&lt;a href="http://ondemand.yoxos.com/geteclipse/start"&gt;http://ondemand.yoxos.com/geteclipse/start&lt;/a&gt;) you choose which plugins you want to download you eclipse version with; as opposed to downloading a predefined standard template and customizing it later after you install it. Enjoy :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-5970591352829365743?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/5970591352829365743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=5970591352829365743' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5970591352829365743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5970591352829365743'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/07/customizing-your-eclipse-download.html' title='Customizing your eclipse download'/><author><name>Mohammad Alaggan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/-GRdIwXAujpA/TtsetfBGQ6I/AAAAAAAAC7E/GQhFISn43mQ/s1600/n552022084_44018_9644.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-6799607088129433171</id><published>2010-07-01T14:46:00.016+03:00</published><updated>2010-07-01T15:06:43.926+03:00</updated><title type='text'>Downloading metacafe videos</title><content type='html'>The following script will download metacafe videos for you:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;metacafe-dl.sh:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;url=`wget @1 -o /dev/null -O - | grep 'mediaURL' | sed 's/%22/\n/g' | grep -A 6 mediaURL | sed 's/%3A/:/g' | sed 's|%2F|/|g' | sed 's/%5C//g' | sed 's/%25/%/\&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;g' | tr '\n' '#' | awk '-F#' '{print @3 "?__gda__=" @7}'`&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;wget --referer=http://s.mcstatic.com/Flash/vp/mc/Portal_3.2.1.1.swf @url -O `echo @url | sed 's%/%_%g'`.mp4&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Just call the file like this &lt;/div&gt;&lt;div&gt;./metacafe-dl http://url-of-the-meta-cafe-video&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(due to technical error replace @ with a dollar sign instead).&lt;/div&gt;&lt;div&gt;And you will have your file there.  Have a nice time ;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-6799607088129433171?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/6799607088129433171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=6799607088129433171' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/6799607088129433171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/6799607088129433171'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/07/downloading-metacafe-videos.html' title='Downloading metacafe videos'/><author><name>Mohammad Alaggan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/-GRdIwXAujpA/TtsetfBGQ6I/AAAAAAAAC7E/GQhFISn43mQ/s1600/n552022084_44018_9644.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-3616981137732311159</id><published>2010-06-19T14:08:00.001+03:00</published><updated>2010-06-19T14:08:23.531+03:00</updated><title type='text'>VS 2008 to TFS 2010 (on windows 7, or may be x64 in general)</title><content type='html'>&lt;p&gt;Probably you already know that Visual studio (Team explorer) 2008 can connect to TFS 2010 if you installed the right &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=CF13EA45-D17B-4EDC-8E6C-6C5B208EC54D&amp;amp;displaylang=en" target="_blank"&gt;Service Pack&lt;/a&gt; (there’s &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=22215e4c-af6f-4e2f-96df-20e94d762689&amp;amp;displaylang=en" target="_blank"&gt;one for VS 2005&lt;/a&gt; too) and types the &lt;a href="http://blog.jmedved.com/2009/11/visual-studio-2008-and-team-foundation.html?showComment=1265797183316" target="_blank"&gt;right server name&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Yet, a week (or so) ago I switched to windows 7 (64 bit) which lead to a couple of issues with my development environment (feel free to ask me or share your experience with me on that topic, I’m still struggling at that point). One of these issues was that the Visual Studio 2008 SP 1 Forward Compatibility Update for TFS 2010 wouldn’t work for me.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After a long search, &amp;amp; several installs, uninstalls, reinstalls, etc.. I came to the following solution that worked for me &amp;amp; (later) for a couple of my team mates at work. Here’s what you might want to do to fix that:&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;If you have Office 2007, uninstall it (I’m exactly sure if Office 2007 is one of the causes but it was one of the paths I tried) &lt;/li&gt;      &lt;li&gt;Reinstall &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=0ED12659-3D41-4420-BBB0-A46E51BFCA86&amp;amp;displaylang=en" target="_blank"&gt;Team explorer 2008&lt;/a&gt; &lt;strong&gt;(even if you already have it installed)&lt;/strong&gt; &lt;/li&gt;      &lt;li&gt;Reinstall &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=27673C47-B3B5-4C67-BD99-84E525B5CE61&amp;amp;displaylang=en" target="_blank"&gt;VS 2008 SP1&lt;/a&gt; &lt;strong&gt;(even if you already have it installed)&lt;/strong&gt; &lt;/li&gt;      &lt;li&gt;Reinstall &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=CF13EA45-D17B-4EDC-8E6C-6C5B208EC54D&amp;amp;displaylang=en" target="_blank"&gt;VSTS 2008 Forward compatibility update for TFS 2010&lt;/a&gt; &lt;strong&gt;(even if you already have it installed)&lt;/strong&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Try to use the same order above, and make sure you reinstall the above stuff even if you already have them.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-3616981137732311159?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/3616981137732311159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=3616981137732311159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3616981137732311159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3616981137732311159'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/06/vs-2008-to-tfs-2010-on-windows-7-or-may.html' title='VS 2008 to TFS 2010 (on windows 7, or may be x64 in general)'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-4492321691697647209</id><published>2010-05-25T16:01:00.001+03:00</published><updated>2010-05-25T16:02:56.509+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Q and A'/><title type='text'>How to consume REST based-services?</title><content type='html'>Q. How to consume REST based-services?&lt;br /&gt;Assume we have REST based-service contains method Add which takes two operands op1 and op2 and return the summation.&lt;br /&gt;&lt;br /&gt;A.&amp;nbsp;Create any project type (Console, Windows or even Web-based application)&lt;br /&gt;Add &lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Net; &lt;span style="color: blue;"&gt;using&lt;/span&gt; System.IO;&lt;br /&gt;Write some code to consum the service &lt;br /&gt;&lt;span style="color: blue;"&gt;string&lt;/span&gt; parameters;&lt;br /&gt;&lt;span style="color: blue;"&gt;string&lt;/span&gt; response;&lt;br /&gt;&lt;span style="color: lime;"&gt;// Create the request obj&lt;/span&gt;&lt;br /&gt;&lt;span style="color: cyan;"&gt;WebRequest &lt;/span&gt;request = &lt;span style="color: cyan;"&gt;WebRequest&lt;/span&gt;.Create("serviceURL/Add");&lt;br /&gt;&lt;span style="color: lime;"&gt;// Set values for the request back&lt;/span&gt;&lt;br /&gt;request.Method = "POST"; &lt;span style="color: lime;"&gt;//REST based-services using Post method&lt;/span&gt;&lt;br /&gt;request.ContentType = "application/json"; &lt;span style="color: lime;"&gt;//tells request the content typs is JSON&lt;/span&gt;&lt;br /&gt;parameters = "{\"op1\":2,\"op2\":\"1\"}";&lt;br /&gt;request.ContentLength = parameters.Length;&lt;br /&gt;&lt;span style="color: lime;"&gt;// Write the request&lt;/span&gt;&lt;br /&gt;&lt;span style="color: cyan;"&gt;StreamWriter&lt;/span&gt;&amp;nbsp;requestWriter = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: cyan;"&gt;StreamWriter&lt;/span&gt;(request.GetRequestStream(), System.Text.Encoding.ASCII);&lt;br /&gt;requestWriter.Write(parameters);&lt;br /&gt;requestWriter.Close();&lt;br /&gt;// Do the request to get the response&lt;br /&gt;&lt;span style="color: cyan;"&gt;StreamReader&lt;/span&gt; responseReader = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: cyan;"&gt;StreamReader&lt;/span&gt;(request.GetResponse().GetResponseStream());&lt;br /&gt;response = responseReader.ReadToEnd();&lt;br /&gt;responseReader.Close();&lt;br /&gt;&lt;span style="color: lime;"&gt;//response value should be 3 if you implement Add method correctly :)) &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-4492321691697647209?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/4492321691697647209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=4492321691697647209' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4492321691697647209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4492321691697647209'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/05/how-to-consum-rest-based-services.html' title='How to consume REST based-services?'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-4441074632577808873</id><published>2010-05-18T00:48:00.052+03:00</published><updated>2011-05-09T00:53:03.285+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python Script to download TED Talks translations :))</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;Well, i admit it, i am a &lt;a href="http://www.ted.com/"&gt;TED&lt;/a&gt; lover. I love the passion, and the "new" factor TED brings to me :)&lt;br /&gt;&lt;br /&gt;I was watching &lt;a href="http://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action.html"&gt;this&lt;/a&gt; presentation for Simon Sink and someone I know downloaded the video but wasn't able to view the translation locally, so I thought I might be able to download the translations for him and convert them to SRT format to be able to display them on any Video Player. and Here is how I did it :)&lt;br /&gt;&lt;br /&gt;If you visited the site before, you will find it has a flash control where you can view the video and choose the translation if needed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;First,&lt;/span&gt; To be able to investigate how the flash control gets the translation, you have to open a network sniffer which will enable you to view all the packets going to and from your network card. A good packet sniffer is &lt;a href="http://www.wireshark.org/"&gt;Wireshark&lt;/a&gt;, and if you don't know it check those links to know more about how to use it :)&lt;br /&gt;&lt;a href="http://www.securitytube.net/Packet-Sniffing-using-Wireshark-video.aspx"&gt;Packet Sniffing using Wireshark Tutorial&lt;/a&gt;  (Video)&lt;br /&gt;&lt;a href="http://wheelersoftware.com/articles/wireshark-tutorial.html"&gt;Fifteen Minute Wireshark Tutorial - Wheeler Software&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Second,&lt;/span&gt; you need to add a filter for "HTTP" requests only, and navigate through any video (like the one above) to view how the flash control communicates with the server :)&lt;br /&gt;&lt;br /&gt;When you choose a translation, you will find a request to a URL like this: &lt;a href="http://www.ted.com/talks/subtitles/id/848/lang/eng"&gt;www.ted.com/talks/subtitles/id/848/lang/eng&lt;/a&gt; , where 848 is the Talk ID and eng is the language choosed "English".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;So there two questions now, given a URL to the TED Talk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;What format are translation subtitles returned?&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;How do i get the Talk ID?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To answer the first question&lt;/span&gt;, just click the link above, and you will find the translation is returned in JSON (Javascript Object Notation) format. So this is good news. We just need to find a good library to handle JSON, and be able to convert it to SRT format to be able to use it on almost any Video Player like VLCMedia Player.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;And the answer to the second question&lt;/span&gt; is to do a simple "View Source" and search for this number, you will find it in several places through the page's source code, so simple parsing the page HTML should do the job.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;Here is the full Script&lt;/span&gt; to do the job given the URL on ted.com and the language code which is eng for english and ara for arabic. Will try to provide the rest of the language codes later.&lt;br /&gt;&lt;br /&gt;This is a simple command to test the script:&lt;br /&gt;&lt;br /&gt;python TEDSubtitles.py "http://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action.html" "eng"&lt;br /&gt;&lt;br /&gt;And here is the full source code, will try to upload it somewhere soon.&lt;br /&gt;&lt;br /&gt;Hope it's worth spreading :))&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;"&gt;Updates:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You can get the script &lt;a href="https://sites.google.com/site/shereefsakr/TEDSubtitles.py?attredirects=0"&gt;here&lt;/a&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You need at least Python 2.6 for the json module to be available.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;"&gt;Update on 22/09/2010:&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left; font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;I was informed in the  comments by &lt;a href="http://mohammaddesign.wordpress.com/"&gt;Mohammad&lt;/a&gt;  that he created a program &lt;a href="http://sourceforge.net/projects/tedgrabber/"&gt;http://sourceforge.net/projects/tedgrabber/&lt;/a&gt;  to download TED Talks and subtitles. &lt;/span&gt;&lt;span style="font-size:100%;"&gt;He also created another one &lt;a href="http://sourceforge.net/projects/timecovergrabbe/"&gt;http://sourceforge.net/projects/timecovergrabbe/&lt;/a&gt; , which allows you to grab Time Magazine covers.&lt;/span&gt;This is another example that illustrates the concept and ofcourse it can be applied everywhere. Good luck to Mohammed.&lt;/div&gt;&lt;div style="text-align: left; font-style: italic;"&gt;Although it's hosted on sourceforge, the source code is not available. It would be better if it was shared.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Update on 24/04/2011:&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;A Google Appengine application was created for the same functionality on &lt;a href="http://tedsubtitles.appspot.com/" target="blank"&gt;http://tedsubtitles.appspot.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can view the source below, but for better colorized viewing check this link &lt;a target="blank" href="http://code.google.com/p/shereefsakr-scripts/source/browse/DownloadTEDSubtitles.py"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;import os&lt;br /&gt;import sys&lt;br /&gt;import json&lt;br /&gt;import urllib2&lt;br /&gt;&lt;br /&gt;# Format Time from TED Subtitles format to SRT time Format&lt;br /&gt;def formatTime ( time ) :&lt;br /&gt;milliseconds = 0&lt;br /&gt;seconds = ((time / 1000) % 60)&lt;br /&gt;minutes = ((time / 1000) / 60)&lt;br /&gt;hours = (((time / 1000) / 60) / 60)&lt;br /&gt;formatedTime = str ( hours ) + ':' + str (minutes) + ':' + str ( seconds ) + ',' + str ( milliseconds )&lt;br /&gt;return formatedTime&lt;br /&gt;&lt;br /&gt;# Convert TED Subtitles to SRT Subtitles&lt;br /&gt;def convertTEDSubtitlesToSRTSubtitles ( jsonString , introDuration ) :&lt;br /&gt;jsonObject = json.loads( jsonString )&lt;br /&gt;&lt;br /&gt;srtContent = ''&lt;br /&gt;captionIndex = 1&lt;br /&gt;&lt;br /&gt;for caption in jsonObject['captions'] :&lt;br /&gt;startTime = str ( formatTime ( introDuration + caption['startTime'] ) )&lt;br /&gt;endTime = str ( formatTime ( introDuration + caption['startTime'] + caption['duration'] ) )&lt;br /&gt;&lt;br /&gt;srtContent += ( str ( captionIndex ) + os.linesep )&lt;br /&gt;srtContent += ( startTime + ' --&amp;gt; ' + endTime + os.linesep )&lt;br /&gt;srtContent += ( caption['content'] + os.linesep )&lt;br /&gt;srtContent += os.linesep&lt;br /&gt;&lt;br /&gt;captionIndex = captionIndex + 1&lt;br /&gt;return srtContent&lt;br /&gt;&lt;br /&gt;def getTEDSubtitlesByTalkID ( talkId , language ) :&lt;br /&gt;tedSubtitleUrl = 'http://www.ted.com/talks/subtitles/id/' + str(talkId) + '/lang/' + language&lt;br /&gt;req = urllib2.Request(tedSubtitleUrl)&lt;br /&gt;response = urllib2.urlopen(req)&lt;br /&gt;result = response.read()&lt;br /&gt;return ( result )&lt;br /&gt;&lt;br /&gt;tedTalkUrl = sys.argv[1]&lt;br /&gt;language = sys.argv[2]&lt;br /&gt;&lt;br /&gt;req = urllib2.Request(tedTalkUrl)&lt;br /&gt;response = urllib2.urlopen(req)&lt;br /&gt;result = response.read()&lt;br /&gt;&lt;br /&gt;## Get Talk ID value&lt;br /&gt;splits = result.split ( ';ti=' )&lt;br /&gt;talkId = splits[1].split ( '&amp;amp;' )[0]&lt;br /&gt;print talkId&lt;br /&gt;&lt;br /&gt;## Get Talk Intro Duration value&lt;br /&gt;splits = result.split ( ';introDuration=' )&lt;br /&gt;talkIntroDuration = splits[1].split ( '&amp;amp;' )[0]&lt;br /&gt;talkIntroDuration = int ( talkIntroDuration )&lt;br /&gt;print talkIntroDuration&lt;br /&gt;&lt;br /&gt;jsonString = getTEDSubtitlesByTalkID ( talkId , language )&lt;br /&gt;&lt;br /&gt;srtContent = convertTEDSubtitlesToSRTSubtitles ( jsonString , talkIntroDuration )&lt;br /&gt;&lt;br /&gt;# Generate SRT file name&lt;br /&gt;splits = tedTalkUrl.split ( '/' )&lt;br /&gt;srtFilename = splits[len ( splits )-1].split ('.')[0]&lt;br /&gt;&lt;br /&gt;srtFile = open ( './' + srtFilename + '.srt' , 'w' )&lt;br /&gt;srtFile.write ( srtContent.encode ( "utf-8" ) )&lt;br /&gt;srtFile.close ()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-4441074632577808873?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/4441074632577808873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=4441074632577808873' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4441074632577808873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4441074632577808873'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/05/python-script-to-download-ted-talks.html' title='Python Script to download TED Talks translations :))'/><author><name>Shereef Sakr</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-1218283916503258074</id><published>2010-04-23T00:10:00.002+02:00</published><updated>2010-04-23T00:14:27.053+02:00</updated><title type='text'>ArabEyes Arabic Technical Dictionary</title><content type='html'>The ArabEyes project is managing a wiki-based technical dictionary for Arabizing English technical terms. &lt;div&gt;Not all the terms are translated, and some are still under discussion by the wiki members. Some terms have many proposals and is under a voting process. &lt;/div&gt;&lt;div&gt;The dictionary is used as a reference for translating open source software, like Ubuntu and OpenOffice.&lt;/div&gt;&lt;div&gt;If you want to leave your signature or recommend a better translation for some terms, you are more than welcome to participate on the URL : &lt;/div&gt;&lt;div&gt;&lt;a href="http://wiki.arabeyes.org/%D8%A7%D9%84%D9%82%D8%A7%D9%85%D9%88%D8%B3_%D8%A7%D9%84%D8%AA%D9%82%D9%86%D9%8A"&gt;http://wiki.arabeyes.org/القاموس_التقني&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/27659513-1218283916503258074?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/1218283916503258074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=1218283916503258074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1218283916503258074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1218283916503258074'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/04/arabeyes-arabic-technical-dictionary.html' title='ArabEyes Arabic Technical Dictionary'/><author><name>Mohammad Alaggan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/-GRdIwXAujpA/TtsetfBGQ6I/AAAAAAAAC7E/GQhFISn43mQ/s1600/n552022084_44018_9644.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-8571348833730380428</id><published>2010-04-11T00:40:00.010+02:00</published><updated>2010-04-11T01:34:57.463+02:00</updated><title type='text'>GridView with Highlighting and dragging rows</title><content type='html'>Two days ago, I needed a grid like &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx"&gt;GridView &lt;/a&gt;to be project’s inbox but must have some UI effects like highlighting rows and sorting rows according to column’s name or by drag and drop rows by mouse pointer.&lt;br /&gt;Of course the first thing came in my mind is using &lt;a href="http://jquery.com/"&gt;JQuery &lt;/a&gt;with the &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx"&gt;gridview &lt;/a&gt;as it runs by a little lines of code and give the client a big influence and satisfaction.&lt;br /&gt;&lt;br /&gt;I am already started with trying some plug-ins for Drag and Drop but I found a big issue with &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx"&gt;GridView &lt;/a&gt;itself as it’s render the header and footer as ordinary  row (TR Tag)  NOT (thead tag) and (tfoot tag)   so any plug-in can’t differentiate between any row and the header (the section of columns name) or footer (the section of paging ).&lt;br /&gt;&lt;br /&gt;So I google for solution and get a part of it by &lt;a href="http://www.dotnetcurry.com/About.aspx"&gt;Suprotim Agarwal&lt;/a&gt; then I modified it to fit my needs and  some changes in the &lt;a href="http://www.isocra.com/2008/02/table-drag-and-drop-jquery-plugin/"&gt;Table Drag and Drop JQuery&lt;/a&gt; . &lt;span style="color: rgb(255, 0, 0);"&gt;So take care to use the attached (modified) Dragging plug-in as I modified it and use the start up script&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The Grid before fix (as you can see, you can drag any row even the header or footer):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tKqD3VvR8CI/S8EFm-XroFI/AAAAAAAABDI/To7-0igSxK0/s1600/16.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 153px;" src="http://2.bp.blogspot.com/_tKqD3VvR8CI/S8EFm-XroFI/AAAAAAAABDI/To7-0igSxK0/s400/16.JPG" alt="" id="BLOGGER_PHOTO_ID_5458650390485246034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After fixing:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tKqD3VvR8CI/S8EFnOnXPxI/AAAAAAAABDQ/Lpj6q7XlawM/s1600/17.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 156px;" src="http://3.bp.blogspot.com/_tKqD3VvR8CI/S8EFnOnXPxI/AAAAAAAABDQ/Lpj6q7XlawM/s400/17.JPG" alt="" id="BLOGGER_PHOTO_ID_5458650394845986578" border="0" /&gt;&lt;/a&gt;&lt;a href="http://sites.google.com/site/ahmedessawy2/FCIH-GridViewJQuery.rar"&gt;Download the complete Example.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-8571348833730380428?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/8571348833730380428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=8571348833730380428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8571348833730380428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8571348833730380428'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/04/gridview-with-highlighting-and-dragging.html' title='GridView with Highlighting and dragging rows'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tKqD3VvR8CI/S8EFm-XroFI/AAAAAAAABDI/To7-0igSxK0/s72-c/16.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-857527789373415938</id><published>2010-03-23T13:17:00.002+02:00</published><updated>2010-03-24T13:54:16.546+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>How to configure SQL Server for ASP.NET SQL Server Session State &lt;sessionState mode="SQLServer" ../&gt;</title><content type='html'>On your prompt (doesn’t matter if you’re on the SQL server machine or not), run the below command:&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;&lt;i&gt;”system root”&lt;/i&gt;&lt;/b&gt;\Microsoft.NET\Framework\&lt;b&gt;&lt;i&gt;”version number”&lt;/i&gt;&lt;/b&gt;&amp;gt;aspnet_regsql.exe –S &lt;b&gt;&lt;i&gt;“server”&lt;/i&gt;&lt;/b&gt; -U sa -P &lt;b&gt;&lt;i&gt;“Password”&lt;/i&gt;&lt;/b&gt; -ssadd -sstype p&lt;/blockquote&gt;for eg:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: black;"&gt;C:\Windows\Microsoft.NET\Framework\v2.0.50727&amp;gt;aspnet_regsql.exe -S MySQLServerInstanceName -U sa -P password -ssadd -sstype p&lt;/span&gt;&lt;/blockquote&gt;OR&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: black;"&gt;C:\WINNT\Microsoft.NET\Framework\v4.0.21006&amp;gt;aspnet_regsql.exe -S MySQLServerInstanceName -U sa -P password -ssadd -sstype p&lt;/span&gt;&lt;/blockquote&gt;Now you have ASPState database on your servers with the tables, stored procedures, jobs needed to handle SQL server mode session state.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-857527789373415938?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/857527789373415938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=857527789373415938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/857527789373415938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/857527789373415938'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/03/how-to-configure-sql-server-for-aspnet.html' title='How to configure SQL Server for ASP.NET SQL Server Session State &amp;lt;sessionState mode=&amp;quot;SQLServer&amp;quot; ../&amp;gt;'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-8483361869945768809</id><published>2010-02-25T21:50:00.004+02:00</published><updated>2010-02-25T22:35:24.694+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cryptography'/><title type='text'>Shared secrets</title><content type='html'>This post continues the other approach to &lt;a href="http://fci-h.blogspot.com/2010/02/homomorphic-encryption.html"&gt;secure multi-party computation&lt;/a&gt;, which is called "Secret-sharing".&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;The problem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Consider the problem that, there is a nuclear missile, and there is its launch code. Only the president has that code. But what if the president is unavailable ? We can't trust any of the executives alone. We would require for example that 3 of them can launch the missile, but not any single one of them alone. This is what secret-sharing is about. It's goal is quite different than homomorphic encryption, but it used also for secure multi-party computation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;class&gt;&lt;/class&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;Which is more secure?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://fci-h.blogspot.com/2010/02/homomorphic-encryption.html"&gt;Homomorphic encryption&lt;/a&gt; relies on the assumption that it would take long time to crack it. Typically for example, the problem of factoring a very big number. Secret-sharing, on the other hand, is secure in &lt;a href="http://en.wikipedia.org/wiki/Information_theoretic_security"&gt;information-theory sense&lt;/a&gt;. That means that even if given the entire eternity, you can not break it, simply because there is no information leakage (unlike the other approach where is information leakage with small probability). &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;Shamir's Secret Sharing&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The first to publish about a practical secret sharing scheme was Shamir, in 1979 [1]. It's target is to create $n$ shares of the secret, such that any $k$ shares are sufficient to reconstruct the secret. Each person would be given some shares. The president is allowed to launch the missile alone, so he will have $k$ shares. The executes must be 3, so each one will take $k/3$ shares. The total number of shares is unbounded. Such a scheme is called $(k,n)$ secret-sharing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;What if some shares was stolen ?&lt;/span&gt;&lt;br /&gt;If the number of shares stolen were less than $k$, then the other shares can be renewed by adding a random shared secret whose value is zero [2]. The old stolen shares are useless now since their compatible shares were replaced by new ones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;How does it work ?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Shamir's scheme depends on &lt;a href="http://en.wikipedia.org/wiki/Lagrange_polynomial"&gt;Lagrange Interpolation&lt;/a&gt; of polynomials. Using Lagrange interpolation, you can recover a polynomial $f(x)$ of degree $t$, given $t$ pairs $(x_i,y_i)$ such that $y_i=f(x_i)$. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Encoding a secret&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;To encode a secret value $v$ in a $(k,n)$ secret-sharing scheme, do the following:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;- Generate a random polynomial of degree $k$ whose free coefficient is $v$ (that means $f(0)=v$).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;- Evaluate the polynomial at $n$ different points $x_1,x_2,..,x_n$&lt;/span&gt;&lt;/div&gt;&lt;div&gt;- Each share consists of a pair $(x_i,f(x_i))$&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Reconstructing a secret&lt;/span&gt;&lt;/div&gt;&lt;div&gt;to reconstruct the secret, collect $k$ shares, and follow the Lagrange interpolation and substitute $x$ by zero. That is we reconstruct the polynomial and evaluate it at zero. The result is $f(0)$, which is $v$. If you have less than $k$ points, the constructed polynomial is wrong and you can not retrieve the secret.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;﻿&lt;second-field-align&gt;[1] &lt;/second-field-align&gt; A. Shamir, "How to share a secret," &lt;i&gt;Communications of the ACM&lt;/i&gt;, vol. 22, 1979, p. 612–613.&lt;/div&gt;&lt;div&gt;[2] &lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;Herzberg, A., Jarecki, S., Krawczyk, H., and Yung, M. 1995. Proactive Secret Sharing Or: How to Cope With Perpetual Leakage. In&lt;/span&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;&lt;i&gt;Proceedings of the 15th Annual international Cryptology Conference on Advances in Cryptology&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Times New Roman';font-size:medium;"&gt;(August 27 - 31, 1995). D. Coppersmith, Ed. Lecture Notes In Computer Science, vol. 963. Springer-Verlag, London, 339-352.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="author"&gt;Originally posted to http://fci-h.blogspot.com/. This is just an automatically forwarded copy. (To read the Latex-typeset mathematics correctly, please visit the original post).&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&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/27659513-8483361869945768809?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/8483361869945768809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=8483361869945768809' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8483361869945768809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8483361869945768809'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/02/shared-secrets.html' title='Shared secrets'/><author><name>Mohammad Alaggan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/-GRdIwXAujpA/TtsetfBGQ6I/AAAAAAAAC7E/GQhFISn43mQ/s1600/n552022084_44018_9644.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-255056336748148971</id><published>2010-02-25T13:08:00.000+02:00</published><updated>2010-02-25T13:08:01.130+02:00</updated><title type='text'>Replication Error "SQL Server is unable to connect to server.."</title><content type='html'>If you're working in SQL Server Replication, you may get this message&lt;br /&gt;SQL Server is unable to connect to server '&lt;strong&gt;Your server name&lt;/strong&gt;'.&lt;br /&gt;&lt;br /&gt;SQL Server replication requires the actual server name to make a connection to the server. Connections through a server alias, IP address, or any other alternate name are not supported. Specify the actual server name, '&lt;strong&gt;Another server name&lt;/strong&gt;'. (Replication.Utilities)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ramymahrous.files.wordpress.com/2010/02/replication-post.jpg"&gt;&lt;img alt="" class="aligncenter size-full wp-image-849" height="203" src="http://ramymahrous.files.wordpress.com/2010/02/replication-post.jpg" title="Replication Error" width="450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It always appears as you change the instance name manually or network administrators change the computer name.&lt;br /&gt;&lt;br /&gt;Actually your server name still as it's and not changed with above changes so to avoid getting this message you should write these couple of T-SQL scripts every time you do one or all changes on the instance name&lt;br /&gt;&lt;div id="_mcePaste"&gt;&lt;span style="color: blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color: magenta;"&gt;@@SERVERNAME &lt;span style="color: green;"&gt;-- you'll get a strange name, you may didn't see it before...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="_mcePaste"&gt;GO&lt;/div&gt;&lt;div id="_mcePaste"&gt;&lt;span style="color: #993366;"&gt;sp_dropserver&lt;/span&gt; &lt;span style="color: red;"&gt;'Old server name' &lt;span style="color: green;"&gt;-- you got it from pervious select.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="_mcePaste"&gt;GO&lt;/div&gt;&lt;div id="_mcePaste"&gt;&lt;span style="color: #993366;"&gt;sp_addserver&lt;/span&gt; &lt;span style="color: red;"&gt;'SQL server instance name','local' &lt;span style="color: green;"&gt;-- the name of current instance.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id="_mcePaste"&gt;GO&lt;/div&gt;&lt;div&gt;Then, restart the service, and go on you replication work...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-255056336748148971?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/255056336748148971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=255056336748148971' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/255056336748148971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/255056336748148971'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/02/replication-error-sql-server-is-unable.html' title='Replication Error &quot;SQL Server is unable to connect to server..&quot;'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-1220583809007507723</id><published>2010-02-14T22:33:00.007+02:00</published><updated>2010-02-16T11:17:06.846+02:00</updated><title type='text'>Ultimus: JFG can't return with workaround</title><content type='html'>With &lt;a href="http://www.ultimus.com/"&gt;Ultimus &lt;/a&gt;you have a flexibility to "submit" or "return" any step using Ultimus APIs (EIK) whatever the recipient of that step expect the "Job Function Group" (JFG) and "Group" as it fails in the "return" because the JFG contains more than one user and this is my problem.&lt;br /&gt;&lt;br /&gt;I need to return from a step with recipient type JFG have more than one user using EIK.&lt;br /&gt;Note: submitting the step with condition to return back to the previous step is not a solution as I need to keep the status of the returned step as returned.&lt;br /&gt;&lt;br /&gt;After asking &lt;a href="http://www.ultimussupport.com/"&gt;Ultimus support&lt;/a&gt; about this issue they answered me that as per &lt;a href="http://www.ultimus.com/"&gt;Ultimus &lt;/a&gt;BPM Studio Documentation, Page 175:&lt;br /&gt;Any step with multiple recipients from a group or dynamic group cannot&lt;br /&gt;return the task and this is a design behavior.&lt;br /&gt;&lt;br /&gt;So I came up with workaround to solve this behavior that allow you to return a step one level back and keep the status of the returned step as returned even the recipient type was JFG.&lt;br /&gt;&lt;br /&gt;Assume this case study:&lt;br /&gt;you have two steps one for "officer" who collect some data and then pass this step to "manager" who review the officer's data then submit his task, both steps(Officer &amp;amp; Manager)have "Job Function Group" as a "Recipient Type".&lt;br /&gt;&lt;br /&gt;If your business needs is to return the task from manager to officer again if the manager have some comments and needs changes in the officer's data so the problem will come here as the task can't be returned because it's JFG.&lt;br /&gt;&lt;br /&gt;To solve this problem you can follow me pattern with fake or dummy step as in the following picture.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tKqD3VvR8CI/S3hnWgi7WOI/AAAAAAAABCY/HSH7JX_HHw0/s1600-h/UltPro1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 399px; height: 222px;" src="http://4.bp.blogspot.com/_tKqD3VvR8CI/S3hnWgi7WOI/AAAAAAAABCY/HSH7JX_HHw0/s400/UltPro1.JPG" alt="" id="BLOGGER_PHOTO_ID_5438210186441087202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;1-When the Officer submit the step then he will activate two step Not only the manager step but also the fake(Dummy) step.&lt;br /&gt;2-the straight forward scenario is that the manager will submit the task and raise a flag so the Complete Event of the step will fire as the following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  The flag will foreword the manager to the junction step to go throw the normal path.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;  The flag will abort the fake step.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;3-if the decision of manager was return to officer then:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  The manager will submit the step with no valid condition so the submition will do nothing than make the step as not active.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;  Using EIK you can get the fake step by &lt;a href="http://www.ultimus.com/"&gt;Ultimus&lt;/a&gt; Filter and call the Return function  so it will return it in the officer step with returned status and that is what we already need to do.&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/27659513-1220583809007507723?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/1220583809007507723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=1220583809007507723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1220583809007507723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1220583809007507723'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/02/ultimus-jfg-cant-return-with-workaround.html' title='Ultimus: JFG can&apos;t return with workaround'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tKqD3VvR8CI/S3hnWgi7WOI/AAAAAAAABCY/HSH7JX_HHw0/s72-c/UltPro1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-1729988738598002476</id><published>2010-02-13T17:41:00.008+02:00</published><updated>2010-02-25T22:17:39.081+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cryptography'/><title type='text'>Homomorphic Encryption</title><content type='html'>We will talk in this post about a very useful cryptographic tool. But lets talk first about the motivation or the problem it solves first.&lt;br /&gt;&lt;br /&gt;As the first example, we will introduce the private voting problem:&lt;br /&gt;We want to make an online voting application, no one can know what anyone else has voted (not ever the server itself), but at the end, we will know how many votes each candidate has received. The problem is even harder if there is no "central" trusted server and it is a distributed system which all nodes interact with all others and no one can trust anyone else.&lt;br /&gt;&lt;br /&gt;Now, lets introduce homomorphic encryption. Homomorphic encryption, is an encryption system which allows you to do calculations on the encrypted data, without knowing the original text. At the end you will get the encryption of the result, not the result itself.&lt;br /&gt;&lt;br /&gt;Caution: the notation used is simplified and there are some details that are not mentioned in order to simplify the presentation.&lt;br /&gt;&lt;br /&gt;To make it more elaborate, assume $a, b$ are plain texts, and $E(a), E(b)$, are their encryption. If the encryption system you are using allows for addition, you can then call $Add(E(a),E(b))$ and you will get $E(a+b)$.&lt;br /&gt;&lt;br /&gt;Ok, so how can this help us in our voting problem ? We will describe the protocol to show how. There is a node which will start the voting, it is the only node that can decrypt values. He will send his vote $v_1$, either 0 or 1, encrypted to the the next node. The next node will take the encrypted vote and adds his encrypted vote, either 0 or 1, and forwards it to the next one, and so forth, in a ring-like fashion, until it reaches the first node again. The first node will then decrypt and will find the sum of the votes for the first candidate. This is repeated for each candidate.&lt;br /&gt;&lt;br /&gt;Homomorphic encryption has a lot more applications, and is more sophisticated that the simplified version mentioned here. For example, it usually has "semantic" security, which means that it is a probabilistic encryption, which means that every time you encrypt the same value, you will get a different cipher text. That is, if two people sent you $E(1)$, you will not be able to know it is the same value just by looking at the cipher text alone. Also, there are encryption schemes that only allows for addition, and others that only allow for multiplication. There is one that allows for addition and only one multiplication. Those who supports unlimited number of addition and multiplication are called "algebraic homomorphic encryption", or "fully homomorphic". So far, fully homomorphic schemes incur very big overhead for practical purposes.&lt;br /&gt;&lt;br /&gt;Note that homomorphic properties are usually intended in a cipher. If a cipher had these properties and it was not intended, it is called "malleable" encryption and it is considered a flaw instead. Remarkable homomorphic cryptosystem are RSA, ElGamal, and Paillier.&lt;br /&gt;&lt;br /&gt;Note also that these schemes are also asymmetric. So anyone with public key can encrypt a value, but can not decrypt it except with a public key.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;- Pascal Paillier: Public-Key Cryptosystems Based on Composite Degree Residuosity Classes. EUROCRYPT 1999:223-238&lt;br /&gt;&lt;br /&gt;- http://en.wikipedia.org/wiki/Homomorphic_encryption&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#FFFFFF;"&gt;Author: Mohammad Alaggan&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-1729988738598002476?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/1729988738598002476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=1729988738598002476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1729988738598002476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1729988738598002476'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/02/homomorphic-encryption.html' title='Homomorphic Encryption'/><author><name>Mohammad Alaggan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/-GRdIwXAujpA/TtsetfBGQ6I/AAAAAAAAC7E/GQhFISn43mQ/s1600/n552022084_44018_9644.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-3945439757039563143</id><published>2010-02-03T14:02:00.003+02:00</published><updated>2010-02-03T14:13:35.872+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATG'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Automated build for ATG, Ant or Maven ??</title><content type='html'>If you are not working with ATG, then, this article will be a waste of time, this article is for those guys working - or in other words suffering - with ATG. The case is you want to automate the build of ATG projects which are not following most of the JEE standards, they are using their own methodology which is not bad, but somehow weird. This article is to discuss whether it is better to use Ant or Maven for the build process of ATG projects.&lt;br /&gt;------------&lt;br /&gt;You can read about Ant &lt;a href="http://ant.apache.org/"&gt;here &lt;/a&gt;and Maven &lt;a href="http://maven.apache.org/"&gt;here&lt;/a&gt;.&lt;br /&gt;------------&lt;br /&gt;&lt;br /&gt;Well, maven is great tool indeed and i pesonally like it, unlike Ant, maven has knowledge about the whole project and handles alot of work in a declarative way, you just tell maven to compile the project and it compiles it without any configuration, this is due to its knowledge about the project, on the other side, Ant only knows about the build process, you define targets using XML script and define their sequence of execution, each target in an Ant build script does not know about other targets, it executes what you tell it to execute and nothing more, for example; to compile a project using Ant you need to define a compile target and tell it the classpath to use and where to place the .class files. Orginially, Ant did not support any dependency management technique, however, now Ant have a powerfull extension named Ivy which eanbles Ant to resolve project dependcies using maven's way, however, this does not change the main Ant concept of separate targets who do not know anyhing about each other, ivy enables you to tell it what artifacts (jars) you want and is gets it from a repository and places it in a directory.&lt;br /&gt;&lt;br /&gt;It is very clear that maven is more advanced, more smart than Ant, but, for ATG projects the story is somehow different, the minimum build process for JEE application is as follows:&lt;br /&gt;&lt;br /&gt;1- Checkout code.&lt;br /&gt;2- Compile.&lt;br /&gt;3- Test.&lt;br /&gt;4- Package and deploy.&lt;br /&gt;&lt;br /&gt;Maven and Ant works the same for ATG projects for the first step. Starting from the second step we see that to work with maven you need to add your project's artifacts to a repository and configure maven to look up that repository. To package an ATG project - (step 4) - you need ATG to be installed on the build machine to assemble (package) the project, this indicates that the needed artifacts are surely on the same machine you are working on, so the need of a repository is vanished. Why defining a repository while i know that the needed jars are on the build machine for sure. Here, Ant is more flexible and logic to use, you will just define the place of the jars and that's it, you can do this with maven, but you will end up loosing the power of it.&lt;br /&gt;&lt;br /&gt;That packaging step makes maven loose its leverage over the prject even more, as in ATG projects the packaging will be done by making maven execute a shell command to run the assembler which is not what maven understands. The generated EAR will be totally outside the scope of maven and to deploy it you will execute another shell command to copy it to the desired location and loosing again the deploy feature of maven. Here also, the build process shows to be more likely an Ant style build.&lt;br /&gt;&lt;br /&gt;Testing ATG modules is the most painful, all ATG developers knows the amount of hassle to unit test ATG modules, it is not as direct as spring. In&amp;nbsp; this step neither Ant or Maven have power points over each other it is bad all along the way and to get it done you need a lot of workarounds related to ATG.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Although you can do it with Maven, Ant is a better fit here as it is designed to handle builds that need flexibility and do not follow the normal and well known build steps. &lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-3945439757039563143?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/3945439757039563143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=3945439757039563143' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3945439757039563143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3945439757039563143'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/02/automated-build-for-atg-ant-or-maven.html' title='Automated build for ATG, Ant or Maven ??'/><author><name>Youssef Mamdouh</name><uri>http://www.blogger.com/profile/04917580493499832141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp1.blogger.com/__Gm5_q7g9WU/R7cGWLdwWeI/AAAAAAAAAHA/FMle7CHZbis/S220/n706360321_6498.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-8502957889417803850</id><published>2010-01-20T22:15:00.003+02:00</published><updated>2010-01-25T09:45:28.080+02:00</updated><title type='text'>Discrete Event Simulators : Simulating Networks</title><content type='html'>----&lt;br /&gt;Update:&lt;br /&gt;I've been told that this article doesn't present *why* we need discrete event simulators, or what is the problem solved by them.&lt;br /&gt;The problem is, for one example, consider you are developing a peer to peer program, like bittorrent, and you want to try it to see how good it works when 1000 users run it. You can get 1000 of your friends and they'd start the program and there you go (Or use PlanetLab). However if there were a bug, you'd be completely lost how to debug it. Discrete event simulators, "simulate" that there is 1000 users (or more, if you want) on your machine. More than that, they are all in the same "process/thread". So it boils down to a single-threaded application that is so much easier to debug. &lt;br /&gt;Another example is to test a network protocol for example (see NS-2 simulator). You want to modify the "IP" protocol and want to simulate a network of hosts and routers and switches instead of implementing it on the hardware level and testing it in real life. That's what discrete event simulators are useful for. &lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;If you are familiar with windows event loop of event-driven applications (GUI, sockets), you know that pretty much applications can be defined in terms of events. We consider here network applications which are mostly defined by a "receive-message" event.&lt;br /&gt;&lt;br /&gt;You write your network application and depend on a receive event as a black box to receive messages (ref: Apache Mina). Imagine now we have the same application but we just replaced that black box, instead of the OS socket APIs, we replaced it with a discrete event simulator of the same exact interface.&lt;br /&gt;&lt;br /&gt;That interface is just the function send(msg) and a callback function that you provide called receive(msg).&lt;br /&gt;&lt;br /&gt;Instead of having the sender and receiver on different machines, they both will be on the same machine and in the same application (it's a "simulation", you want to test them as "if" they were on a real network). &lt;br /&gt;&lt;br /&gt;The first application calls send() unsuspectingly, and then the discrete event simulator instead of calling OS APIs to send it on the network card, he just creates a corresponding reception event in the second (receiving) application. And then the second application gets a callback that he has got a message from the first application.&lt;br /&gt;&lt;br /&gt;This view is simplified a little bit. We want to model network delay and bandwidth constraints, especially if we are going to simulate3000 peers of bit-torrent for example. There is ns-2, which simulates these metrics using a complete IP stack implementation (IP/TCP). It splits messages into packets, and simulates routers and so . NS-2 is used to test real protocols like WiFi and routing algorithms. However its over head is unacceptable if we want to consider a peer to peer network of 1000 peers (running on the same machine).&lt;br /&gt;&lt;br /&gt;Some approaches like peersim, models delay as a random function and not bandwidth. However there are other approaches like MyP2PWorld[1] that models bandwidth but obtains efficiency from approximating the bandwidth constraints on the "message" level not the packet level. &lt;br /&gt;&lt;br /&gt;Most discrete event simulators are not designed to test a deployable system and requires implementation using it's own interfaces and tools and then you transform that into a real application. MyP2PWorld[1] was designed to adapt the Apache Mina interface (used in real application). So you can write you own deployable peer to peer application using Apache Mina (event-driven networking), and with a flip of a boolean variable, you test it on a discrete event simulator. So your code you use in simulation is the same code used in deployment.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;[1] Roberto Roverso, Mohammed Al-Aggan, Amgad Naiem, Andreas Dahlstrom, Sameh El-Ansary, Mohammed El-Beltagy, Seif Haridi: MyP2PWorld: Highly Reproducible Application-Level Emulation of P2P Systems. SASO Workshops 2008:272-277&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-8502957889417803850?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/8502957889417803850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=8502957889417803850' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8502957889417803850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8502957889417803850'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2010/01/discrete-event-simulators-simulating.html' title='Discrete Event Simulators : Simulating Networks'/><author><name>Mohammad Alaggan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/-GRdIwXAujpA/TtsetfBGQ6I/AAAAAAAAC7E/GQhFISn43mQ/s1600/n552022084_44018_9644.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-3692481116310048059</id><published>2009-12-23T04:06:00.006+02:00</published><updated>2009-12-23T10:59:34.310+02:00</updated><title type='text'>Quantum Computing's potential: impossible to ignore</title><content type='html'>What's the average time you need to find a certain item in an unsorted list of N=1,000,000 items ? O(N/2) = 500,000. That means on average you have to look at half of them before finding your desired item.&lt;br /&gt;&lt;br /&gt;What's the minimum number of steps you need to solve a N-by-N system of linear equations ? at least N steps.&lt;br /&gt;&lt;br /&gt;What's the minimum time you need to factor an integer of N bits ? 2^N steps. Cryptographic security relies on this fact. &lt;br /&gt;&lt;br /&gt;However all these answers are wrong in quantum computing !&lt;br /&gt;In quantum computing to find an item in an unsorted list of 1,000,000 items you need only Sqrt(1,000,000) = 1000 steps! [1,4]&lt;br /&gt;&lt;br /&gt;In quantum computing to solve a system of N linear equations you need Log(N) steps ! [2]&lt;br /&gt;&lt;br /&gt;In quantum computing to factor a N-bits integer you need only N steps (logarithmic to the number) ! So if a quantum computer with enough bits (called qubits in quantum computers) all today's encryptions are totally useless !! Your bank account can be stolen in one day. [3,5,6]&lt;br /&gt;&lt;br /&gt;Several quantum computes of 5 and 7 qubits have been made to prove it is possible[7]. However not yet practical because they don't have enough qubits yet. &lt;br /&gt;&lt;br /&gt;Some quantum cryptography networks have been deployed [8]. Ordinary cryptographic systems promises you that your encrypted text will not be decrypted in less than 1 million years for example. However these quantum cryptography methods are totally unbreakable no matter how much time given (personal opinion of the author, that can be wrong).&lt;br /&gt;&lt;br /&gt;Even google is considering using quantum search algorithms and have already bought a quantum computer[1].&lt;br /&gt;&lt;br /&gt;They are becoming less and less ignorable nowadays. One day we will wake up to find a complete revolution in computing. They are exponentially faster than ordinary computers in general. &lt;br /&gt;&lt;br /&gt;To find a good and easy (and more complete) starting point refer to [9]. However I am going to write a small introduction here.&lt;br /&gt;&lt;br /&gt;A quantum bit is the building block of quantum computers as much as the ordinary bit is the basic block of ordinary computers. Although it can not deliver or carry more than 1 bit of data in normal cases[11] (1), but in the intermediate calculation steps it can carry zero and one at the same time.&lt;br /&gt;&lt;br /&gt;Basically what that means is that using an array of n qubits, you can deliver or carry any number between 0 and 2^(n-1) just like ordinary computers, but also means that in intermediate steps ur quantum register can carry ALL these numbers at the same time, and you can do calculations on ALL of them simultaneously. That's the concepts used in all quantum algorithms. &lt;br /&gt;&lt;br /&gt;For more details I redirect the interested reader to the references mentioned below.&lt;br /&gt;&lt;br /&gt;--------FOTENOTES------&lt;br /&gt;(1) Other cases like superdense coding as in [10] uses more advanced techniques and tricks.&lt;br /&gt;&lt;br /&gt;-------REFERENCES------&lt;br /&gt;&lt;br /&gt;[1] http://www.popsci.com/technology/article/2009-12/google-algorithm-uses-quantum-computing-sort-images-faster-ever&lt;br /&gt;[2] Davide Castelvecchi, _Warp-Speed Algebra_, Scientific American January 2010 Issue, Pages 22-23.&lt;br /&gt;[3]  http://spectrum.ieee.org/computing/networks/mother-of-all-quantum-networks-unveiled-in-vienna&lt;br /&gt;[4] http://en.wikipedia.org/wiki/Grover's_algorithm&lt;br /&gt;[5] http://en.wikipedia.org/wiki/Shor's_algorithm&lt;br /&gt;[6] http://alumni.imsa.edu/~matth/quant/299/paper/node19.html&lt;br /&gt;[7] http://en.wikipedia.org/wiki/Timeline_of_quantum_computing&lt;br /&gt;[8] http://spectrum.ieee.org/computing/networks/mother-of-all-quantum-networks-unveiled-in-vienna&lt;br /&gt;[9] http://alumni.imsa.edu/~matth/quant/299/paper/paper.html&lt;br /&gt;[10] http://en.wikipedia.org/wiki/Superdense_coding&lt;br /&gt;[11] http://en.wikipedia.org/wiki/Quantum_information_theory; last modified on 13 November 2009 at 06:53; Quote: "However, despite this, the amount of information that can be retrieved in a single qubit is equal to one bit. It is in the processing of information (quantum computation) that a difference occurs"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-3692481116310048059?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/3692481116310048059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=3692481116310048059' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3692481116310048059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3692481116310048059'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/12/quantum-computings-potential-impossible.html' title='Quantum Computing&apos;s potential: impossible to ignore'/><author><name>Mohammad Alaggan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/-GRdIwXAujpA/TtsetfBGQ6I/AAAAAAAAC7E/GQhFISn43mQ/s1600/n552022084_44018_9644.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-4707059852777160839</id><published>2009-12-14T16:28:00.001+02:00</published><updated>2009-12-14T16:28:57.078+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>WSCF.blue v1.0</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial; font-size: 14px; color: rgb(51, 51, 51); line-height: 22px; "&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 9.5pt; font-family: 'Segoe UI', sans-serif; color: rgb(48, 51, 45); "&gt;WSCF.blue&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 9.5pt; font-family: 'Segoe UI', sans-serif; color: rgb(48, 51, 45); "&gt; is a Visual Studio .NET 2008 add-in that provides the following features:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in; "&gt;&lt;span style="font-family: Symbol; "&gt;&lt;span&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;A WSDL Wizard that allows the developer to step through the creation of a WSDL from one or more XSDs.&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in; "&gt;&lt;span style="font-family: Symbol; "&gt;&lt;span&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;A Data Contract Generator (similar to XSD.exe, XSDObjectGen.exe and SvcUtil.exe) that generates the .NET equivalent classes of the XSD types.&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in; "&gt;&lt;span style="font-family: Symbol; "&gt;&lt;span&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;A Service/Endpoint Stub (support for self-hosted and web-hosted) Generator and&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in; "&gt;&lt;span style="font-family: Symbol; "&gt;&lt;span&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;A Client Proxy Generator.&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in; "&gt;&lt;span style="font-family: Symbol; "&gt;&lt;span&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;A Generate Data Contract Code feature that supports the selection of multiple XSD/WSDL source files.&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in; "&gt;&lt;span style="font-family: Symbol; "&gt;&lt;span&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;A Paste XML as Schema option that generates a schema for a block of XML in the clipboard.&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in; "&gt;&lt;span style="font-family: Symbol; "&gt;&lt;span&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Support for C# and VB.NET code generation.&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in; "&gt;&lt;span style="font-family: Symbol; "&gt;&lt;span&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;You can choose if operation methods on your service class will throw a NotImplementedException, call an implementation method in a partial class, or will be defined as abstract methods.&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in; "&gt;&lt;span style="font-family: Symbol; "&gt;&lt;span&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Force the SOAP actions (Action and ReplyAction) applied to each operation contract follow the standard WCF format&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in; "&gt;&lt;span style="font-family: Symbol; "&gt;&lt;span&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman'; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;&lt;/span&gt;Errors found while processing the WSDL are reported in a WSCF.blue pane in the Visual Studio Output window.&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/27659513-4707059852777160839?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/4707059852777160839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=4707059852777160839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4707059852777160839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4707059852777160839'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/12/wscfblue-v10.html' title='WSCF.blue v1.0'/><author><name>U3</name><uri>http://www.blogger.com/profile/13058148010146480574</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_d4hNzWCEwe0/SLsFhyO4KwI/AAAAAAAAADk/laYxFhQn278/S220/U3.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-7093078035773230475</id><published>2009-12-07T16:53:00.004+02:00</published><updated>2009-12-07T17:36:43.692+02:00</updated><title type='text'>How to Get User Friends\Followers on Twitter</title><content type='html'>&lt;a href="http://twitter.com/"&gt;Twitter &lt;/a&gt;became very popular social network, all use it for different purposes i.e to expand your network, to market for your products, to be up-to-date with specific technology, or to know what people talking about is.&lt;br /&gt;Developers are users but on &lt;a href="http://twitter.com/"&gt;Twitter &lt;/a&gt;and &lt;a href="http://facebook.com/"&gt;Facebook &lt;/a&gt;they are not regular users, &lt;a href="http://twitter.com/"&gt;Twitter &lt;/a&gt;for example gives you some APIs to develop you own application and extend &lt;a href="http://twitter.com/"&gt;Twitter &lt;/a&gt;with features, it's time for everybody to extend without waiting for creators to do.&lt;br /&gt;I was developing &lt;a href="http://twitter.com/"&gt;Twitter &lt;/a&gt;application two days ago, and I faced a problem to get all user's friends\followers, I used some APIs but unfortunately, they got first 100 friends\followers!! I knew that you can browse user friends\followers for user called "RamyMahrous" like that &lt;a href="http://twitter.com/statuses/friends/ramymahrous.xml"&gt;http://twitter.com/statuses/friends/ramymahrous.xml&lt;/a&gt;?&lt;br /&gt;&lt;a href="http://twitter.com/statuses/followers/ramymahrous.xml"&gt;http://twitter.com/statuses/followers/ramymahrous.xml&lt;/a&gt;?&lt;br /&gt;But it gets just first 100 friends\followers I browsed some sites but no information, unless I went to &lt;a href="http://apiwiki.twitter.com/"&gt;Twitter API Wiki&lt;/a&gt; and I knew about XML cursor they use every cursor has limited 100 friends\followes means... if "RamyMahrous" has 204 friends so it will be iterated through 3 cursors.&lt;br /&gt;Let's code...&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; FriendsXMLFileURL = &lt;span style="color:#990000;"&gt;"http://twitter.com/statuses/friends/{0}.xml?cursor={1}"&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; FollowersXMLFileURL = &lt;span style="color:#990000;"&gt;"http://twitter.com/statuses/followers/{0}.xml?cursor={1}"&lt;/span&gt;;&lt;br /&gt;List &amp;lt; users_list &amp;gt; listUserList = new List &amp;lt; users_list &amp;gt; ();&lt;br /&gt;int index=0;&lt;br /&gt;XmlSerializer Serializer = new XmlSerializer(typeof(users_list));&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;List&lt;/span&gt; &amp;lt; &lt;span style="color:#00cccc;"&gt;users_list&lt;/span&gt; &amp;gt; listUserList = new &lt;span style="color:#3333ff;"&gt;List&lt;/span&gt; &amp;lt;&lt;span style="color:#00cccc;"&gt; users_list &lt;/span&gt;&amp;gt; ();&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;List&lt;/span&gt; &amp;lt; &lt;span style="color:#00cccc;"&gt;users_listusersuser&lt;/span&gt; &amp;gt; users = new &lt;span style="color:#3333ff;"&gt;List&lt;/span&gt; &amp;lt; &lt;span style="color:#00cccc;"&gt;users_listusersuser &lt;/span&gt;&amp;gt; ();&lt;br /&gt;&lt;span style="color:#00cccc;"&gt;users_list&lt;/span&gt; usersList = &lt;span style="color:#3333ff;"&gt;new&lt;/span&gt; &lt;span style="color:#00cccc;"&gt;users_list&lt;/span&gt;();&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;int&lt;/span&gt; index = 0;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; nextCursor = &lt;span style="color:#990000;"&gt;"-1"&lt;/span&gt;;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;while&lt;/span&gt; (nextCursor != &lt;span style="color:#cc0000;"&gt;"0"&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;usersList = (&lt;span style="color:#33ccff;"&gt;users_list&lt;/span&gt;)Serializer.Deserialize(&lt;br /&gt;XmlReader.Create(string.Format(FollowersXMLFileURL, "RamyMahrous", nextCursor)));&lt;br /&gt;listUserList.Add(usersList);&lt;br /&gt;nextCursor = usersList.next_cursor;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#009900;"&gt;//user_list class generated based on the xml structure you can save the xml file and generate it&lt;br /&gt;//using XSD please take alook on this post by Shady &lt;/span&gt;&lt;a href="http://fci-h.blogspot.com/2009/12/how-to-create-c-class-from-xml-file-via.html"&gt;&lt;span style="color:#009900;"&gt;http://fci-h.blogspot.com/2009/12/how-to-create-c-class-from-xml-file-via.html&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#009900;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#00cccc;"&gt;users_list&lt;/span&gt; userlist in listUserList)&lt;br /&gt;{&lt;br /&gt;users.InsertRange(index, userlist.users[0].user);&lt;br /&gt;index += 100;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:#009900;"&gt;//so now you've list of users you can iterate and do anything with them!&lt;br /&gt;//take a look this brings user friends\followers without providing user password!&lt;br /&gt;&lt;/span&gt;Your comments are welcome :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-7093078035773230475?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/7093078035773230475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=7093078035773230475' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/7093078035773230475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/7093078035773230475'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/12/how-to-get-user-friendsfollowers-on.html' title='How to Get User Friends\Followers on Twitter'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-8764520948044151364</id><published>2009-12-05T21:05:00.001+02:00</published><updated>2009-12-05T21:11:48.369+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Q and A'/><title type='text'>How to create a C# Class from XML file (via xsd.exe)</title><content type='html'>&lt;p&gt;A friend asked me a couple of times about how to I created the class I used in “&lt;a href="http://fci-h.blogspot.com/2009/04/twitter-common-friends.html" target="_blank"&gt;twitter common friends&lt;/a&gt;” to handle xml as objects (includes reading &amp;amp; writing back). Actually the tool (xsd.exe) is pretty simple &amp;amp; takes no more than a couple of commands to create the class for me. &lt;/p&gt;  &lt;p&gt;It’s just that I usually forget the keywords/parameters &amp;amp; their order (you can create a dataset or class that can be C# or VB, &amp;amp; there’s a couple of other option I never used before). I usually refer to its &lt;a href="http://msdn.microsoft.com/en-us/library/x6c1kb0s%28VS.71%29.aspx" target="_blank"&gt;MSDN page&lt;/a&gt; when asked.. &lt;/p&gt;  &lt;p&gt;So I thought a post would be easier to remember. First you should create the xsd file out of the xml, using the VS command prompt:&lt;/p&gt;  &lt;p&gt;xsd myFile.xml&lt;/p&gt;  &lt;p&gt;That will create “myFile.xsd”, now to create “myFile.cs”, write the below line:&lt;/p&gt;  &lt;p&gt;xsd myFile.xsd /c&lt;/p&gt;  &lt;p&gt;Now you can add the cs file to your project &amp;amp; use it as illustrated in my &lt;a href="http://fci-h.blogspot.com/2009/04/twitter-common-friends.html" target="_blank"&gt;previous post&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-8764520948044151364?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/8764520948044151364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=8764520948044151364' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8764520948044151364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8764520948044151364'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/12/how-to-create-c-class-from-xml-file-via.html' title='How to create a C# Class from XML file (via xsd.exe)'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-4727043363986320274</id><published>2009-11-28T12:18:00.007+02:00</published><updated>2009-11-28T13:33:40.475+02:00</updated><title type='text'>Generating DAL using CodeSmith and .Nettiers (step by step)</title><content type='html'>Here is a post for generating &lt;a href="http://en.wikipedia.org/wiki/Data_access_layer"&gt;DAL &lt;/a&gt;(Data Access layer) using &lt;a href="http://www.codesmithtools.com/"&gt;CodeSmith&lt;/a&gt; and .&lt;a href="http://nettiers.com/"&gt;Nettiers &lt;/a&gt;for any C# project. This post is a part of document guide I have written for a client of my company.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;For whom don't know what is &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://www.codesmithtools.com/"&gt;Codesmith &lt;/a&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt;&lt;br /&gt;CodeSmith is a software development tool to help you get your job done faster. Technically speaking it is a template driven source code generator that automates the creation of common application source code for any language (C#, Java, VB, PHP, ASP.NET, SQL, etc.).(&lt;a href="http://www.codesmithtools.com/"&gt;http://www.codesmithtools.com/&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;And .Nettiers :&lt;/span&gt;&lt;br /&gt;&lt;a href="http://nettiers.com/"&gt;.netTiers&lt;/a&gt; utilizes the power of the best code generation tool available today, CodeSmith. &lt;a href="http://nettiers.com/"&gt;.netTiers&lt;/a&gt; generated architecture is custom to your domain, uses familiar patterns, and follows the guidance of Microsoft's recommended patterns and practices. In fact, the .netTiers base architecture is built upon the Microsoft Enterprise Library Application Blocks.(&lt;a href="http://nettiers.com/"&gt;http://nettiers.com/&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note&lt;/span&gt; : these steps captured with CodeSmith 3.2 and .NetTiers but almost versions are the same.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Opening CodeSmith 3.2:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEAxw7eWJI/AAAAAAAAAl4/ykQMasClSHA/s1600/1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 240px;" src="http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEAxw7eWJI/AAAAAAAAAl4/ykQMasClSHA/s400/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5409105482396620946" border="0" /&gt;&lt;/a&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href=""&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:officedocumentsettings&gt;   &lt;o:relyonvml/&gt;   &lt;o:allowpng/&gt;  &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Chome%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Chome%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;AR-SA&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:0 0 0 0 0 0 0 0 0 0; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-update:auto; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:8.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman"; 	color:black;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:99; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:8.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman"; 	color:black;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1711496629; 	mso-list-type:hybrid; 	mso-list-template-ids:886620950 -1499940190 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:12.0pt; 	mso-bidi-font-size:12.0pt; 	mso-bidi-font-family:"Times New Roman";} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman","serif";} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:12;"&gt;&lt;span style=""&gt;1.    After setup the CodeSmith 3.2, open it from the start menu.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tKqD3VvR8CI/SxEAyDn4AVI/AAAAAAAAAmA/ho4rOdPuV1Q/s1600/2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 254px;" src="http://4.bp.blogspot.com/_tKqD3VvR8CI/SxEAyDn4AVI/AAAAAAAAAmA/ho4rOdPuV1Q/s400/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5409105487414690130" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;2.    If you haven’t license, you can continue with the trial version by pressing “Try” button.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;span style="font-size:12;"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEAyUS0UUI/AAAAAAAAAmI/33FfUQcUtyU/s1600/3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 285px;" src="http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEAyUS0UUI/AAAAAAAAAmI/33FfUQcUtyU/s400/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5409105491889770818" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;3.    From the File menu of CodeSmith press “Open” and select the Nettiers.cst inside NetTiers 2.2.0 folder.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tKqD3VvR8CI/SxEC6_GwynI/AAAAAAAAAmg/XOZ6dqp6Y10/s1600/4.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 320px;" src="http://3.bp.blogspot.com/_tKqD3VvR8CI/SxEC6_GwynI/AAAAAAAAAmg/XOZ6dqp6Y10/s400/4.JPG" alt="" id="BLOGGER_PHOTO_ID_5409107839844141682" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;  4.    Open the configuration XML file and change the connection string as in the picture(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;if you haven't Configuration file or this is first time to work with that drop this step&lt;/span&gt;&lt;span style="font-size:100%;"&gt;).&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEAyoHTu2I/AAAAAAAAAmY/2C_SZowjieU/s1600/6.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 320px;" src="http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEAyoHTu2I/AAAAAAAAAmY/2C_SZowjieU/s400/6.JPG" alt="" id="BLOGGER_PHOTO_ID_5409105497210207074" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;5.     From the Properties Tab click the open icon then select the configuration XML file&lt;/span&gt;&lt;span style="font-size:100%;"&gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;if you haven't Configuration file or this is first time to work with that drop this step&lt;/span&gt;&lt;span style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;. &lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tKqD3VvR8CI/SxEDP8vAJRI/AAAAAAAAAmo/bg9gdPH4Rio/s1600/7.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 161px;" src="http://3.bp.blogspot.com/_tKqD3VvR8CI/SxEDP8vAJRI/AAAAAAAAAmo/bg9gdPH4Rio/s400/7.JPG" alt="" id="BLOGGER_PHOTO_ID_5409108199984866578" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;6.   &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Configure the Properties Tab then &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Press the run icon.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tKqD3VvR8CI/SxEDQLHbgmI/AAAAAAAAAmw/_RzutylVGjc/s1600/8.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 348px;" src="http://3.bp.blogspot.com/_tKqD3VvR8CI/SxEDQLHbgmI/AAAAAAAAAmw/_RzutylVGjc/s400/8.JPG" alt="" id="BLOGGER_PHOTO_ID_5409108203845419618" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;7.    Be sure that no errors in the generated report and open the solution file (generated in the output directory).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEDQXpoXrI/AAAAAAAAAm4/8gcJxFfF8UM/s1600/9.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 176px;" src="http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEDQXpoXrI/AAAAAAAAAm4/8gcJxFfF8UM/s400/9.JPG" alt="" id="BLOGGER_PHOTO_ID_5409108207210094258" border="0" /&gt;&lt;/a&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Chome%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:officedocumentsettings&gt;   &lt;o:relyonvml/&gt;   &lt;o:allowpng/&gt;  &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Chome%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Chome%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;AR-SA&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:0 0 0 0 0 0 0 0 0 0; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-update:auto; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:8.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman"; 	color:black;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:99; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:8.0pt; 	font-family:"Times New Roman","serif"; 	mso-fareast-font-family:"Times New Roman"; 	color:black;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1711496629; 	mso-list-type:hybrid; 	mso-list-template-ids:886620950 -1499940190 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in; 	mso-ansi-font-size:12.0pt; 	mso-bidi-font-size:12.0pt; 	mso-bidi-font-family:"Times New Roman";} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman","serif";} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;span style=""&gt;8.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-size:12;"&gt;&lt;span style="font-size:100%;"&gt;Build the whole solution.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEDQlTrdQI/AAAAAAAAAnA/XEd1hAsuv8o/s1600/10.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 176px;" src="http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEDQlTrdQI/AAAAAAAAAnA/XEd1hAsuv8o/s400/10.JPG" alt="" id="BLOGGER_PHOTO_ID_5409108210876118274" border="0" /&gt;&lt;/a&gt;9.    After the build succeed open(your output directory\your RootNameSpace.Data.SqlClient\bin\Debug ) and get the following three DLLs to import them in your own project as the generated DAL (Data Access Layer) .&lt;br /&gt;•    your RootNameSpace.Data.dll&lt;br /&gt;•    your RootNameSpace.Data.SqlClient.dll&lt;br /&gt;•    your RootNameSpace.Entities.dll&lt;br /&gt;&lt;br /&gt;Happy Coding :)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-4727043363986320274?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/4727043363986320274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=4727043363986320274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4727043363986320274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4727043363986320274'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/11/generating-dal-using-codesmith-and.html' title='Generating DAL using CodeSmith and .Nettiers (step by step)'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tKqD3VvR8CI/SxEAxw7eWJI/AAAAAAAAAl4/ykQMasClSHA/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-3916691762606535922</id><published>2009-10-21T11:55:00.002+02:00</published><updated>2009-10-23T13:58:43.343+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDLC'/><title type='text'>Wondering about Project Managers</title><content type='html'>I had a couple of issues lately with a PM (Project Manager) at work which made me ask myself a couple of questions &amp;amp; wonder what others might be thinking of it.. I'll give my humble opinion here to start a conversation, coz I badly wanna here how others would answer them.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Should PMs know/ask much about technical decisions?&lt;/b&gt;       &lt;br /&gt;&lt;ul&gt;&lt;li&gt;IMHO, I thing the answer is NO!! PMs should be asking for less fine details like what's the estimations for doing that option or so.. But they shouldn't be asking why we are using X, or Y technology/approach to tackle a problem. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;In an agile process, where should PMs stand? What exactly is their Role? Should there be PMs in agile in the first place? Or Should they be replaced by a PO (Product Owner), or -may be- a Scrum Master?&lt;/b&gt;       &lt;br /&gt;&lt;ul&gt;&lt;li&gt;That's a question that really confuses me a lot.. I can't give a definite answer.. Should they replace POs.. Hmm. I guess not.. On one hand, a PO should be the one directing the project, knowing what the customer want.. But still, a PO -probably- should have some technical background.. So according to my answer to the previous question, PMs can't replace POs.. &lt;/li&gt;&lt;li&gt;On the other hand, Replacing a Scrum Master, is a bit too far for PMs, Scrum Master are supposed to be in favor of the development team, ie a facilitator &amp;amp; protector for the dev team; &amp;amp; PMs are notorious of failing to do so.. :D &lt;/li&gt;&lt;li&gt;Another option -that just came to me right now- is PMs replacing customer in environments where it's difficult to involve the customer. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I'm desperately waiting for your answers to either of the above questions.. I'm really confused &amp;amp; don't have enough knowledge actually to answer them.&lt;br /&gt;I might be adding other questions but for now that's what is on my mind..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-3916691762606535922?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/3916691762606535922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=3916691762606535922' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3916691762606535922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3916691762606535922'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/10/wondering-about-project-managers_21.html' title='Wondering about Project Managers'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-9161599278100491152</id><published>2009-10-18T22:02:00.003+02:00</published><updated>2009-10-18T22:07:25.236+02:00</updated><title type='text'>Deploying Reports in Reporting Services Programmatically</title><content type='html'>May be it's my bad luck may be something else, but I didn't find a complete post how to deploy Reports, and Data Sources in Reporting Services in away like BIDS.&lt;br /&gt;&lt;br /&gt;First it's a tool I developed to automate the deployment of BI solution (Creating Data warehouse, installing SSIS packages, creating Jobs, create Cubes and installing reports on Reporting Services Server).&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;If you don't have time to read and just need to download the tool, here you're&lt;/span&gt;&lt;br /&gt;&lt;span style="LINE-HEIGHT: 16px;font-family:Verdana;font-size:12;color:#333333;"   &gt;&lt;strong&gt;Source Code&lt;/strong&gt;: &lt;a href="http://cid-3e2288e7a8e55f56.skydrive.live.com/self.aspx/Public%20folder/Deploying%20Reports%20in%20Reporting%20Services%20Programmatically.zip" target="_blank"&gt;http://cid-3e2288e7a8e55f56.skydrive.live.com/self.aspx/Public%20folder/Deploying%20Reports%20in%20Reporting%20Services%20Programmatically.zip&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Herein, I'll talk about the last thing which is deploying reports.&lt;br /&gt;&lt;br /&gt;P.S: It's my way in designing such task (Installing reports on Reporting Services Server) and it's not standard or anything else just (follow your heart :))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's begin, I assume you, me, or anybody else has these 3 XML files one for folders, one for data sources and one for reports.&lt;br /&gt;&lt;br /&gt;[caption id="attachment_772" align="aligncenter" width="450" caption="Folders' XML Scheme"]&lt;a href="http://ramymahrous.wordpress.com/files/2009/10/1.jpg"&gt;&lt;img class="size-full wp-image-772  " title="Folders' XML Scheme" alt="Folders XML File Scheme" src="http://ramymahrous.wordpress.com/files/2009/10/1.jpg" width="450" height="97" /&gt;&lt;/a&gt;[/caption]&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Name&lt;/strong&gt;: Folder name to be created on Reporting Services.&lt;br /&gt;&lt;strong&gt;ParentFolder&lt;/strong&gt;: '/' means on the top == no parent folder.&lt;br /&gt;&lt;br /&gt;[caption id="attachment_773" align="aligncenter" width="450" caption="Data Sources' XML Scheme"]&lt;a href="http://ramymahrous.wordpress.com/files/2009/10/2.jpg"&gt;&lt;img class="size-full wp-image-773 " title="Data Sources' XML Scheme" alt="Data Sources' XML Scheme" src="http://ramymahrous.wordpress.com/files/2009/10/2.jpg" width="450" height="253" /&gt;&lt;/a&gt;[/caption]&lt;br /&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;Name&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;Folder&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;Description&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;HideInListView&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;Enabled&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;ConnectionString&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;Extension&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;CredentialRetrieval&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;WindowsCredentials&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;ImpersonateUser&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;ImpersonateUserSpecified&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;Prompt&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;UserName&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;Password&lt;/div&gt;&lt;br /&gt;&lt;div style="POSITION: absolute; WIDTH: 1px; HEIGHT: 1px; TOP: 580px; LEFT: -10000px" id="_mcePaste"&gt;EnabledSpecified&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;Name&lt;/strong&gt;: Data Source name to be created on Reporting Services.&lt;br /&gt;&lt;strong&gt;Folder&lt;/strong&gt;: The folder in which Data Source should be in, if we use '/' means on the top == no parent folder.&lt;br /&gt;&lt;strong&gt;Description&lt;/strong&gt;: Data Source Description.&lt;br /&gt;&lt;strong&gt;HideInListView&lt;/strong&gt;: True to hide it in the Reporting Services, otherwise False.&lt;br /&gt;&lt;strong&gt;Enabled&lt;/strong&gt;: True to be enabled, otherwise not enabled.&lt;br /&gt;&lt;strong&gt;ConnectionString&lt;/strong&gt;: Data Source connection string.&lt;br /&gt;&lt;strong&gt;Extension&lt;/strong&gt;: Configured according to the provider for more details see below table...&lt;br /&gt;&lt;table border="2"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;strong&gt;Provider&lt;/strong&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;strong&gt;Extension&lt;/strong&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Microsoft SQL Server&lt;/td&gt;&lt;br /&gt;&lt;td&gt;SQL&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;OLE DB&lt;/td&gt;&lt;br /&gt;&lt;td&gt;OLEDB&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Microsoft SQL Server Analysis Services&lt;/td&gt;&lt;br /&gt;&lt;td&gt;OLEDB-MD&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Oracle&lt;/td&gt;&lt;br /&gt;&lt;td&gt;ORACLE&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;ODBC&lt;/td&gt;&lt;br /&gt;&lt;td&gt;ODBC&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;XML&lt;/td&gt;&lt;br /&gt;&lt;td&gt;XML&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;SAP NetWeaver BI&lt;/td&gt;&lt;br /&gt;&lt;td&gt;SAPBW&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;Hyperion Essbase&lt;/td&gt;&lt;br /&gt;&lt;td&gt;ESSBASE&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;strong&gt;CredentialRetrieval&lt;/strong&gt;: How Data Source will retrieve the credential.&lt;br /&gt;&lt;strong&gt;WindowsCredentials&lt;/strong&gt;: True to use Windows credential otherwise it'd use the credential provided in this XML (Username, and Password).&lt;br /&gt;&lt;strong&gt;ImpersonateUser&lt;/strong&gt;: Indicates whether the report server attempts to impersonate a user by using stored credentials after a data processing extension has established an authenticated connection to a data source.&lt;br /&gt;&lt;strong&gt;ImpersonateUserSpecified&lt;/strong&gt;: Gets or sets a value that indicates whether the ImpersonateUser property is specified.&lt;br /&gt;&lt;strong&gt;Prompt&lt;/strong&gt;: Gets or sets the prompt that the report server displays to the user when prompting for credentials.&lt;br /&gt;&lt;strong&gt;UserName&lt;/strong&gt;: Gets or sets the user name that the report server uses to connect to a data source.&lt;br /&gt;&lt;strong&gt;Password&lt;/strong&gt;: Sets the password that the report server uses to connect to a data source. Write-only.&lt;br /&gt;&lt;strong&gt;EnabledSpecified&lt;/strong&gt;: Gets or sets a value that indicates whether the Enabled property is specified.&lt;br /&gt;&lt;br /&gt;More details on these properties &lt;a href="http://msdn.microsoft.com/en-us/library/reportservice2005.datasourcedefinition_properties.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/reportservice2005.datasourcedefinition_properties.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[caption id="attachment_774" align="aligncenter" width="450" caption="Reports' XML Scheme"]&lt;a href="http://ramymahrous.wordpress.com/files/2009/10/3.jpg"&gt;&lt;img class="size-full wp-image-774 " title="Reports' XML Scheme" alt="Reports' XML Scheme" src="http://ramymahrous.wordpress.com/files/2009/10/3.jpg" width="450" height="129" /&gt;&lt;/a&gt;[/caption]&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Name&lt;/strong&gt;: Report Name.&lt;br /&gt;&lt;strong&gt;Path&lt;/strong&gt;: .RDL file path.&lt;br /&gt;&lt;strong&gt;Folder&lt;/strong&gt;: The folder in which Report should be in, if we use '/' means on the top == no parent folder.&lt;br /&gt;&lt;strong&gt;DataSource&lt;/strong&gt;: Report's Data Source name of Reporting Services.&lt;br /&gt;&lt;br /&gt;And these configuration keys&lt;br /&gt;&lt;br /&gt;[caption id="attachment_777" align="aligncenter" width="450" caption="Configuration keys"]&lt;a href="http://ramymahrous.wordpress.com/files/2009/10/4.jpg"&gt;&lt;img class="size-full wp-image-777 " title="Configuration keys" alt="Configuration keys" src="http://ramymahrous.wordpress.com/files/2009/10/4.jpg" width="450" height="72" /&gt;&lt;/a&gt;[/caption]&lt;br /&gt;&lt;br /&gt;ReportsXMLFilePath: Reports' XML File Path&lt;br /&gt;DataSourcesXMLFilePath: Data Sources' XML File Path&lt;br /&gt;FoldersXMLFilePath: Folders' XML File Path&lt;br /&gt;ReportingServerURL: URL of Reporting Services&lt;br /&gt;&lt;br /&gt;Open visual studio and create a C# console application (we don't need any interaction with user everything configured in the application configuration file)&lt;br /&gt;&lt;br /&gt;From the project main menu Add Web Reference or Add Service Reference then Advanced then Add Web Reference...&lt;br /&gt;&lt;br /&gt;[caption id="attachment_778" align="aligncenter" width="450" caption="Add Web Reference"]&lt;a href="http://ramymahrous.wordpress.com/files/2009/10/5.jpg"&gt;&lt;img class="size-full wp-image-778 " title="Add Web Reference" alt="Add Web Reference" src="http://ramymahrous.wordpress.com/files/2009/10/5.jpg" width="450" height="358" /&gt;&lt;/a&gt;[/caption]&lt;br /&gt;&lt;br /&gt;[caption id="attachment_779" align="aligncenter" width="450" caption="Add Reporting Services Reference"]&lt;a href="http://ramymahrous.wordpress.com/files/2009/10/6.jpg"&gt;&lt;img class="size-full wp-image-779 " title="Add Reporting Services Reference" alt="Add Reporting Services Reference" src="http://ramymahrous.wordpress.com/files/2009/10/6.jpg" width="450" height="316" /&gt;&lt;/a&gt;[/caption]&lt;br /&gt;&lt;br /&gt;URL: http://{Server-Name}/reportserver/ReportService.asmx&lt;br /&gt;Web reference name: Give it meaningful name..&lt;br /&gt;&lt;br /&gt;What we did is adding web service by which we can talk to Reporting Services to ask it to do something like (create report, create data source, etc...).&lt;br /&gt;&lt;br /&gt;Let's write some very simple C# code&lt;br /&gt;We have method called DeployReports this method calls 3 other methods in order (CreateFolders, CreateDataSources, and CreateReports)&lt;br /&gt;&lt;div&gt;/// &amp;lt;summary&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// Deploys Folders, DataSources, and Reports in Reporting Services by values configured in the application configuration file.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// &amp;lt;/summary&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;private void DeployReports()&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;CreateFolders(&lt;/div&gt;&lt;br /&gt;&lt;div&gt;ConfigurationSettings.AppSettings["FoldersXMLFilePath"]);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;CreateDataSources(&lt;/div&gt;&lt;br /&gt;&lt;div&gt;ConfigurationSettings.AppSettings["DataSourcesXMLFilePath"]);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;CreateReports(Report.GetReports(&lt;/div&gt;&lt;br /&gt;&lt;div&gt;ConfigurationSettings.AppSettings["ReportsXMLFilePath"]));&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;/// &amp;lt;summary&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// Creates Folder in Reporting Services.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// &amp;lt;/summary&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// &amp;lt;param name="folderXMLFilePath"&amp;gt;XML file path holds folder information.&amp;lt;/param&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;private void CreateFolders(string folderXMLFilePath)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;ReportingService reportingServicesClient =&lt;/div&gt;&lt;br /&gt;&lt;div&gt;new ReportingService();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;reportingServicesClient.Credentials = System.Net.CredentialCache.DefaultCredentials;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;XDocument xmlDoc = XDocument.Load(folderXMLFilePath);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;try&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;var result = from c in xmlDoc.Descendants("Folder")&lt;/div&gt;&lt;br /&gt;&lt;div&gt;select new&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;name = (string)c.Element("Name").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;parentFolder = (string)c.Element("ParentFolder").Value&lt;/div&gt;&lt;br /&gt;&lt;div&gt;};&lt;/div&gt;&lt;br /&gt;&lt;div&gt;foreach (var row in result)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;reportingServicesClient.CreateFolder(row.name, row.parentFolder, null);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Logging.Log(string.Format("Folder {0} created successfully", row.name));&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;catch (Exception er)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Logging.Log(er.Message);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// &amp;lt;summary&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// Creates Data Sources in Reporting Services.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// &amp;lt;/summary&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// &amp;lt;param name="datasourceXMLFilePath"&amp;gt;XML file path holds Data Sources information.&amp;lt;/param&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;private void CreateDataSources(string datasourceXMLFilePath)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;ReportingService reportingServicesClient =&lt;/div&gt;&lt;br /&gt;&lt;div&gt;new ReportingService();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;reportingServicesClient.Credentials = System.Net.CredentialCache.DefaultCredentials;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;DataSourceDefinition tempDataSource;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;XDocument xmlDoc = XDocument.Load(datasourceXMLFilePath);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;try&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;var result = from c in xmlDoc.Descendants("DataSource")&lt;/div&gt;&lt;br /&gt;&lt;div&gt;select new&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;name = (string)c.Element("Name").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;folder = (string)c.Element("Folder").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;description = (string)c.Element("Description").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;hideInListView = (string)c.Element("HideInListView").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;enabled = (string)c.Element("Enabled").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;connectionString = (string)c.Element("ConnectionString").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;extension = (string)c.Element("Extension").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;credentialRetrieval = (string)c.Element("CredentialRetrieval").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;windowsCredentials = (string)c.Element("WindowsCredentials").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;impersonateUser = (string)c.Element("ImpersonateUser").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;impersonateUserSpecified = (string)c.Element("ImpersonateUserSpecified").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;prompt = (string)c.Element("Prompt").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;userName = (string)c.Element("UserName").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;password = (string)c.Element("Password").Value,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;enabledSpecified = (string)c.Element("EnabledSpecified").Value&lt;/div&gt;&lt;br /&gt;&lt;div&gt;};&lt;/div&gt;&lt;br /&gt;&lt;div&gt;foreach (var row in result)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;CredentialRetrievalEnum credentialRetrieval;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;EnumConverter ec =&lt;/div&gt;&lt;br /&gt;&lt;div&gt;new EnumConverter(typeof(CredentialRetrievalEnum));&lt;/div&gt;&lt;br /&gt;&lt;div&gt;credentialRetrieval = (CredentialRetrievalEnum)ec.ConvertFromString(row.credentialRetrieval);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;tempDataSource = new DataSourceDefinition();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;tempDataSource.CredentialRetrieval = credentialRetrieval;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;tempDataSource.ConnectString = row.connectionString;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;tempDataSource.Enabled = bool.Parse(row.enabled);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;tempDataSource.EnabledSpecified = bool.Parse(row.enabledSpecified);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;tempDataSource.Extension = row.extension;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;tempDataSource.ImpersonateUserSpecified = bool.Parse(row.impersonateUserSpecified);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;tempDataSource.ImpersonateUser = bool.Parse(row.impersonateUser);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;tempDataSource.Prompt = row.prompt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;tempDataSource.WindowsCredentials = bool.Parse(row.windowsCredentials);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;//tempDataSource.UserName = row.userName;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;//tempDataSource.Password = row.password;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;try&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;reportingServicesClient.CreateDataSource(row.name, row.folder, true, tempDataSource,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;null);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Logging.Log(string.Format("Data Source {0} has created successfully", row.name));&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;catch (SoapException e)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Logging.Log(e.Detail.InnerXml.ToString());&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;catch (Exception er)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Logging.Log(er.Message);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// &amp;lt;summary&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// Creates Reports in Reporting Services.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// &amp;lt;/summary&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;/// &amp;lt;param name="reports"&amp;gt;XML file path holds Reports information.&amp;lt;/param&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;private void CreateReports(Report[] reports)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;ReportingService rsc =&lt;/div&gt;&lt;br /&gt;&lt;div&gt;new ReportingService();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;rsc.Credentials = System.Net.CredentialCache.DefaultCredentials;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;foreach (Report aReport in reports)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Byte[] definition = null;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Warning[] warnings = null;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;try&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;FileStream stream = File.OpenRead(aReport.Path);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;definition = new Byte[stream.Length];&lt;/div&gt;&lt;br /&gt;&lt;div&gt;stream.Read(definition, 0, (int)stream.Length);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;stream.Close();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;catch (IOException e)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Logging.Log(e.Message);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;try&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;rsc.CreateReport(aReport.Name, aReport.Folder, true, definition, null);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;#region Setting Report Data Source&lt;/div&gt;&lt;br /&gt;&lt;div&gt;DataSourceReference reference = new DataSourceReference();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;reference.Reference = aReport.DataSource;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;DataSource[] dataSources = new DataSource[1];&lt;/div&gt;&lt;br /&gt;&lt;div&gt;DataSource ds = new DataSource();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;ds.Item = (DataSourceDefinitionOrReference)reference;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;ds.Name = aReport.DataSource.Split('/').Last();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;dataSources[0] = ds;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;rsc.SetReportDataSources(aReport.Folder + "/" + aReport.Name, dataSources);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;#endregion&lt;/div&gt;&lt;br /&gt;&lt;div&gt;if (warnings != null)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;foreach (Warning warning in warnings)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Logging.Log(string.Format("Report: {0} has warnings", warning.Message));&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;else&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Logging.Log(string.Format("Report: {0} created successfully with no warnings", aReport.Name));&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;catch (SoapException e)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;{&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Logging.Log(e.Detail.InnerXml.ToString());&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="LINE-HEIGHT: 16px;font-family:Verdana;font-size:12;color:#333333;"   &gt;Report\Logger Class will be attached in the Source code...&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="LINE-HEIGHT: 16px;font-family:Verdana;font-size:12;color:#333333;"   &gt;&lt;strong&gt;I don't see any tough code to explain any developer familiar with C# will understand it very well, but if you have any question please feel free to ask me.&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="LINE-HEIGHT: 16px;font-family:Verdana;font-size:12;color:#333333;"   &gt;&lt;strong&gt;Source Code&lt;/strong&gt;: &lt;a href="http://cid-3e2288e7a8e55f56.skydrive.live.com/self.aspx/Public%20folder/Deploying%20Reports%20in%20Reporting%20Services%20Programmatically.zip" target="_blank"&gt;http://cid-3e2288e7a8e55f56.skydrive.live.com/self.aspx/Public%20folder/Deploying%20Reports%20in%20Reporting%20Services%20Programmatically.zip&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-9161599278100491152?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/9161599278100491152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=9161599278100491152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/9161599278100491152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/9161599278100491152'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/10/may-be-its-my-bad-luck-may-be-something.html' title='Deploying Reports in Reporting Services Programmatically'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-1834876001180101135</id><published>2009-10-11T16:39:00.003+02:00</published><updated>2009-10-11T16:43:49.635+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL'/><title type='text'>Table-Value and Temp Tables</title><content type='html'>&lt;b&gt;Table-Value Parameters&lt;/b&gt;&lt;br /&gt;Table-value parameters offer more flexibility and better performance than temporary tables to pass a list of parameters. Table-value parameters do not acquire locks for the initial population of data from a client and do not cause a statement to recompile.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Table-value parameters offer the following benefits:&lt;/b&gt;&lt;br /&gt;·Provide a simple programming model.&lt;br /&gt;·Enable inclusion of complex business logic in a single routine.&lt;br /&gt;·Reduce round trips to the server.&lt;br /&gt;·Include a table structure of different cardinality.&lt;br /&gt;·Enable strongly typed and set-oriented queries.&lt;br /&gt;·Enable the client to specify sort order and unique keys.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Table-value parameters have the following restrictions:&lt;/b&gt;&lt;br /&gt;·Statistics are not maintained on columns of table-value parameters.&lt;br /&gt;·Table-value parameters must be passed as input READONLY parameters to Transact-SQL routines.&lt;br /&gt;·DML operations such as UPDATE, DELETE, or INSERT cannot be performed on a table-value parameter in the body of a routine.&lt;br /&gt;·Table-value parameters cannot be used as the target of a SELECT INTO or INSERT EXEC statement. Table-value parameters can be in the FROM clause of SELECT INTO, or in the INSERT EXEC string or stored procedure.&lt;br /&gt;&lt;br /&gt;Source: &lt;a href="http://bit.ly/3rmMLK"&gt;http://bit.ly/3rmMLK&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-1834876001180101135?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/1834876001180101135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=1834876001180101135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1834876001180101135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1834876001180101135'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/10/table-value-and-temp-tables.html' title='Table-Value and Temp Tables'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-1218081756064323183</id><published>2009-09-12T00:53:00.003+02:00</published><updated>2009-09-12T01:39:36.761+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Reading POP3 (secure) SSL like Gmail via C#</title><content type='html'>&lt;span style=";font-family:arial;font-size:100%;"  &gt;Friend of mine asked me about reading messages by pop3 protocol using C#code. After I did some search in Google I got a lot of pop agents that working fine but not with Gmail as it uses secure connection (SSL) so I did new search in google and &lt;a href="http://sourceforge.net/"&gt;sourceforge &lt;/a&gt;but most of them have exceptions or not working fine and this is the main reason for this post to continue work from the point I have stoped.&lt;br /&gt;&lt;br /&gt;After a hard search in alot of pages I got two good result :&lt;br /&gt;1- it is a &lt;a href="http://ahmedessawy.googlepages.com/Pop3Client.zip"&gt;good project&lt;/a&gt; (&lt;a href="http://blog.opo.li/post/Developing-a-CSharp-POP3-Client-Part-03.aspx"&gt;from this blog&lt;/a&gt;) have good description  that implements the standard POP3 commands like authenticating, receiving stats, retrieving and deleting messages .&lt;br /&gt;&lt;br /&gt;2-There are open source project called &lt;a href="http://sourceforge.net/projects/hpop/"&gt;OpenPOP &lt;/a&gt;in sourefourge but have bugs and fixed (&lt;a href="http://ahmedessawy.googlepages.com/OpenPOP_source.zip"&gt;here&lt;/a&gt;) in this &lt;a href="http://kiran-banda.blogspot.com/2008/11/pop3-client-in-c.html" target="_blank"&gt;blog&lt;/a&gt; by Kiran banda,unfortantualy it have build errors but i fix it (&lt;a href="http://ahmedessawy.googlepages.com/newOpenPOP_source.rar"&gt;here&lt;/a&gt;) but it needs some work to go live.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Related post : &lt;/span&gt;&lt;br /&gt;&lt;a href="http://fci-h.blogspot.com/2009/09/reading-atom-feed-of-gmail-inbox-via-c.html"&gt;Reading Atom feed of Gmail inbox via C#&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-1218081756064323183?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/1218081756064323183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=1218081756064323183' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1218081756064323183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1218081756064323183'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/09/reading-pop3-secure-ssl-like-gmail-via.html' title='Reading POP3 (secure) SSL like Gmail via C#'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-3112539083690136678</id><published>2009-09-11T16:41:00.009+02:00</published><updated>2009-09-16T23:12:52.994+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Reading Atom feed of Gmail inbox via C#</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tKqD3VvR8CI/SqpyzVkK-6I/AAAAAAAAAlQ/HpLF3-Ll2SE/s1600-h/gmail-logo-google-tm.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 203px; height: 147px;" src="http://4.bp.blogspot.com/_tKqD3VvR8CI/SqpyzVkK-6I/AAAAAAAAAlQ/HpLF3-Ll2SE/s400/gmail-logo-google-tm.jpg" alt="" id="BLOGGER_PHOTO_ID_5380238931135232930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=";font-family:times new roman;font-size:100%;"&gt;&lt;br /&gt;Today I am coming with &lt;a href="http://gmail.com/"&gt;Gmail &lt;/a&gt;feature that may be useful although many people don't know and how to access it via simple C# code.&lt;br /&gt;Gmail &lt;a href="http://en.wikipedia.org/wiki/Atom_%28standard%29"&gt;Atom&lt;/a&gt; feed is xml format file to know the unread messages .&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mail.google.com/mail/feed/atom/"&gt;http://mail.google.com/mail/feed/atom/&lt;/a&gt; shows the most recent unread items from your inbox. &lt;a href="http://gmail.com/"&gt;Gmail &lt;/a&gt;also offers feeds for your labels:&lt;a href="http://mail.google.com/mail/feed/atom/labelname/"&gt;http://mail.google.com/mail/feed/atom/labelname/&lt;/a&gt; .&lt;br /&gt;To know the feature in detials&lt;a href="http://googlesystem.blogspot.com/2008/03/feed-for-unread-gmail-messages.html"&gt; go to this link&lt;/a&gt; @ (the unofficial news and tips about Google).&lt;br /&gt;&lt;br /&gt;As a developer you can download the C# &lt;a href="http://ahmedessawy.googlepages.com/GmailAtomHandler1.rar"&gt;example here&lt;/a&gt;.&lt;br /&gt;All what you need is create instance a simple class called &lt;a href="http://ahmedessawy.googlepages.com/GmailHandler.cs"&gt;GmailHandler &lt;/a&gt;and drop this lines in your project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;"&gt;//just 2 steps to get your Gmail Atom&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;"&gt;//1- Create the object from GmailHandler class&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GmailHandler gmailFeed = new GmailHandler(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;"&gt;"WriteHereYourGmailUserName(ex: fci-h)"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;"&gt;"WriteHereYourGmailPassword(ex: XXX)"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;"&gt;//2-get the feed :) ,Congratulations&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XmlDocument myXml = gmailFeed.GetGmailAtom();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;Just happy code :)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-3112539083690136678?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/3112539083690136678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=3112539083690136678' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3112539083690136678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/3112539083690136678'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/09/reading-atom-feed-of-gmail-inbox-via-c.html' title='Reading Atom feed of Gmail inbox via C#'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tKqD3VvR8CI/SqpyzVkK-6I/AAAAAAAAAlQ/HpLF3-Ll2SE/s72-c/gmail-logo-google-tm.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-2702373725786514806</id><published>2009-09-10T05:16:00.000+02:00</published><updated>2009-09-10T05:22:57.137+02:00</updated><title type='text'>Backup and Restore SQl Server DB by c#</title><content type='html'>In this post I am going to talk about SQL server DB backup and restore via C#.&lt;br /&gt;lets get into the code.&lt;br /&gt;&lt;br /&gt;First thing, you have to reference the following two references&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Microsoft.SqlServer.ConnectionInfo&lt;/li&gt;&lt;li&gt;Microsoft.SqlServer.Smo&lt;/li&gt;&lt;/ol&gt; --------------------------------------------------------------------&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) Create a connection to the SQL Server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;private static Server CreateServerConnection(string ServerIP, string SQLInstanceName, string userName, string password)&lt;br /&gt;     {&lt;br /&gt;              try&lt;br /&gt;          {&lt;br /&gt;                           // Create a new connection to the selected server name&lt;br /&gt;              ServerConnection srvConn = new ServerConnection(ServerIP+ @"\" + SQLInstanceName);&lt;br /&gt;&lt;br /&gt;           // Log in using SQL authentication instead of Windows authentication&lt;br /&gt;                         srvConn.LoginSecure = false;&lt;br /&gt;&lt;br /&gt;            // Give the login username&lt;br /&gt;              srvConn.Login = userName;&lt;br /&gt;&lt;br /&gt;           // Give the login password&lt;br /&gt;           srvConn.Password = password;&lt;br /&gt;&lt;br /&gt;           // Create a new SQL Server object using the connection we created&lt;br /&gt;             return new Server(srvConn);&lt;br /&gt;         }&lt;br /&gt;         catch (Exception ex)&lt;br /&gt;         {&lt;br /&gt;             // Handle Exceptions&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;--------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) Perform DB Backup&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;     /// &lt;param name="backUpFileName"&gt;The name of the .bak file&lt;br /&gt;     /// &lt;param name="SQLInstanceName"&gt;SQL Server instance name&lt;br /&gt;     /// &lt;param name="DBName"&gt;The name of the Db we want to backup&lt;br /&gt;     /// &lt;param name=""&gt;serverIP&lt;span&gt;"&gt;IP of the server where the SQL server installed&lt;br /&gt;     /// &lt;param name="UserName"&gt;for sql Authentication, example sa&lt;br /&gt;     /// &lt;param name="password"&gt;Password of the DB user&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;public static void BackUpDB(string backUpFileName, string SQLInstanceName, string DBName, string serverIP, string userName, string password)&lt;br /&gt;     {&lt;br /&gt;         try&lt;br /&gt;         {&lt;br /&gt;             Backup bDatabase = new Backup();&lt;br /&gt;&lt;br /&gt;             // Set the backup type to a database backup&lt;br /&gt;             bDatabase.Action = BackupActionType.Database;&lt;br /&gt;&lt;br /&gt;             // Set the database that we want to perform a backup on&lt;br /&gt;             bDatabase.Database = DBName;&lt;br /&gt;&lt;br /&gt;             // Set the backup device to a file&lt;br /&gt;             BackupDeviceItem bkDevice = new BackupDeviceItem(backUpFileName, DeviceType.File);&lt;br /&gt;&lt;br /&gt;             // Add the backup device&lt;br /&gt;             bDatabase.Devices.Add(bkDevice);&lt;br /&gt;&lt;br /&gt;             //Check if the file exists&lt;br /&gt;             if (File.Exists(backUpFileName))&lt;br /&gt;                 File.Delete(backUpFileName);&lt;br /&gt;&lt;br /&gt;             // Perform the backup&lt;br /&gt;             bDatabase.SqlBackup(CreateServerConnection(serverIP, SQLInstanceName, UserName, password));&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;         catch (Exception ex)&lt;br /&gt;         {&lt;br /&gt;             // Handle Exceptions&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;-------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) Perform DB Restore&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span&gt; /// &lt;param name="restoreFileName"&gt;the .bak file&lt;br /&gt;     /// &lt;param name="SQLInstanceName"&gt;&lt;br /&gt;     /// &lt;param name="DBName"&gt;&lt;br /&gt;     /// &lt;param name="serverIP"&gt;&lt;br /&gt;     /// &lt;param name="userName"&gt;&lt;br /&gt;     /// &lt;param name="password"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;public static void RestoreDB(string restoreFileName, string SQLInstanceName, string DBName, string serverIP, string userName, string password)&lt;br /&gt;     {&lt;br /&gt;         try&lt;br /&gt;         {&lt;br /&gt;         &lt;br /&gt;             Restore rDatabase = new Restore();&lt;br /&gt;&lt;br /&gt;             // Set the restore type to a database restore&lt;br /&gt;             rDatabase.Action = RestoreActionType.Database;&lt;br /&gt;&lt;br /&gt;             // Assign a db to restore operation&lt;br /&gt;             rDatabase.Database = DBName;&lt;br /&gt;&lt;br /&gt;             // Set the backup device to restore from file&lt;br /&gt;             BackupDeviceItem bkDevice = new BackupDeviceItem(restoreFileName, DeviceType.File);&lt;br /&gt;&lt;br /&gt;             // Add the backup device to the restore type&lt;br /&gt;             rDatabase.Devices.Add(bkDevice);&lt;br /&gt;&lt;br /&gt;             // Replace the Db if already exists&lt;br /&gt;             rDatabase.ReplaceDatabase = true;&lt;br /&gt;&lt;br /&gt;             if (File.Exists(restoreFileName))&lt;br /&gt;                 // restore&lt;br /&gt;                 rDatabase.SqlRestore(&lt;/span&gt;CreateServerConnection&lt;span&gt;(serverIP, SQLInstanceName, userName, password));&lt;br /&gt;         }&lt;br /&gt;         catch (Exception ex)&lt;br /&gt;         {&lt;br /&gt;              // Handle Exceptions&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;     }&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;---------------------------------------------------&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;That's it&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-2702373725786514806?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/2702373725786514806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=2702373725786514806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/2702373725786514806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/2702373725786514806'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/09/backup-and-restore-sql-server-db-by-c.html' title='Backup and Restore SQl Server DB by c#'/><author><name>Mohamed Gamal El-Din</name><uri>http://www.blogger.com/profile/09385298097882580455</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_dj--lypvJ8o/Ru60jLygr2I/AAAAAAAAAEU/Xmqif4cX5lo/S226/n656985328_138032_4370.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-4159238053364880073</id><published>2009-09-09T15:13:00.000+02:00</published><updated>2009-09-09T15:21:30.512+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDS'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL'/><title type='text'>Want to learn SQL Server Data Services (SDS)?</title><content type='html'>Overview of Microsoft SQL Server Data Services&lt;br /&gt;&lt;span style="color:#888888;"&gt;&lt;span style="color:#808080;"&gt; This 1-hour online clinic provides SQL Server developers who are experienced in implementing database solutions with an overview of SQL Server Data Services (SSDS).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#888888;"&gt;&lt;span style="color:#808080;"&gt;The topics covered in the clinic include:&lt;br /&gt;- Introduction to SSDS&lt;br /&gt;- SSDS Object Model&lt;br /&gt;- Working with SSDS&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#888888;"&gt;&lt;br /&gt;&lt;/span&gt; More on: &lt;a href="http://learning.microsoft.com/Manager/ResourceDetails.aspx?resourceId=cbe836be-394e-4a23-9f87-5d12127cccd5&amp;amp;clang=en-US&amp;amp;brand=Learning" target="_blank"&gt;http://learning.microsoft.com/Manager/ResourceDetails.aspx?resourceId=cbe836be-394e-4a23-9f87-5d12127cccd5&amp;amp;clang=en-US&amp;amp;brand=Learning&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Developing an Application for Microsoft SQL Server Data Services&lt;br /&gt;&lt;span style="color:#808080;"&gt; This 1-hour online clinic provides SQL Server developers who are experienced in implementing database solutions with an explanation of the knowledge and skills required to develop an application in SQL Server Data Services (SSDS).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#808080;"&gt;Topics covered in the clinic include:&lt;br /&gt;- Building an SSDS Application&lt;br /&gt;- Enhancing an SSDS Application&lt;/span&gt;&lt;br /&gt;More on: &lt;a href="http://learning.microsoft.com/Manager/ResourceDetails.aspx?resourceId=9b2d7204-9f2e-4657-a4c7-0952b32ae081&amp;amp;clang=en-US&amp;amp;brand=Learning" target="_blank"&gt;http://learning.microsoft.com/Manager/ResourceDetails.aspx?resourceId=9b2d7204-9f2e-4657-a4c7-0952b32ae081&amp;amp;clang=en-US&amp;amp;brand=Learning&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More on SQL Azure Database: &lt;a href="http://www.microsoft.com/azure/data.mspx" target="_blank"&gt;http://www.microsoft.com/azure/data.mspx &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-4159238053364880073?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/4159238053364880073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=4159238053364880073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4159238053364880073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4159238053364880073'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/09/want-to-learn-sql-server-data-services.html' title='Want to learn SQL Server Data Services (SDS)?'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-5358907734593871330</id><published>2009-08-19T15:25:00.006+03:00</published><updated>2009-08-19T20:34:59.506+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Disabling the mouse right click : JavaScript</title><content type='html'>&lt;span style="color: rgb(51, 51, 51);"&gt;As mention in the title here is code to disable the right click for the mouse in the browser (tested in IE ).&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;The code is JavaScript ,the code is readable and can be used to handle other mouse events.&lt;/span&gt;&lt;br /&gt;just call &lt;span style="color: rgb(51, 51, 255);"&gt;DisableRightclick&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;() &lt;span style="color: rgb(0, 0, 0);"&gt;once in your page&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;[script   language="javascript"      ]&lt;br /&gt;var IE;&lt;br /&gt;var NN;&lt;br /&gt;function right(click)&lt;br /&gt;{&lt;br /&gt;if(IE &amp;amp;&amp;amp; (event.button==2 || event.button==3))&lt;br /&gt;{&lt;br /&gt;alert("The right click has been disabled here.");&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if(NN &amp;amp;&amp;amp; (click.which==2 || click.which==3))&lt;br /&gt;{&lt;br /&gt;alert("The right click has been disabled here.");&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;DisableRightclick&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;()&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if(navigator.appName=="Microsoft Internet Explorer")&lt;br /&gt;{&lt;br /&gt;IE=true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if(navigator.appName=="Netscape")&lt;br /&gt;{&lt;br /&gt;NN=true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if (document.layers) window.captureEvents(Event.MOUSEDOWN);&lt;br /&gt;if (document.layers) window.captureEvents(Event.MOUSEUP);&lt;br /&gt;document.onmousedown=right;&lt;br /&gt;document.onmouseup=right;&lt;br /&gt;window.document.layers=right;&lt;br /&gt;}&lt;br /&gt;[/script]&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-5358907734593871330?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/5358907734593871330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=5358907734593871330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5358907734593871330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5358907734593871330'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/08/disabling-mouse-right-click-javascript.html' title='Disabling the mouse right click : JavaScript'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-5096431719173437210</id><published>2009-08-19T14:56:00.006+03:00</published><updated>2009-08-19T15:40:57.836+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Check Acrobat Reader (PDF) installed : JavaScript with IE</title><content type='html'>Here you can find helper function I got by Google and do some changes to it to be suitable for me .It checks if the Acrobat Reader is installed in the browser or not (it tested on IE6 and IE7 with Acrobat 6 and 7).&lt;br /&gt;Function returns  : true for OK else false .&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;function CheckPDF()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; var isInstalled = false;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; var version = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; if (window.ActiveXObject)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     var control = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     try {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;          // version 7 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;          control = new ActiveXObject('AcroPDF.PDF');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;         }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     catch (e)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;         {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;          // Do nothing&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;         }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;     if (!control)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;           {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;           try {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;               //version 6 &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;               control = new ActiveXObject('PDF.PdfCtrl');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;               }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;           catch (e)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;              {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;              return   false ;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;              }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;           }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;      if (control)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;              return  true ;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;      else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;       return false ;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-5096431719173437210?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/5096431719173437210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=5096431719173437210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5096431719173437210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5096431719173437210'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/08/check-acrobat-reader-pdf-installed.html' title='Check Acrobat Reader (PDF) installed : JavaScript with IE'/><author><name>Ahmed Essawy</name><uri>http://www.blogger.com/profile/02553277669431055635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://photos1.blogger.com/x/blogger2/7453/3526/226/z/959410/gse_multipart31946.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-4795413266161596530</id><published>2009-08-15T01:51:00.002+03:00</published><updated>2009-08-15T01:54:24.157+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><title type='text'>Integrating SSIS with C# to deliver very scalable Data-Driven Solution</title><content type='html'>&lt;p style="direction:rtl;text-align:right;"&gt;نوضح في هذه المقاله استخدام ال SSIS  لبناء C# application to get very scalable data-driven solution  و كيفيه ارتباط ال C#  بالـ SSIS&lt;/p&gt;&lt;p style="direction:rtl;text-align:right;"&gt;ما هم ال SSIS  ؟؟ كيفيه الحصول عليه ؟؟ وماهي مميزاته؟؟ وفيما يستخدم اكثر؟؟&lt;/p&gt;&lt;p style="direction:rtl;text-align:right;"&gt;اولا SSIS  تعني SQL Server Integration Services  وهى احدى منتجات ميكروسوفت ويأتي مع جميع نسخ ال SQL Server  ما عدا ال Express  كان يسمى فيما سبق DTS  لكن SSIS  يعتبر منتج جديد وليس تحديثا من ال DTS&lt;/p&gt;&lt;p style="direction:rtl;text-align:right;"&gt;هي اداه قامت ميكروسوفت بتطويره و اخراجه للسوق عام 2007 وتهدف الى نقل البيانات من اكثر من Data Repository  الى Data Repository  اخر مثلا نقل البيانات من ملف نصي، ملف Excel  او قاعاده بيانات SQL or Access  الى جدول في قاعده بيانات في ال SQL Server  دون الحاجه لوجود SQL Server  ولا يجب مصدر البيانات او وصول البيانات SQL Server بأختصار يكمن استخدمها لنقل البيانات من ملف نصي الى قاعده بيانات Oracle تعتبر ال SSIS  اداه ETL (Extract, Transform, and Load)  اي انها تقوم بأخد البيانات من المصادر تحسين البيانات بشكل وتنظيمه وبعد هذا نقلها الى نقطه الوصول.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/01250248493.png"&gt;&lt;img class="alignnone" title="1" src="http://www.vb4arab.com/vb/uploaded/17528/01250248493.png" alt="" width="415" height="173" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="direction:rtl;text-align:right;"&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/01250248493.png"&gt;&lt;/a&gt;تستخدم في تطوير Business Intelligence Applications حيث ان هذه ال Applications  تعتمد على مستودعات بيانات ضخمة Huge Data Repository تسمى Data Warehouse ويتم  تطوير ال Data Warehouse بأخذ البيانات من المصادر المختلفه وتكوين ال Data  Warehouse وكما قلنا ان ال SSIS من يقوم بعمل هذا.&lt;br /&gt;من احدى مميزات ال SSIS انه  يمكن تحميل البيانات من مصادر مختلفه و وضعها في DataReader في بيئه ال .NET ويمكن  الدمج بين C# Application و SSIS Package و تعتبر ال SSIS Package هي الناتج من عمل  ال SSIS كما سوف نتعلم في هذه المقاله.&lt;br /&gt;تطبيق :&lt;br /&gt;سنحاول في هذا التطبيق فصل ال  Developer عن مركز تواجد البيانات حيث انه من الممكن ان يوجد اكتر من مركز للبيانات  ولكن نريد ان نعرض هذه البيانات في Application دون الحاجه للتعديل في أي شيء،  وبدلاً من بناء اكثر من اداه لهذا الغرض ، لدينا SSIS لتقدم لنا حل الدمج بين ال  Application و ال SSIS .&lt;br /&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/11250248493.png"&gt;&lt;img class="alignnone" title="2" src="http://www.vb4arab.com/vb/uploaded/17528/11250248493.png" alt="" width="450" height="330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="direction:rtl;text-align:right;"&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/11250248493.png"&gt;&lt;/a&gt; اولا نبدأ بعمل ال SSIS Package وسوف نقوم الان خطوه بخطوه بكيفيه بنائها&lt;/p&gt;&lt;br /&gt;&lt;p style="direction:rtl;text-align:right;"&gt;1- &lt;span style="direction:rtl;text-align:right;"&gt;افتح &lt;/span&gt;&lt;span&gt;Microsoft  Visual Studio 2008&lt;/span&gt;&lt;span&gt; من القائمه اختار &lt;/span&gt;&lt;span&gt;File -&amp;gt; New-&amp;gt;Project &lt;/span&gt;&lt;span&gt;من &lt;/span&gt;&lt;span&gt;Project types &lt;/span&gt;&lt;span&gt;اختار &lt;/span&gt;&lt;span&gt;Business intelligence projects &lt;/span&gt;&lt;span&gt;ثم &lt;/span&gt;&lt;span&gt;Integration Services  Project&lt;/span&gt;&lt;span&gt; و نسميه &lt;/span&gt;&lt;span&gt;DataCollector&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img class="alignnone" title="3" src="http://www.vb4arab.com/vb/uploaded/17528/21250248493.png" alt="" width="408" height="293" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p style="direction:rtl;text-align:right;"&gt;&lt;span&gt;2- نلاحظ وجود SSIS Packages في ال Server Explorer نسميه  DataCollectorPackage.dtsx ونسحب Data Flow Task من شريط الادوات ونضعه في Control  Flow كما هو مبين&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt; &lt;a href="http://www.vb4arab.com/vb/uploaded/17528/31250248493.png"&gt;&lt;img class="alignnone" title="4" src="http://www.vb4arab.com/vb/uploaded/17528/31250248493.png" alt="" width="708" height="150" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;3- ننقر مرتين على ال Data Flow Task لكي نبني تحميل الData من اكتر من مصدر كما هو  في حالتنا تحميله من Excel File و Text File و قاعده بيانات ووضعها في Data Reader  كما سنشاهد تباعا&lt;/div&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;4- نسحب من شريط الادوات جزء Data Flow Sources 3 مصادر  للبيانات Excel Source و ADO.NET Source و Flat File Source كما هو مبين&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/41250248493.png"&gt;&lt;img class="alignnone" title="5" src="http://www.vb4arab.com/vb/uploaded/17528/41250248493.png" alt="" width="383" height="52" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;نلاحظ وجود علامه x&lt;span&gt; حمراء تدل على وجود خطأ ما وهذا ناتج على  عدم وجود اتصال هذه المصادر بمصادر بيانات حقيقيه وهو ما سنحاول التخلص من هذه  العلامه الحمراء الامر الذي لن يستغرق غير بضع ثوان.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span&gt; &lt;/span&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;5- نضغط بالزر الايمن للماوس على Excel Source لربطه بملف Excel  واختار Edit يظهرلك Dialog اختار New لعمل Connection Manager لهذا الملف كما هو  مبين&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/51250248493.png"&gt;&lt;img class="alignnone" title="6" src="http://www.vb4arab.com/vb/uploaded/17528/51250248493.png" alt="" width="407" height="231" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;بعد ذلك Preview للتأكد من صحة البيانات و اختار بعد ذلك OK&lt;/div&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;6- كرر عد ذلك هذه  العمليه مع باقي مصادر البيانات.&lt;/div&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;7- نسحب من شريط الادوات جزء ال Data  Transformation مايسمى بال Data Conversion والسبب هنا ان البيانات تأتي من اكتر من  مصدر حيث ال String من قاعده البيانات يختلف مع الملف النصي مع ال Excel Sheet لذا  يجب وهذا الزام ان نوحد نوع البيانات و طولها. اسحب السهم الاخضر من كل مصدر الى  واحد من ال Data Conversion&lt;/div&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;8- اضغط بالازر اليمن للماوس على واحد من ال Data  Conversion حيث سوف نقوم بتكرار هذه العمليه مع الباقي وبعد ذلك Edit&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/01250248716.png"&gt;&lt;img class="alignnone" title="7" src="http://www.vb4arab.com/vb/uploaded/17528/01250248716.png" alt="" width="417" height="294" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;وبعد ذلك OK&lt;span&gt; . لا تنس ان تكرر هذه العمليه مع  الباقي!!&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="direction:rtl;"&gt;9- اسحب من شريط الادوات جزء ال Data  Transformation مايسمى بال Union All وواضح من الاسم انه يجمع اكتر من شكل للبيانات  في وحده واحده. كل ما عليك ان تسحب كل الاسهم الخارجه من ال Data Conversion  ووادخالها في ال Union All&lt;/div&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;10- اسحب من شريط الادوات جزء ال Data  Transformation مايسمى بال Sort لترتيب البيانات المجمعه من اكتر من مصدر البيانات&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/11250248716.png"&gt;&lt;img class="alignnone" title="8" src="http://www.vb4arab.com/vb/uploaded/17528/11250248716.png" alt="" width="353" height="392" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;11- اسحب من شريط الادوات جزء ال Data Flow Destination مايسمى بال Data Reader  Destination ونسحب السهم الخارج من Sort لل Data Reader Destination ونسمي هذا  DataReaderDest&lt;/div&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;12- لقد انتهينا بالفعل وال Data Flow يجب ان يكون مثل هذا&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/21250248716.png"&gt;&lt;img class="alignnone" title="9" src="http://www.vb4arab.com/vb/uploaded/17528/21250248716.png" alt="" width="367" height="242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;13- اضغط F5 لبناء ال Package يجب ان تظهرك جميع البيانات مرتبه (ستجد الملفات  مدمجه مع هذا المقال) ان وجد خطأ لا تتردد في سوألي.&lt;/div&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;14- حان الوقت لبناء ال C#  Application وهذا سوف يأخد وقت صغير و هو كل ما عليك فعله اضافه مشروع من نوع C#  Windows Forms Application وادراج DataGridView و Button من شريط الادوات&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/31250248716.png"&gt;&lt;img class="alignnone" title="10" src="http://www.vb4arab.com/vb/uploaded/17528/31250248716.png" alt="" width="221" height="136" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;15- من القائمه الرئيسيه Project ثم Add reference لهذه الملفات&lt;/div&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;16- نقرتين على  ال Button لتنفيذ ال Event Handler لل Click ونكتب هذه الاسطر&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/41250248716.png"&gt;&lt;img class="alignnone" title="11" src="http://www.vb4arab.com/vb/uploaded/17528/41250248716.png" alt="" width="430" height="272" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;مؤكد ان هذه الاسطر لكن لنشرحها أيضاً ، بنظره مبدأيه هنا نعتبر ال Package مثل  قاعده البيانات نأخد منها البيانات لذا يجب توافر شيئين مهمين اولا ال Connection  String و Command&lt;/div&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;بالنسبه لل Connection String يمكن الحصول على ال Package  بأكثر من طريقه الاختصار هنا نحصل عليها وهي موجوده في ال HDD لذا في ال Connection  String كلمة /FILE نأتي لل Command ونعطيه الشئ الذي يحصل على البيانات منه وهو ال  Data Reader Destination وكما سمناه في ال Package DataReaderDest و ننفذ هذا ال  Command ، الناتج سيعود بكائن من النوعReader لذلك اخذنا instance من IDataReader  والباقي هو تحميل هذه البيانات الي ال DataGridView كما هو موضح&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.vb4arab.com/vb/uploaded/17528/51250248716.png"&gt;&lt;img class="alignnone" title="13" src="http://www.vb4arab.com/vb/uploaded/17528/51250248716.png" alt="" width="377" height="243" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="direction:rtl;text-align:right;"&gt;والسلام عليكم ورحمه الله وبركاته&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-4795413266161596530?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/4795413266161596530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=4795413266161596530' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4795413266161596530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4795413266161596530'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/08/integrating-ssis-with-c-to-deliver-very.html' title='Integrating SSIS with C# to deliver very scalable Data-Driven Solution'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-2350808513538630211</id><published>2009-07-03T02:06:00.001+03:00</published><updated>2009-07-03T02:06:53.138+03:00</updated><title type='text'>Building ASP.NET Reporting OLAP-Based Application Part-3</title><content type='html'>&lt;div&gt;In the previous two posts building the Cube and building the Report, we discovered how BIDS helps in developing BI applications in robust, managed and organized way. I believe if you have few BI concepts you can do this walkthrough in 10 minutes.&lt;/div&gt;&lt;div&gt;Let’s come to the last layer which I see it’s the presentation layer. One question may come to your mind why I build ASP.NET application over Reporting Service? Why I don’t give the end user Reporting Service Server URL. Because of security? NO. Reporting Service Server can manage different types of security which doesn’t put headache on your development team but what if your end user need UI layer say in Silverlight? How can you embed in the Reporting Service. We have ReportViewer Windows\Web control which provides a very rich of functionality to View Reporting Service (Local and Server) Reports. In our walkthrough we use Server Report.&lt;/div&gt;&lt;div&gt;Let’s open our previous solution and add a new ASP.NET web application project: InternetSalesWebsite&lt;/div&gt;&lt;div&gt;Default.aspx page open in source view, switch to Design view. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img class="size-full wp-image-86 aligncenter" title="rs-p3-1" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p3-1.jpg" alt="rs-p3-1" width="450" height="291" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;From ToolBox-&amp;gt;Reporting-&amp;gt; drag MicrosoftReportView control and drop it on the page drag also a Button then close the ToolBox because it slow down VS IDE. (Thanks to Taha Amin how helped me in this)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel="attachment wp-att-87" href="http://fcihelwan.wordpress.com/?attachment_id=87"&gt;&lt;img class="aligncenter size-full wp-image-87" title="rs-p3-2" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p3-2.jpg" alt="rs-p3-2" width="209" height="208" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel="attachment wp-att-88" href="http://fcihelwan.wordpress.com/?attachment_id=88"&gt;&lt;img class="aligncenter size-full wp-image-88" title="rs-p3-3" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p3-3.jpg" alt="rs-p3-3" width="450" height="188" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="text-align:left;"&gt;So from ToolBox drag two CheckBoxList, one for product dimension and one for promotion dimension&lt;/div&gt;&lt;div&gt;For the first CheckBoxList ProductList we need to load Products dimension data into it. Press on the smart arrow then choose data source; select data source select a new data source a new dialog opens, Choose data source type: Database and give the SqlDataSource ID: ProductsDataSource then OK, a new dialog to choose Data Connection, press on New Connection; Data source press change -&amp;gt; ; Data Provider select .NET framework Data Provider For OLE DB then OK; Add connection dialog opens in OLE DB Provider select Microsoft OLE DB Provider For Analysis Services 9.0; Server or file name enter the Analysis Service Server name in my case here “ramymahrous-lap”; Use Windows NT Integrated Security; Intila Catalog “AdventureWorksInternetSalesCube”; Test Connection if succeeded press OK&lt;/div&gt;&lt;div&gt;Then Next, save this connection as “InternetSalesConnectionString”; next; Configure Data Source dialog opens; select Specify a Custom SQL Statement or stored procedure; next; error message appears ignore it and press OK; write this MDX script which get Products data&lt;/div&gt;&lt;div&gt;&lt;code&gt;WITH&lt;/div&gt;&lt;div&gt;MEMBER [Measures].[ParameterCaption]&lt;/div&gt;&lt;div&gt;AS '[Dim Product].[English Product Name].CURRENTMEMBER.MEMBER_CAPTION'&lt;/div&gt;&lt;div&gt;MEMBER [Measures].[ParameterValue]&lt;/div&gt;&lt;div&gt;AS '[Dim Product].[English Product Name].CURRENTMEMBER.UNIQUENAME'&lt;/div&gt;&lt;div&gt;SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue]}&lt;/div&gt;&lt;div&gt;ON COLUMNS , [Dim Product].[English Product Name].ALLMEMBERS&lt;/div&gt;&lt;div&gt;ON ROWS&lt;/div&gt;&lt;div&gt;FROM [Adventure Works DW]&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="text-align:left;"&gt;&lt;code&gt;&lt;span style="font-family:Georgia;"&gt;&lt;a rel="attachment wp-att-89" href="http://fcihelwan.wordpress.com/?attachment_id=89"&gt;&lt;img class="aligncenter size-full wp-image-89" title="rs-p3-4" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p3-4.jpg" alt="rs-p3-4" width="334" height="195" /&gt;&lt;/a&gt;&lt;a rel="attachment wp-att-90" href="http://fcihelwan.wordpress.com/?attachment_id=90"&gt;&lt;img class="aligncenter size-full wp-image-90" title="rs-p3-5" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p3-5.jpg" alt="rs-p3-5" width="450" height="309" /&gt;&lt;/a&gt;&lt;a rel="attachment wp-att-91" href="http://fcihelwan.wordpress.com/?attachment_id=91"&gt;&lt;img class="aligncenter size-full wp-image-91" title="rs-p3-6" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p3-6.jpg" alt="rs-p3-6" width="450" height="576" /&gt;&lt;/a&gt;Next; Test Query; if it gets data press finish otherwise tell me what you got.&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="text-align:left;"&gt;We return back to “Choose Data Source” dialog; Select a data source: ProductsDataSource; Select a data field to display in the CheckBoxList: [Measures].[ParameterCaption]; Select a data field for the value of the CheckBoxList: [Measures].[ParameterValue]; OK&lt;/div&gt;&lt;div&gt;Repeat that with Promotion CheckBoxList but you won’t configure the connection again just select “IntertnetSalesConnectionString” from connections and the MDX script would be like that&lt;/div&gt;&lt;div&gt;&lt;code&gt;WITH&lt;/div&gt;&lt;div&gt;MEMBER [Measures].[ParameterCaption]&lt;/div&gt;&lt;div&gt;AS '[Dim Promotion].[English Promotion Name].CURRENTMEMBER.MEMBER_CAPTION'&lt;/div&gt;&lt;div&gt;MEMBER [Measures].[ParameterValue]&lt;/div&gt;&lt;div&gt;AS '[Dim Promotion].[English Promotion Name].CURRENTMEMBER.UNIQUENAME'&lt;/div&gt;&lt;div&gt;SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue]}&lt;/div&gt;&lt;div&gt;ON COLUMNS , [Dim Promotion].[English Promotion Name].ALLMEMBERS&lt;/div&gt;&lt;div&gt;ON ROWS&lt;/div&gt;&lt;div&gt;FROM [Adventure Works DW]&lt;/div&gt;&lt;div&gt;&lt;/code&gt;Double click on the button to enter its click event handler to write some code to call the report and pass the parameters value to it.&lt;/div&gt;&lt;div&gt;&lt;code&gt;protected void Button1_Click(object sender, EventArgs e)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote; //work on report resides in the server not local&lt;/div&gt;&lt;div&gt;ReportViewer1.ShowParameterPrompts = false; //hide parameters area and we will pass it through our controls&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; &lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:0;"&gt;ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://ramymahrous-lap/Reportserver_SQLSERVER2008/"); //Report Server URL not Report Server Manager URL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; ReportViewer1.ServerReport.ReportPath = "/InternetSaleCount_ByProduct_ByPromotion";//don't put report extension ".rdl"&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;//using Reporing Service we know InternetSalesReport needs 2 paramters&lt;/div&gt;&lt;div&gt;//DimProductEnglishProductName&lt;/div&gt;&lt;div&gt;//DimPromotionEnglishPromotionName&lt;/div&gt;&lt;div&gt;List parametersList =&lt;/div&gt;&lt;div&gt;new List();&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; &lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;parametersList.Add(GetParameterValue(PromotionList, "DimPromotionEnglishPromotionName"));//fills DimPromotionEnglishPromotionName with selected values user selected&lt;/div&gt;&lt;div&gt;parametersList.Add(GetParameterValue(ProductsList, "DimProductEnglishProductName"));//fills DimProductEnglishProductName with selected values user selected&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ReportViewer1.ServerReport.SetParameters(parametersList); //set report paramters with values&lt;/div&gt;&lt;div&gt;ReportViewer1.ServerReport.Refresh(); //display the report&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;///&lt;/div&gt;&lt;div&gt;/// Gets every Report parameters value(s)&lt;/div&gt;&lt;div&gt;///&lt;/div&gt;&lt;div&gt;///&lt;/div&gt;&lt;div&gt;Which contains parameter values         ///&lt;/div&gt;&lt;div&gt;Parameter Name         /// Report Parameter&lt;/div&gt;&lt;div&gt;Microsoft.Reporting.WebForms.ReportParameter GetParameterValue(CheckBoxList checkListBox,&lt;/div&gt;&lt;div&gt;string parameterName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;List parameterValues = new List();&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:0;"&gt;foreach (ListItem li in checkListBox.Items)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; {&lt;/div&gt;&lt;div&gt;if (li.Selected)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;if (li.Text == "All")&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;parameterValues.Add(li.Value);&lt;/div&gt;&lt;div&gt;break; //no need to go through to know if user selected another value.&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;else&lt;/div&gt;&lt;div&gt;parameterValues.Add(li.Value);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;return new Microsoft.Reporting.WebForms.ReportParameter(parameterName, parameterValues.ToArray(),&lt;/div&gt;&lt;div&gt;true);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;/code&gt;Press control + F5, to build and view your web application, it should work like that.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel="attachment wp-att-92" href="http://fcihelwan.wordpress.com/?attachment_id=92"&gt;&lt;img class="aligncenter size-full wp-image-92" title="rs-p3-7" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p3-7.jpg" alt="rs-p3-7" width="450" height="232" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We have done.&lt;/div&gt;&lt;div&gt;Some important notice you should be aware of&lt;/div&gt;&lt;div&gt;1- I didn’t develop data tier, I just filled the CheckBoxList controls with data directly&lt;/div&gt;&lt;div&gt;2- To apply our infrastructure architecture &lt;a href="http://ramymahrous.wordpress.com/2009/04/18/building-aspnet-reporting-olap-based-application-part-1/" target="_blank"&gt;First Part&lt;/a&gt; you need to have a user have permission to access Reporting Server Server and modify the above code to add some lines&lt;/div&gt;&lt;div&gt;ReportViewer1.ServerReport.ReportServerCredentials =&lt;/div&gt;&lt;div&gt;new ReportServerCredentials(Username, password, domain);&lt;/div&gt;&lt;div&gt;you’ll find ReportServerCredentials class attached in the demo.&lt;/div&gt;&lt;div&gt;This class developed by someone I don’t remember who is or the site.&lt;/div&gt;&lt;div&gt;3- Please if you’ve any question comment or contact me on ramyamahrous@hotmail.com&lt;/div&gt;&lt;div&gt;Full article in .docx format: &lt;a rel="attachment wp-att-97" href="http://fcihelwan.wordpress.com/?attachment_id=97"&gt;reporting-service-via-asp&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Walkthrough demo: &lt;a href="http://cid-3e2288e7a8e55f56.skydrive.live.com/self.aspx/Public%20folder/Reporting%20Service%20via%20ASP.zip" target="_blank"&gt;http://cid-3e2288e7a8e55f56.skydrive.live.com/self.aspx/Public%20folder/Reporting%20Service%20via%20ASP.zip&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/27659513-2350808513538630211?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/2350808513538630211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=2350808513538630211' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/2350808513538630211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/2350808513538630211'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/07/building-aspnet-reporting-olap-based_2898.html' title='Building ASP.NET Reporting OLAP-Based Application Part-3'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-485300253641113904</id><published>2009-07-03T02:04:00.000+03:00</published><updated>2009-07-03T02:05:50.593+03:00</updated><title type='text'>Building ASP.NET Reporting OLAP-Based Application Part-2</title><content type='html'>&lt;div&gt;In the previous post we learned how to build simple cube using BIDS, and if you’re follower I’ve forgot something important is deployment the cube on the Analysis Services.&lt;/div&gt;&lt;div&gt;1-We just need to add some attributes to the dimensions(DimPromotion, DimProduct) as each of which pure (contains just the key) for some reasons we need to show the user the name of product, or the promotion because it very hard to make human treat with numbers contrary to machines which prefer them. We shall add some attributes to the dimensions to make it meaningful.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2-Double click on DimPromotion; the dimension design window opened you find Data Source View, Hierarchies and Attributes; simply drag EnglishPromotionName from the Data Source View table to Attributes.&lt;/div&gt;&lt;div&gt;3-Repeat the previous step with the DimProduct to add EnglishProductName&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel="attachment wp-att-56" href="http://fcihelwan.wordpress.com/?attachment_id=56"&gt;&lt;img class="aligncenter size-full wp-image-56" title="rs-p2-7" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p2-7.jpg" alt="rs-p2-7" width="450" height="176" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;4-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Right click on AdventureWorksInternetSalesCube project then deploy (to move your cube to the Analysis Services). If deployment succeeded  it shows you message Deployment Completed Successfully&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel="attachment wp-att-57" href="http://fcihelwan.wordpress.com/?attachment_id=57"&gt;&lt;img class="aligncenter size-full wp-image-57" title="rs-p2-2" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p2-2.jpg" alt="rs-p2-2" width="303" height="315" /&gt;&lt;/a&gt;&lt;a rel="attachment wp-att-58" href="http://fcihelwan.wordpress.com/?attachment_id=58"&gt;&lt;img class="aligncenter size-full wp-image-58" title="rs-p2-3" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p2-3.jpg" alt="rs-p2-3" width="280" height="144" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now it’s the time to build our Report.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Right click on the solution, then Add-&amp;gt;New Project-&amp;gt; Select Business Intelligence Projects from Project types then create Report Server Project Wizard, with name “InternetSalesReport”&lt;/div&gt;&lt;div&gt;2-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;OK&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel="attachment wp-att-60" href="http://fcihelwan.wordpress.com/?attachment_id=60"&gt;&lt;img class="aligncenter size-full wp-image-60" title="rs-p2-41" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p2-41.jpg" alt="rs-p2-41" width="450" height="321" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;3-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Report Wizard dialog open, Next; Select New data Source; Type: Microsoft SQL Server Analysis Services then Edit; Server Name: your server name in my case I’ll type “RamyMahrous-Lap” you will notice that when selecting the Data Source as Microsoft SQL Server Analysis Services there is no any chance to login using Username or password as we illustrated in &lt;a href="http://ramymahrous.wordpress.com/" target="_blank"&gt;the previous part&lt;/a&gt; Analysis Services permits just Windows Authentication. Select or enter database name: “AdventureWorksInternetSalesCube”; Test Connection and then OK if succeeded.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel="attachment wp-att-61" href="http://fcihelwan.wordpress.com/?attachment_id=61"&gt;&lt;img class="aligncenter size-full wp-image-61" title="rs-p2-5" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p2-5.jpg" alt="rs-p2-5" width="450" height="220" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;4-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Next; we come to the dialog to build the query; press on the Query Builder to open a Query Designer form to help us building the Report Dataset.  We need to show ProductEnglishName, PromotionEnglishName, and FactInternetSaleCount and the parameters are ProductEnglishName, and PromotionEnglishName so we’ll drag the ProductEnglishName, PromotionEnglishName, and FactInternetSaleCount on the space which shows “Drag levels or measures here to add to the query”. And ProductEnglishName, and PromotionEnglishName on dimension area and check parameter checkbox. OK&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel="attachment wp-att-62" href="http://fcihelwan.wordpress.com/?attachment_id=62"&gt;&lt;img class="aligncenter size-full wp-image-62" title="rs-p2-6" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p2-6.jpg" alt="rs-p2-6" width="450" height="121" /&gt;&lt;/a&gt;&lt;a rel="attachment wp-att-63" href="http://fcihelwan.wordpress.com/?attachment_id=63"&gt;&lt;img class="aligncenter size-full wp-image-63" title="rs-p2-8" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p2-8.jpg" alt="rs-p2-8" width="450" height="211" /&gt;&lt;/a&gt;&lt;a rel="attachment wp-att-64" href="http://fcihelwan.wordpress.com/?attachment_id=64"&gt;&lt;img class="aligncenter size-full wp-image-64" title="rs-p2-9" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p2-9.jpg" alt="rs-p2-9" width="450" height="198" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;5-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Next; select report type as Tabular; next; add available fields to details; next;next; rename it to InternetSaleCount_ByProduct_ByPromotion; finish.&lt;/div&gt;&lt;div&gt;6-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;You can preview it and select some criteria to test the report.&lt;/div&gt;&lt;div&gt;7-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Right click on InternetSalesReport and Deploy to deploy it on the Reporting Service Server to enable users to access it over http. If you got message The specified TargetServerURL is not valid. Specify a valid URL for a report server in the deployment settings. Right click on InternetSalesReport project then properties set the TargetServerURL to http://localhost/ReportServer or your ReportServer URL, check it from IIS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Conclusion:&lt;/div&gt;&lt;div&gt;We’ve showed building Report using BIDS and deploying it on ReportServer.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Stay tuned&lt;span&gt; the last part building the ASP.NET application.&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/27659513-485300253641113904?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/485300253641113904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=485300253641113904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/485300253641113904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/485300253641113904'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/07/building-aspnet-reporting-olap-based_03.html' title='Building ASP.NET Reporting OLAP-Based Application Part-2'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-5214425508650119501</id><published>2009-07-03T02:02:00.000+03:00</published><updated>2009-07-03T02:04:53.954+03:00</updated><title type='text'>Building ASP.NET Reporting OLAP-Based Application Part-1</title><content type='html'>Here I’ll talk about how to integrate your asp.net application with Reporting Service through ReportViewer web control which provides rich functionality to deliver Reporting Service Report through asp.net applications.&lt;br /&gt;&lt;br /&gt;In real life applications; Analysis Service and Reporting Service on server machine, Web Server another server machine and clients usually on another domain access the website to do something.&lt;br /&gt;&lt;br /&gt;Let’s take a look on this diagram to visualize what happened in intra applications which one of its functionality shows reports this reports actually based on OLAP Data (SSAS used here)&lt;br /&gt;&lt;p style="text-align:center;"&gt;&lt;a href="http://ramymahrous.wordpress.com/files/2009/04/rs-p1-12.jpg"&gt;&lt;img class="size-full wp-image-38 aligncenter" title="Infrastructure Architecture" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p1-12.jpg" alt="Infrastructure Architecture" width="450" height="226" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Here we build OLAP Cube as Report data source.&lt;br /&gt;&lt;br /&gt;So, let’s begin to build our report based on Cube which built from AdventureWorksDW&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span&gt;&lt;span&gt;1-&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Open Microsoft SQL Server Business Intelligence Studio (BIDS) 2005\2008&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;2-&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Select Business Intelligence Projects from Project types then create Analysis Services project, with name “AdventureWorksInternetSaleCube”&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[caption id="attachment_42" align="aligncenter" width="450" caption="Creating Analysis Services Project"]&lt;a rel="attachment wp-att-42" href="http://fcihelwan.wordpress.com/2009/07/02/building-asp-net-reporting-olap-based-application-part-1/%d9%85%d8%a7-%d9%87%d9%8a-%d8%aa%d9%81%d8%a7%d8%b5%d9%8a%d9%84-%d8%ae%d8%af%d9%85%d9%87-adsense-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a-6/"&gt;&lt;img class="size-full wp-image-42" title="rs-p1-2" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p1-2.jpg" alt="Creating Analysis Services Project" width="450" height="451" /&gt;&lt;/a&gt;[/caption]&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;3-&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Press OK&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;4-&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Right click on Data Sources -&amp;gt; New Data Source-&amp;gt; Next; to add connection to AdventureWorksDW. Then from Data Source Wizard press on New which gets Connection Manager dialog to setup your connection to AdventureWorksDW&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;a rel="attachment wp-att-43" href="http://fcihelwan.wordpress.com/2009/07/02/building-asp-net-reporting-olap-based-application-part-1/casting-in-c/"&gt;&lt;img class="aligncenter size-full wp-image-43" title="rs-p1-3" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p1-3.jpg" alt="rs-p1-3" width="449" height="360" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;   a.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Provider: set the default in our case we need to connect to SQL Server instance&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;   b.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Server name: The name of the server which has AdventureWordDW in our guide I’m using mine “RamyMahrous-Lap”&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  c.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Log on to the server: You can use Windows\SQL Authentication in our guide I’m using the default setting which is Windows Authentication&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  d.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Connect or database: Select or enter database name: “AdventureWorksDW”&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  e.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Press on Test Connection to validate it. It must say: Test connection succeeded.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  f.&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Press OK&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;a rel="attachment wp-att-45" href="http://fcihelwan.wordpress.com/2009/07/02/building-asp-net-reporting-olap-based-application-part-1/smart-client-applications-part-1/"&gt;&lt;img class="aligncenter size-full wp-image-45" title="rs-p1-41" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p1-41.jpg" alt="rs-p1-41" width="450" height="452" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  g.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;You’ll find a new connection has been added to Data connections.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  h.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Press next&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  i.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;You come to Impersonation Information dialog: which is what’s user credential you need to connect by to the Analysis Services (which we will use later to build our Cube on) let’s understand the four choices&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;i.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;Use a specific windows user name and password&lt;/strong&gt;: if Analysis service on another machine i.e not on RamyMahrous-lap in our example I should connect to it using a user has access to its machine. Because Analysis service DOESN’T SUPPORT ELSE &lt;strong&gt;WINDOWS AUTHENTICATION.&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;ii.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;Use the service account&lt;/strong&gt;: to use the user credentials which the Analysis service starts with (may be you, may be the administrator)&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;iii.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;Use the credentials of the current user&lt;/strong&gt;: YOU&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;iv.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;Inherit&lt;/strong&gt;: to use the default user. Read more about these options on &lt;a href="http://technet.microsoft.com/en-us/library/ms187597.aspx"&gt;http://technet.microsoft.com/en-us/library/ms187597.aspx&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;a rel="attachment wp-att-48" href="http://fcihelwan.wordpress.com/2009/07/02/building-asp-net-reporting-olap-based-application-part-1/differences-between-pointers-and-references/"&gt;&lt;img class="aligncenter size-full wp-image-48" title="rs-p1-5" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p1-5.jpg" alt="rs-p1-5" width="450" height="410" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  j.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Use the one fits your development environment, for me I’ll use &lt;strong&gt;Use the service account&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  k.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Next&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  l.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Set the Data source name to “Adventure Works Data Source”&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  m.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Finish&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  n.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;You’ll find Adventure Works Data Source.ds added to Data Sources. Adventure Works Data Source.ds in xml file so you can edit it manually but take care if the file being corrupted it’ll affect all the solution&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;5-&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Right click on Data Source Views-&amp;gt;New Data Source View-&amp;gt;Next; to add our relational tables which is Cube data source few things should you know about Data Source View&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  a.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Every Data Source View associated to single connection as every Data Source View gets data from one location, if you have multiple server which holds data you need to do multi Data Source Views&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;  b.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Use mainly to view data without being have any permission on the database directly; Microsoft helps to calm DBAs down.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;6-&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Use our connection “Adventure Works Data Source”, it’s selected by default; Next; you’ll find all available objects (Tables and Views); include those objects FactInternetSales, DimPromotion, DimProduct; then OK; You’ll find Adventure Works DW.dsv created and a new window opens has your three tables and connected together. You can right click on the table to Explore the data on it.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;a rel="attachment wp-att-49" href="http://fcihelwan.wordpress.com/2009/07/02/building-asp-net-reporting-olap-based-application-part-1/mdc-day-1-notes-1/"&gt;&lt;img class="aligncenter size-full wp-image-49" title="rs-p1-6" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p1-6.jpg" alt="rs-p1-6" width="450" height="405" /&gt;&lt;/a&gt;&lt;a rel="attachment wp-att-50" href="http://fcihelwan.wordpress.com/2009/07/02/building-asp-net-reporting-olap-based-application-part-1/some-of-mdc-day-1-sessions-exclusive/"&gt;&lt;img class="aligncenter size-full wp-image-50" title="rs-p1-7" src="http://ramymahrous.wordpress.com/files/2009/04/rs-p1-7.jpg" alt="rs-p1-7" width="450" height="460" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;7-&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Right click on Cubes-&amp;gt;New Cube-&amp;gt; Next-&amp;gt;Use Existing tables-&amp;gt;Next; Data Source View: Adventure Works DW (selected by default); Measure group tables-&amp;gt; “FactInternetSales” or you can press suggest to let it select the measure.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;8-&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Next; Next; Select Dimensions-&amp;gt;Select all&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;9-&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Next; Finish.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span&gt;&lt;span&gt;10-&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Congratulation we’ve built the Cube which be the data source for our report.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;I’ve passed on creating Cube elements definitions quickly like what’s Fact, dimension, Measure, KPI, Partitions, etc…. because it needs a lot of posts to talk about each of which in details. But I assume you have enough knowledge about SSAS, SSRS and SQL Server relational database concept.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;Conclusion:&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;We’ve showed building Cube using BIDS to be used later as Report data source&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;Stay tuned&lt;span&gt; the next part building the Report.&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/27659513-5214425508650119501?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/5214425508650119501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=5214425508650119501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5214425508650119501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5214425508650119501'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/07/building-aspnet-reporting-olap-based.html' title='Building ASP.NET Reporting OLAP-Based Application Part-1'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-2850762670597855119</id><published>2009-06-17T12:23:00.006+03:00</published><updated>2009-06-17T12:48:21.127+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET 4.0 and its confliects with ASP.NET 2.0</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7nZGyHLk2oY/Sji3YghWvyI/AAAAAAAAATg/GYcXgorAf_E/s1600-h/aspnet4_problem.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 154px;" src="http://3.bp.blogspot.com/_7nZGyHLk2oY/Sji3YghWvyI/AAAAAAAAATg/GYcXgorAf_E/s400/aspnet4_problem.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5348226189177044770" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="color:#660000;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="color:#660000;"&gt;The application domain or application pool is currently running version 4.0 or later of the .NET Framework. This can occur if IIS settings have been set to 4.0 or later for this Web application, or if you are using version 4.0 or later of the ASP.NET Web Development Server. The &lt;/span&gt;&lt;compilation&gt;&lt;span class="Apple-style-span"  style="color:#660000;"&gt; element in the Web.config file for this Web application does not contain the required 'targetFrameworkMoniker' attribute for this version of the .NET Framework (for example, '&lt;/span&gt;&lt;compilation targetframeworkmoniker=".NETFramework,Version=v4.0"&gt;&lt;span class="Apple-style-span"  style="color:#660000;"&gt;'). Update the Web.config file with this attribute, or configure the Web application to use a different version of the .NET Framework.&lt;/span&gt;&lt;/compilation&gt;&lt;/compilation&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;You may get this error if you installed Visual Studio 2010.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;Today I published a website (ASP.NET 2.0) and uses Application Pool ASP.NET V2.0, and when I browsed it; it got that error. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;Simply I press right click on the virtual directory (My website) under Default Web Site, properties -&gt;ASP.NET, I found it uses ASP.NET Version 4.0, I changed it to ASP.NET 2.0 -&gt; Apply, message box appears says &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;&lt;b&gt;Changing the Framework version requires a restart of the W3SVC service. Alternatively, you can change the Framework version without restarting the W3SVC service by running: aspnet_regiis.exe -norestart -s IIS-Viirtual-Path&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;b&gt;Do you want to continue (this will change the Framework version and restart the W3SVC service)?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;I said OK, but it didn't change its version and it needs me to do some action&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;Start-&gt;All programs-&gt;Visual studio 2008-&gt;Visual Studio Tools-&gt;Visual Studio 2008 Command Prompt -&gt; write this command -&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;b&gt;Aspnet_regiis.exe -s W3SVC/1/ROOT/&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;My website&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#000000;"&gt;It then works well.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-2850762670597855119?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/2850762670597855119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=2850762670597855119' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/2850762670597855119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/2850762670597855119'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/06/aspnet-40-and-its-confliects-with.html' title='ASP.NET 4.0 and its confliects with ASP.NET 2.0'/><author><name>Ramy Mahrous</name><uri>http://www.blogger.com/profile/06875204608099539248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='http://1.bp.blogspot.com/-6SG7uuFZwQA/TqnktLEtxII/AAAAAAAABZM/GZC2BK5ts1k/s220/61257_10150280905095384_891040383_14986717_3709718_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7nZGyHLk2oY/Sji3YghWvyI/AAAAAAAAATg/GYcXgorAf_E/s72-c/aspnet4_problem.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-7247992361175411457</id><published>2009-06-15T17:49:00.003+03:00</published><updated>2009-06-15T17:59:26.883+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>J2EE Design patterns Part 1</title><content type='html'>&lt;p class="MsoNormal" align="center" dir="LTR" style="text-align: left;direction: ltr; unicode-bidi: embed; "&gt;Any enterprise application is divided into tiers&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;1- Client presentation tier.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;2- Server-side presentation tier.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;3- Server-side business logic tier.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;4- Sever-side domain model.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;5- &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Enterprise&lt;/st1:place&gt;&lt;/st1:city&gt; integration tier.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;&lt;br /&gt;The first three tiers are defined in java by sun, but you can the last two tiers according to your application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;The client presentation tier is the user interface for the end user, the client can be either thin of fat client. This tier can be implemented using HTML and JavaScript.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;As you noticed presentation tier are divided into two tiers, the server-side and client presentation tier. The server-side presentation tier is responsible to provide client presentation tier with materials to be shown to end user. The server-side presentation tier can be Servlets and JSPs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;While considering the verbs of the system (e.g. purchase, remove, ….,etc ), you have to mention the server-side business logic tier. It handles the business logic of the system.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="mso-bidi-language:AR-EG"&gt;The extra two tier are server-side domain model which handles all the models used by the business logic. In this tier we consider nouns in system (e.g. Order, Customer, ….,etc ). The final tier is the enterprise integration tier which handle connection between your system and other systems (e.g. web services, CORBA,…. , etc ).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;When evaluating the end product of any enterprise development project, we can score it on four factors: Extensibility, Scalability, Reliability, and Timeliness. Using design patterns increases the score of the project.&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;Patterns will be divided according to the mentioned tiers, starting with presentation tier where most of the changes occurs. These patterns make presentation tier more extensible&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;text-indent: -.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="mso-list:Ignore"&gt;A-&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span dir="LTR"&gt;Model-View-Controller Pattern.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;Dividing the application to javaBeans and jsp and servlets. JavaBeans will show the data from the business logic to view. JSP will view the data. Servlet for navigations between views.&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;We have &lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;two models in MVC pattern , the first model is making a controller (servlet) for each view but it`s not the best practice, because if you need to add a logging mechanism it will cost you time and effort to handle it in all controllers. The second approach is making one controller to dispatch the requests to each service, also this approach isn`t the best practice because if you want to add new feature you will need to retest and redeploy,…etc.&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;text-indent: -.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;B-&lt;/span&gt;&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt; Front Controller &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;pattern.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://4.bp.blogspot.com/_Vbe8XdqRr74/SjZgBEc7NvI/AAAAAAAAABE/vHlpGkPhR8I/s320/frontcontroller.JPG" style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 235px; height: 169px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5347567179040241394" /&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;Front controller merges MVC models, by using one front controller that perform the common functions and delegate other specific functions to a page-specific controller. Front controller is also responsible of redirecting to pages. The page specific controller can be Servlets or simple classes that is based on the GOF command pattern. Good example is the Actions in the Struts framework, classes that have common parent class and each class perform page specific functionalities. In the front controller you can add common functionalities so that you won`t have duplicate functions in page specific controllers. Adding common functionalities in front control can be applied using the GOF decorator pattern so that you can extent functionalities dynamically.&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.25in;text-align:left;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&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/27659513-7247992361175411457?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/7247992361175411457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=7247992361175411457' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/7247992361175411457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/7247992361175411457'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/06/j2ee-design-patterns-part-1.html' title='J2EE Design patterns Part 1'/><author><name>Mohamed Reda</name><uri>http://www.blogger.com/profile/05505517015409063947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Vbe8XdqRr74/SjZgBEc7NvI/AAAAAAAAABE/vHlpGkPhR8I/s72-c/frontcontroller.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-1020235513019673067</id><published>2009-06-10T15:30:00.000+03:00</published><updated>2009-06-10T15:41:26.509+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Optimizing Hibernate Usage</title><content type='html'>Well, getting straight to the point, using hibernate is totally different from effectively using it. You can set up and put hibernate in action very fast in your application and enjoy ORM features, however, as any project grows and expands by time, you may find that the application is acting slow and with overhead on the DBMS, most people - (mostly seniors and architects :D) - just blame hibernate for being inefficient and tend to prove that the ORM concept itself is wrong and hibernate is just saving some JDBC code with a great performance tradeoff. This article aims at helping you to know how you can optimize the usage of hibernate to minimize performance penalty. we suppose you already have some experience with basic usage of hibernate by the way, so if you are an absolute beginner this is not for you.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Before we proceed, there are two rules that we need to stress on:&lt;br /&gt;&lt;/strong&gt;1- Using hibernate does not completely isolate the developer from that database, the relational model is still involved.&lt;br /&gt;2- Hibernate is not some sort of magic, it can not predict what you want, it will do what you configured it to do.&lt;br /&gt;&lt;br /&gt;                                                         &lt;strong&gt;===== Basic Principles =====&lt;/strong&gt;&lt;br /&gt;99% of problems faced with hibernate is due to misconfiguration or misunderstanding, both reasons are the common two reasons when dealing with any framework that abstracts details behind the scenes. In order to start effectively using hibernate, we need to talk about the following terms:&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;1- Session.&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;2- Object state.&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;3- Transaction.&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;4- Locking.&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;5- Caching.&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;6- Connection Pooling&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Session:&lt;/span&gt; A session object in hibernate is that place created to store and manage objects and their states in memory, it can be considered as a cache, in other words, it is the heart of communication between your business model and the relational model represented by the DBMS. When you retrieve an object from the DB it is stored in the session, when you update that object and call session.save(object) the session manages to synchronize the data in the data base with the one in the session in object. A session's life ends once the thread which created it is killed, so, when a web user requests a web page which needs to contact the DB, the thread that was initiated to handle the HTTP request will create the session to be used as long as the thread is alive, once the HTTP request is done and the thread is killed the session object is killed too.&lt;br /&gt;When you retrieve an object, hibernate checks if the object is in the session first, if not, it gets it from the DB and saves it in the session object for further requests.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Object State:&lt;/span&gt; The word "state" here means how hibernate sees an object from the session perspective, an object has one of 3 states:&lt;br /&gt;&lt;br /&gt;1- Transient : The object is still not saved in the DB.&lt;br /&gt;2- Persistent : The object has already been saved to the DB and hibernate session can manage it.&lt;br /&gt;3- Detached : The object has an entry in the DB, but the session that saved or retrieved it has been closed, so the object now has no associated session to manage it.&lt;br /&gt;&lt;br /&gt;A developer needs to keep in mind the states of objects, because this can lead to many problems if not handled correctly, for example; a user requested a web page which loaded an object from the DB, that object will be updated by the client, however, the client took too long to perform that update, after he submitted the page again, the business logic simply calls session.update(object), but, a problem is there. The problem is because the hibernate session which retrieved the object in the first place has been closed, so the object is now &lt;span style="FONT-STYLE: italic"&gt;detached&lt;/span&gt;, and can not be updated until it is re-attached to a hibernate session again. There are many solutions for this problem, we might look at later.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Transaction:&lt;/span&gt; A transaction with the terminology of hibernate is any kind of operations taking place between the application and the database, do not mix this with the atomic data base transactions. A transaction in hibernate is any data manipulation operations; when u need to reflect any thing to the database you need to put your code within begin Transaction and commit calls.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Locking: &lt;/span&gt;When a DB record is accessed by many threads, we need to manage the way these threads are dealing with the DB, a typical situation is where a thread reads a certain value and before it updates it another thread has already put another value, so, the information now being processed by thread one is considered invalid. Locking is the mechanism which decides the action taken by the DB when some records are being read. One solution for the previously mentioned problem is to tell the DBMS not to permit any updates for a certain record while a thread is reading it and intending to update it. There are different locking mechanisms for different situations. Hibernate can manage locking for objects on the DB level, that means that hibernate never locks an object in memory - ( in other words; the session) - so, always take care that hibernate only supports a certain locking mechanism if the underlying DBMS supports it.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Caching:&lt;/span&gt; Caching is a way to save extra hits to the database to retrieve info, a cache saves information in memory for fast retrieval and a cache is also responsible for maintaining that the data stored in the cache is valid and synchronized with the DB. Caching in hibernate takes place at 2 levels:&lt;br /&gt;&lt;br /&gt;1-&lt;span style="FONT-WEIGHT: bold"&gt; First level cache:&lt;/span&gt; Which is the session object, however, as we said before, a session is valid as long as the thread that initially created it is running, so, it is a caching layer per-thread. This caching can not be disabled, you can not manage to disable the caching in the hibernate session by any means.&lt;br /&gt;&lt;br /&gt;2- &lt;span style="FONT-WEIGHT: bold"&gt;Second level cache:&lt;/span&gt; Which can be any caching manager, ex; ehcache. A second level cache is a caching for the application, it is not tied to a specific thread, as long as the application is running, this cache will be used, if you use a second level cache and try to retrieve an object from the DB Hibernate will first check the first level cache (Session) if it does not find it, or finds it invalid, the first level cache will check with the second level one, if it does not find it, the second level cache will manage to get a fresh copy from the DB and saves it for further uses.&lt;br /&gt;Using of second level caching needs caution, objects on the second level chache may not be in some cases synchronized with the DB or the first level cache, there are some types of applications the can not use second level caching by any means,like; financial applications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Connection Pooling:&lt;/strong&gt; Like any pool, this is a pool containing some open connections to the DB. Pooling techniques serve performance by keeping it fast and reliable to talk to the DB without the overhead of always opening and closing connection, also, a connection pool may control the number of open connections to a DB so no overload occurs. Hibernate offers a connection pooling provider "C3p0", however, you can use any other pooling mechanism.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;                                       ===Approaches to optimizing hibernate===&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We will now try to define a roadmap to how you can start the process of optimization, sure we can not give or describe all problems and techniques, however, we try to provide your first steps towards optimization.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Some Advices:&lt;/strong&gt;&lt;br /&gt;1- Never try to start optimizing an application using hibernate from day zero, you will never be able to effectively tune it, wait until you have an application running and then manage to optimize.&lt;br /&gt;2- A use of a load testing tool along with a profiling one may help a lot in determining bottle necks and bad written code.&lt;br /&gt;3- Tuning requires a lot of team work effort and time, it is not always hibernate that is the cause of bad behavior, it may be from the DB, Java itself, network or server issues.&lt;br /&gt;4- Review &amp;amp; fix your object model design for the application as it direclty affects your relational model, many problems arise from bad object models, the more you enhance your object model, the more you save your self a lot of trouble in the optimization process.&lt;br /&gt;5- Configure hibernate to write the queries generated on the standard output, this will help you very much in tracing problems.&lt;br /&gt;6- The ultimate solution for your problems is not here, every problem has its specific solution, you have to explore alternatives to decide what to use, there is nothing totally right or totally wrong.&lt;br /&gt;&lt;br /&gt;                                                                &lt;strong&gt;===== Lets Go ======&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;1- It all starts from mapping:&lt;/strong&gt;&lt;br /&gt;As a hibernate developer, you must have a good knowledge about the ".hbm" files even if you use a generation tool. Mapping is a critical section, as a wrong or a bad mapped object may result in an unwanted heavy behavior. Make sure you define relations between objects in the right way, the tags you write in mappings defines how hibernate will build queries to retrieve and save your objects.&lt;br /&gt;&lt;br /&gt;Hint 1: When mapping a one-to-one relations, its very effective to use the "constrained=true" attribute if you are sure that there is  a record matching the foreign key association, this way, hibernate will not attempt a lookup first before selecting the records, it will direclty go and pick up the record as it previously knows of its existence.&lt;br /&gt;&lt;br /&gt;Hint 2: Revisit your fetching strategy for objects, the "fetch" attribute tells hibernate how to retrieve a certain relation, it has many options. You may need to tell hibernate to use a certain type of join for a specific object, or a sub-select for another, that depends on the situation.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2- Queries:&lt;/strong&gt;&lt;br /&gt;Your queries may be the source of the problem, you may override an association strategy defined in the mapping file and then wonder why it is going wrong!!. Using SQL, HQL, or Criteria API are all valid options for object retrieval. Criteria API just gets translated to HQL before execution, so, using HQL is slightly better in terms of performance. Using SQL is needed at some cases when HQL lacks a certain feature for a specific DBMS.&lt;br /&gt;&lt;br /&gt;Using query caching may be effective in cases where the application does not write too much to the DB, as caching a result set of a query become invalid if any update, delete or insert takes place at the DB table, you may enable query caching by setting&lt;br /&gt;&lt;span style="color:#000099;"&gt;hibernate.cache.use_query_cache true&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000099;"&gt;&lt;span style="color:#000000;"&gt;and use the&lt;/span&gt;  setCacheable(true) &lt;/span&gt;&lt;span style="color:#000000;"&gt;of the query class before execution of a query.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hint 1: Suppose a users logs in to your website, simply, you will hit the database to get the user profile object to compare the password supplied by the user, using a default hibernate get operation will retrieve the whole object graph which may include references to other objects and as a result a bad looking join SQL statement may be produced, at the end we have a heavy object in memory only for getting a simple string value. In situations like this, you need to specify a certain retrieval approach that just gets only the information you need to be added to the object built and returned for later use. You need to see how to use hibernate to build objects only of certain information.&lt;br /&gt;&lt;br /&gt;3- &lt;strong&gt;Locking:&lt;/strong&gt;&lt;br /&gt;Ok, you used a load testing tool and booom.... a locking problem occurs, you find that your application messed up with the records, so, you decided to move to pessimistic locking, but, oops, the application is now having deadlocks. This problem mostly arise from the DBMS, as mentioned before; hibernate manages to use the provided locking mechanisms of the DBMS, no memory locking takes place, a problem like this may need a DBA to rightly configure the DBMS to work smoothly with your application to handle locking situations. From the hibernate side, you need to revisit your queries which needs to handle locking scenarios in your application, you need to pay attention whith writing such queries as those queries may mess up things if not written with caution. (See how to use locking with hibernate)&lt;br /&gt;&lt;br /&gt;hint 1: A problem might take place if you lock some object for update and then not doing anything with the hibernate transaction initiated the lock. This can be solved by making sure that under any circumstances the transaction will either commit or rollback, this way, the lock will be released, another solution, is by setting the locking timeout of the DBMS itself, so a lock will be released after some time either the transaction issues any further action or not.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4- Connection Pooling:&lt;/strong&gt;&lt;br /&gt;As mentioned before, using connection pooling is a very good practice if used properly, beside configuring a pool manager, you need to pay your code a visit to make sure that there is a thread some where holding a connection open, this situation mostly found in a missing or a miss-placed connection close call. Optimizing the usage of a connection pool may need the advice of the DBA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-1020235513019673067?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/1020235513019673067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=1020235513019673067' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1020235513019673067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/1020235513019673067'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/06/optimizing-hibernate-usage.html' title='Optimizing Hibernate Usage'/><author><name>Youssef Mamdouh</name><uri>http://www.blogger.com/profile/04917580493499832141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://bp1.blogger.com/__Gm5_q7g9WU/R7cGWLdwWeI/AAAAAAAAAHA/FMle7CHZbis/S220/n706360321_6498.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-8167178345710980420</id><published>2009-06-09T18:20:00.004+03:00</published><updated>2009-06-09T18:24:29.747+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><title type='text'>Happy BizTalk to you – part 2‎</title><content type='html'>&lt;span class="Apple-style-span"   style="color: rgb(51, 51, 51);   line-height: 18px; font-family:'Trebuchet MS';font-size:13px;"&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:Verdana;"&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Trebuchet MS';font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:Verdana;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'Trebuchet MS';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=""&gt;&lt;span style=" ;font-family:Verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Today I am going to explain the application integration options, by the way there's more than one approach for integrating applications, each approach &lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;‎&lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;addresses some of the integration criteria better than others. The various&lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;‎&lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;approaches can be summed up in four main integration styles:&lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;‎&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=" ;color:red;"&gt;&lt;span style=" ;font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Wait !!!!!!!!! &lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;What are the integration criteria?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=""&gt;&lt;span style=" ;font-family:Verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;What makes for good application integration? If integration needs &lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:'Courier New';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;‎&lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;were always the same, there would only be one integration style. Yet &lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:'Courier New';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;‎&lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;like any complex technological effort, application integration involves a &lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:'Courier New';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;‎&lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;range of considerations and consequences that should be taken into &lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:'Courier New';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;‎&lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:Verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;account for any integration opportunity. DO you want to know more click &lt;a href="http://mohammad-yousri.blogspot.com/2009/06/happy-biztalk-to-you-part-2.html"&gt;here &lt;/a&gt;?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&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/27659513-8167178345710980420?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/8167178345710980420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=8167178345710980420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8167178345710980420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/8167178345710980420'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/06/happy-biztalk-to-you-part-2.html' title='Happy BizTalk to you – part 2‎'/><author><name>U3</name><uri>http://www.blogger.com/profile/13058148010146480574</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_d4hNzWCEwe0/SLsFhyO4KwI/AAAAAAAAADk/laYxFhQn278/S220/U3.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-5335326199818185569</id><published>2009-06-09T17:04:00.005+03:00</published><updated>2009-06-09T17:21:45.089+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Learning Materials'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Introduction to XML</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Vbe8XdqRr74/Si5tieHRXGI/AAAAAAAAAA8/WOZ1WbBt1nU/s1600-h/SGML.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 208px; height: 174px;" src="http://3.bp.blogspot.com/_Vbe8XdqRr74/Si5tieHRXGI/AAAAAAAAAA8/WOZ1WbBt1nU/s320/SGML.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5345330246701898850" /&gt;&lt;/a&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;S&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;GML&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;:&lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Standard Generalized Markup Language&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; i&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;s&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Standard&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;in which one can &lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;define markup languages&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;for documents.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;HTML :&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="font-family:-webkit-sans-serif;color:black;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Hypertext Mark-up Language&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;XML : &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Extensible Markup Language, is a markup language that you can use to create your own tags.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;text-indent:.5in;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;XML is created to overcome the limitations of the HTML. Although HTML is a very successful markup language, it is used to preview the data without understanding the data or even give the ability to analyze data.&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;So main advantages of XML is giving the ability to analyze data and search inside XML document.&lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Also XML used for data interchange, organizations can exchange data in XML and then convert this data to database records easily.&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;XML document rules &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;1-Root element:&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;text-indent: 3.0pt;mso-layout-grid-align:none;text-autospace:none;direction:ltr;unicode-bidi: embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;An XML document must be contained in a single element. That single element is called the root element, and it contains all the text and any other elements in the document.&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;2- Elements cannot overlap:&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="margin-left:.5in;text-align:left;mso-layout-grid-align: none;text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;If you started &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; element and inside this element &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; you must close  first then close &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;i&gt;&lt;b&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;3- End tags are required&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Each element must have an end tag.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;4- Elements are case sensitive &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;5-Attributes must have quoted values &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align: left;direction: ltr; unicode-bidi: embed; "&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;• Attributes must have values.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="LTR" style="text-align: left;direction: ltr; unicode-bidi: embed; "&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;• Those values must be enclosed within quotation marks.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;You can use a predefined structure using the document type definition (DTD).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;DTD defines the elements the can appear in XML file and the order if the elements. Another approach for using predefined structures is XML schemas. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;XML Programming Interfaces &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;This section focus on the programming interfaces to deal with XML document.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;There is a lot of programming APIs Available. Here we have the most popular APIs; Document Object Model (DOM), the Simple API for XML (SAX), JDOM, and the Java API for XML Parsing (JAXP).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" font-style: normal; font-weight: normal; font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Document Object Model (DOM):&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Defines a set of interfaces to the parsed version of an XML document. The parser reads in the entire document and builds an in-memory tree, so your code can then use the DOM interfaces to manipulate the tree. You can move through the tree to see what the original document contained, you can delete sections of the tree, you can rearrange the tree, add new branches, and so on.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;DOM has some issues, building the whole XML document in the memory consumes time especially with large documents. What if I need a specific part from document? It doesn't make sense to load the entire document.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" font-style: normal; font-weight: normal; font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Simple API for XML (SAX):&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;SAX handle a lot of DOM issues, SAX based on events. First you define which event is more important to you and the data type of the data from event, the parser goes throw the document and throw event at the start, end of the element &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;or start , end of document. If you don`t save the data from the event it will be discarded. As you can see SAX doesn`t hold the entire document in the memory, so it saves time. But one of the SAX issues is that SAX is stateless.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" font-style: normal; font-weight: normal; font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;JDOM&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Java classes developed to make it easier to use DOM and SAX parser. JDOM handle the DOM and SAX interfaces and gives high level classes to reduce the amount of code. JDOM make most of the parsing functionalities.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style=" font-style: normal; font-weight: normal; font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Java API for XML Parsing (JAXP).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Although DOM, SAX, and JDOM provide standard interfaces for most common tasks, there are still several things they don't address. For example, the process of creating a &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier;mso-bidi-font-family:Courier;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;DOMParser &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;object in a Java program differs from one DOM parser to the next. To fix this problem, Sun has released JAXP, the Java API for XML Parsing. This API provides common interfaces for processing XML documents using DOM, SAX, and XSLT. JAXP provides interfaces such as the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier;mso-bidi-font-family:Courier;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;DocumentBuilderFactory &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;and the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier;mso-bidi-font-family:Courier;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;DocumentBuilder &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;that provide a standard interface to different parsers. There are also methods that allow you to control whether the underlying parser is namespace-aware and whether it uses a DTD or schema to validate the XML document.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="mso-spacerun:yes"&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;i&gt;&lt;b&gt;&lt;b&gt;&lt;i&gt;&lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="LTR" style="text-align:left;mso-layout-grid-align:none; text-autospace:none;direction:ltr;unicode-bidi:embed"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/b&gt;&lt;/i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/b&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27659513-5335326199818185569?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/5335326199818185569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=5335326199818185569' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5335326199818185569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/5335326199818185569'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/06/introduction-to-xml.html' title='Introduction to XML'/><author><name>Mohamed Reda</name><uri>http://www.blogger.com/profile/05505517015409063947</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Vbe8XdqRr74/Si5tieHRXGI/AAAAAAAAAA8/WOZ1WbBt1nU/s72-c/SGML.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-4362756110014197413</id><published>2009-06-09T08:56:00.009+03:00</published><updated>2010-01-03T16:34:01.630+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Announcements'/><title type='text'>Community Calender</title><content type='html'>&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;FCIH bloggers started a public calendar under the name: Community Events Calendar. It will be focused mainly on the Egyptian IT Community. A glimpse of the calendar is here below:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="400" scrolling="no" src="http://www.google.com/calendar/embed?showPrint=0&amp;amp;height=400&amp;amp;wkst=1&amp;amp;bgcolor=%23FFFFFF&amp;amp;src=a4lgh95ric33n590179795q0k4%40group.calendar.google.com&amp;amp;color=%23A32929&amp;amp;ctz=Africa%2FCairo" style="border-width: 0pt;" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;Also you can subscribe to calendar in many other ways, for eg the HTML version here:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;a href="http://www.google.com/calendar/embed?src=a4lgh95ric33n590179795q0k4%40group.calendar.google.com&amp;amp;ctz=Africa/Cairo"&gt;http://www.google.com/calendar/embed?src=a4lgh95ric33n590179795q0k4%40group.calendar.google.com&amp;amp;ctz=Africa/Cairo&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;Or in iCal format that can be feed to Outlook or Apple iCal, etc :&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;a href="http://www.google.com/calendar/ical/a4lgh95ric33n590179795q0k4%40group.calendar.google.com/public/basic.ics"&gt;http://www.google.com/calendar/ical/a4lgh95ric33n590179795q0k4%40group.calendar.google.com/public/basic.ics&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;Also, as XML feed:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;a href="http://www.google.com/calendar/feeds/a4lgh95ric33n590179795q0k4%40group.calendar.google.com/public/basic"&gt;http://www.google.com/calendar/feeds/a4lgh95ric33n590179795q0k4%40group.calendar.google.com/public/basic&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;&lt;br /&gt;The calendar will include offline IT community Events held around Egypt. Also, online events both from Egypt (hopefully there will be, someday :)) &amp;amp; around the world.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Calibri; font-size: 11pt; margin: 0in;"&gt;Please, feel free to contact us (FCIH bloggers), send email to ComCal at FCIH dot Net or comment on &lt;a href="http://www.comcal.org/2009/11/fcih-bloggers-started-public-calendar.html#comments"&gt;this post&lt;/a&gt;, below, notifying us of events that need to be added to the calendar. Also, any ideas to improve it are much appreciated :)&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/27659513-4362756110014197413?l=fci-h.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fci-h.blogspot.com/feeds/4362756110014197413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27659513&amp;postID=4362756110014197413' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4362756110014197413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27659513/posts/default/4362756110014197413'/><link rel='alternate' type='text/html' href='http://fci-h.blogspot.com/2009/06/community-calender.html' title='Community Calender'/><author><name>Shady M. Najib</name><uri>http://www.blogger.com/profile/15517845851043368287</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_4401ryJ0di8/SaxWGpeWuyI/AAAAAAAAASw/ywm05pRzOZg/S220/n587461065_1697289_3449.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27659513.post-9177371514524539783</id><published>2009-06-08T17:36:00.001+03:00</published><updated>2009-06-08T19:16:25.980+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Handling Hibernate Session</title><content type='html'>&lt;p class="MsoNormal" style="text-align:left;direction:ltr;unicode-bidi:embed"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Handling hibernate session is so important, and the way of handling the session reflects with the performance of the application.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:left;direction:ltr;unicode-bidi:embed"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:left;direction:ltr;unicode-bidi:embed"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;You can handle the hibernate session per service. It means with each request for each service you will open new session, at the end of the service, you will close the session. In this approach you have to be sure that you don`t need the session again (lazy fetching for example ).&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:left;direction:ltr;unicode-bidi:embed"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;p.s) if lazy fetching is false it will affect the performance.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:left;direction:ltr;unicode-bidi:embed"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:left;direction:ltr;unicode-bidi:embed"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Another approach of handling session is session per view. &lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;When an HTTP request has to be handled, a new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;&lt;span style="font-family:&amp;quot;;color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/tt&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;and database transaction will begin. Right before the response is send to the client, and after all the work has been done, the transaction will be committed, and the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;&lt;span style="font-family:&amp;quot;;color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/tt&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;will be closed.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; In this approach you can user the Filter in servlets APIs . this approach is called &lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;session-per-conversation and used while implementing&lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;long conversations.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:left;direction:ltr;unicode-bidi:embed"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The third technique and the most recommended technique is using java transaction APIs. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Hibernate can automatically bind the "current"&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;tt&gt;&lt;span style="font-family:&amp;quot;;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Session&lt;/span&gt;&lt;/span&gt;&lt;/tt&gt;&lt;span class="apple-converted-space"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;to the current JTA transaction. This enables an easy implementation of the&lt;/span&gt;&lt;em&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; session-per-request&lt;/span&gt;&lt;/em&gt;&lt;span class="apple-converted-space"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;strategy with the&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;tt&gt;&lt;span style="font-family:&amp;quot;;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;getCurrentSession()&lt;/span&gt;&lt;/span&gt;&lt;/tt&gt;&lt;span class="apple-converted-space"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;method on your&lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;tt&gt;&lt;span style="font-family:&amp;quot;;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;SessionFactory&lt;/span&gt;&lt;/span&gt;&lt;/tt&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;:&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="mso-element:para-border-div;border:solid #CCCCCC 1.0pt;mso-border-alt: solid #CCCCCC .75pt;padding:4.0pt 4.0pt 4.0pt 5.0pt;background:#EEEEEE; margin-left:3.75pt;margin-right:3.75pt"&gt;&lt;pre style="margin-top:3.75pt; margin-right:0in;margin-bottom:3.75pt;margin-left:0in;line-height:9.0pt; background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0in; mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;try {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt; margin-right:0in;margin-bottom:3.75pt;margin-left:0in;line-height:9.0pt; background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0in; mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;UserTransaction tx = (UserTransaction)new InitialContext()&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt;margin-right:0in;margin-bottom:3.75pt;margin-left: 0in;line-height:9.0pt;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt; padding:0in;mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;.lookup("java:comp/UserTransaction");&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt;margin-right:0in;margin-bottom:3.75pt;margin-left: 0in;line-height:9.0pt;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt; padding:0in;mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt;margin-right:0in;margin-bottom:3.75pt;margin-left: 0in;line-height:9.0pt;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt; padding:0in;mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;tx.begin();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt;margin-right:0in;margin-bottom:3.75pt;margin-left: 0in;line-height:9.0pt;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt; padding:0in;mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt; margin-right:0in;margin-bottom:3.75pt;margin-left:0in;line-height:9.0pt; background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0in; mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;// Do some work&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt;margin-right:0in;margin-bottom:3.75pt;margin-left: 0in;line-height:9.0pt;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt; padding:0in;mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;factory.getCurrentSession().load(...);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt;margin-right:0in;margin-bottom:3.75pt;margin-left: 0in;line-height:9.0pt;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt; padding:0in;mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;factory.getCurrentSession().persist(...);&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt;margin-right:0in;margin-bottom:3.75pt;margin-left: 0in;line-height:9.0pt;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt; padding:0in;mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt; margin-right:0in;margin-bottom:3.75pt;margin-left:0in;line-height:9.0pt; background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0in; mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;tx.commit();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt;margin-right:0in;margin-bottom:3.75pt;margin-left: 0in;line-height:9.0pt;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt; padding:0in;mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;}&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt; margin-right:0in;margin-bottom:3.75pt;margin-left:0in;line-height:9.0pt; background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt;padding:0in; mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;catch (RuntimeException e) {&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt;margin-right:0in;margin-bottom:3.75pt;margin-left: 0in;line-height:9.0pt;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt; padding:0in;mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;tx.rollback();&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-top:3.75pt;margin-right:0in;margin-bottom:3.75pt;margin-left: 0in;line-height:9.0pt;background:#EEEEEE;border:none;mso-border-alt:solid #CCCCCC .75pt; padding:0in;mso-padding-alt:4.0pt 4.0pt 4.0pt 5.0pt"&gt;&lt;span style="
