tag:blogger.com,1999:blog-276595132024-03-08T05:11:31.502+02:00FCIHRamy Mahroushttp://www.blogger.com/profile/06875204608099539248noreply@blogger.comBlogger325125tag:blogger.com,1999:blog-27659513.post-9825823931573680992011-12-11T16:22:00.001+02:002011-12-11T16:22:07.982+02:00FCIH Initiative family call for new members<p>FCIH initiative is group of <a href="http://www.fcih.net/main/" target="_blank">FCIH</a> graduates who are interested in passing their experience & knowledge to FCIH students. The kick off was on 7 November 2009; during these two years, we managed to hold number of sessions and  Java training.</p> <p> <br />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  initiative family. Kindly, if you are interested, take a few minutes to fill  <a href="https://docs.google.com/spreadsheet/viewform?formkey=dGNuMXdlbndlR0JFbWczZVdYY0ttbmc6MQ" target="_blank">this form</a>, if you are already a member please fill the form as well.</p> <p> <br />Please, feel free to spread the word to other <u><b>FCIH graduates </b></u>who might be interested.</p> Shady M. Najibhttp://www.blogger.com/profile/15517845851043368287noreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-68231436694466567882011-11-16T04:49:00.001+02:002011-11-17T00:08:27.610+02:00Currying<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="MsoNormal">
In this post we will talk about currying, why you
may need it, how to implement it with different paradigms (OOP,
meta-programming, and functional).<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Let's first talk about motivation. Consider the
simple scenario where you have a list of integers, and you want to filter it to
extract only the integers you want. For instance this list could be a list of
user IDs, and you want to extract only the users who are late in their payments
to send them an email. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It is pretty much straight forward to do it in a
loop; but we want a clearer way that focuses on semantics. For example consider
something like <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">send_email_to(select_from(all_users, <span style="color: #f00000;">payment_due</span>))</span><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I've colored <span style="color: #f00000; font-family: 'Courier New';">payment_due</span> in
red to make it clear its a function, not a variable. The function <span style="font-family: 'Courier New';">select_from</span> could
contain the loop structure (and maybe some database processing), where in each
loop they apply the function <span style="color: #f00000; font-family: 'Courier New';">payment_due</span> to
some user like this:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">select_from(list, test)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">{<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">
selected = {};<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">
for(i=0; i < list.length; i++)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">
if(test(list[i]) == true)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">
append(selected,list[i])<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">
return selected;<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">}</span><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Notice that the function <span style="color: #f00000; font-family: 'Courier New';">payment_due</span> must be a function that takes only one
parameter, because that is how it will be called from inside <span style="font-family: 'Courier New';">select_from</span>. In <a href="http://en.wikipedia.org/wiki/Filter_(higher-order_function)"><span style="color: windowtext; text-decoration: none;">most</span></a>
languages which have <a href="http://en.wikipedia.org/wiki/First-class_function"><span style="color: windowtext; text-decoration: none;">first-class
functions</span></a> there is a built-in function which acts like <span style="font-family: 'Courier New';">select_from</span>, exactly
for this kind of purpose. This includes C++ and all functional programming
languages. In C++11 it is called <a href="http://en.cppreference.com/w/cpp/algorithm/copy"><span style="color: windowtext; font-family: 'Courier New'; text-decoration: none;">copy_if</span></a> (it was dropped from C++ by <a href="http://lists.boost.org/Archives/boost/2001/01/8022.php"><span style="color: windowtext; text-decoration: none;">accident</span></a>).<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Consider another «test» function that takes as
argument a user ID, and returns true if the user’s monthly salary is more than
3000. That could be written as:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #f00000; font-family: 'Courier New';">salary_greater_than_3000</span><span style="font-family: 'Courier New';">(user)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">{<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';"> return
user.salary > 3000;<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">send_email_to(select_from(all_users, <span style="color: #f00000;">salary_greater_than_3000</span>))</span><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Maybe we have something like this:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #f00000; font-family: 'Courier New';">salary_greater_than_x</span><span style="font-family: 'Courier New';">(user,x)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">{<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';"> return
user.salary > x;<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #f00000; font-family: 'Courier New';">salary_greater_than_3000</span><span style="font-family: 'Courier New';">(user)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">{<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';"> return
<span style="color: #f00000;">salary_greater_than_x</span>(user,3000);<span style="color: #f00000;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">send_email_to(select_from(all_users, <span style="color: #f00000;">salary_greater_than_3000</span>))<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
C++ macros won’t do the same thing as above, but
C++ STL <a href="http://www-h.eng.cam.ac.uk/help/tpl/languages/C++/bind.html"><span style="color: windowtext; text-decoration: none;">bind2nd</span></a>
(which is also compile-time meta-programming) can do the same thing.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If we don’t know the value 3000 at compile time and
instead we only have it in run-time, we can’t do this call <span style="font-family: 'Courier New';">select_from(all_users,
<span style="color: #f00000;">salary_greater_than_x</span>)</span>. This
wouldn’t work because <span style="font-family: 'Courier New';">select_from</span> expects a function taking
one parameter only.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In C++ this could be fixed by using a functor,
which is a class which overrides operator(), and hence could be used as a
function. For example (this example is valid C++, not just pseudo code as the
previous examples):<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">class salary_greater_than_x<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">{<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';"> const
int x;<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';"> public:
salary_greater_than_x(int x): x(x){}<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';"> bool
operator()(User user) { return user.salary() > x; }<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">}</span><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">send_email_to(select_from(all_users, <span style="color: #f00000;">salary_greater_than_x(3000)</span>))</span><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Lambda expressions does the same thing exactly,
without the need to write a class for it. In C++11 (which supports lambda
epxressions) that would be like:<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">send_email_to(select_from(all_users, <span style="color: #003dcc;">[](User user){</span><span style="color: #f00000;">salary_greater_than_x(user,3000)</span><span style="color: #0044fe;">}</span>))</span><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The lambda expression, just like the functor,
stores the value 3000, which is a sort of a <a href="http://en.wikipedia.org/wiki/Closure_(computer_science)"><span style="color: windowtext; text-decoration: none;">closure</span></a>.
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Lambda expressions is too powerful; you can define
arbitrary functions. We don’t need all that power, we only need to fix one
argument of another function. This is what currying does. For instance, we know
that <span style="color: #f00000; font-family: 'Courier New';">salary_greater_than_x </span>takes two
arguments. If the language we are using supports implicit currying (like <a href="http://www.haskell.org/haskellwiki/Currying"><span style="color: windowtext; text-decoration: none;">Haskell</span></a>) if we omitted the
second parameter we end up with a function whose first parameter is fixed.
Concretely speaking we can do this (notice I switched the first and second
parameters in the definition of <span style="color: #f00000; font-family: 'Courier New';">salary_greater_than_x</span>) :<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #f00000; font-family: 'Courier New';">salary_greater_than_x</span><span style="font-family: 'Courier New';">(x,
user)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">{<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';"> return
user.salary > x;<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #f00000; font-family: 'Courier New';">salary_greater_than_3000 =
salary_greater_than_x(3000)<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">send_email_to(select_from(all_users, <span style="color: #f00000;">salary_greater_than_3000</span>))<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
or simply just :<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';">send_email_to(select_from(all_users, <span style="color: #f00000;">salary_greater_than_x(3000)</span>))</span><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<br /></div>
</div>Mohammad Alagganhttp://www.blogger.com/profile/00636251663295114267noreply@blogger.com1tag:blogger.com,1999:blog-27659513.post-25216366428894279052011-07-12T21:34:00.000+02:002011-07-12T21:34:30.836+02:00Announcement: FCIH Initiative<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK_emm1v_GMy56ZMtmd6RxbZOC-Mzo4OlMw9MfHmsYZz7JRiueLuYIc4sa6Pmb8Y0Xxp7LsJse6maD5Yf_cKeuTsHEnKIQL9_GRtUh7qIVFXV-2WqG_GAdMAUSUQrS7GFL_KGC7g/s1600/InitiativeLogo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="99" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK_emm1v_GMy56ZMtmd6RxbZOC-Mzo4OlMw9MfHmsYZz7JRiueLuYIc4sa6Pmb8Y0Xxp7LsJse6maD5Yf_cKeuTsHEnKIQL9_GRtUh7qIVFXV-2WqG_GAdMAUSUQrS7GFL_KGC7g/s320/InitiativeLogo.png" width="320" /></a></div><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;"><b><span style="color: #17365d; font-size: 13pt; line-height: 19px;"><span style="font-family: Calibri;"><br />
</span></span></b></div><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;"><b><span style="color: #17365d; font-size: 13pt; line-height: 19px;"><span style="font-family: Calibri;">FCIH Initiative….FCIH Revolution<u></u><u></u><u></u></span></span></b></div><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;"><br />
</div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">If you love your country and want to take effective steps to raise Egypt<u></u><u></u></span></span></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">If you're seeking development, freedom, knowledge and science<u></u><u></u></span></span></div><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;"><br />
</div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">So, you're a proactive Egyptian and FCIan and should join our FCIH Revolution<u></u><u></u></span></span></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">A revolution of knowledge, learning, working and a revolution of dreams<u></u><u></u></span></span></div><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;"><br />
</div><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;"><b><span style="color: #17365d; font-size: 13pt; line-height: 19px;"><span style="font-family: Calibri;">We're all together; FCIH Graduates and Students<u></u><u></u></span></span></b></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">We're all here to help each others; we're all here to develop our skills<u></u><u></u></span></span></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">Together, we'll have a better world, we'll have a better tom, and we'll have a better Egypt<u></u><u></u></span></span></div><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;"><br />
</div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">We'll attend Technical & Business sessions to know<u></u><u></u></span></span></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">We'll be trained to learn<u></u><u></u></span></span></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">We'll do projects…and then we'll be ready to achieve<u></u><u></u></span></span></div><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;"><br />
</div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">Let's join and train ourselves<u></u><u></u></span></span></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">Let's join and know the business world from experts from each field<u></u><u></u></span></span></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">Let's join and start building our future and career from now<u></u><u></u></span></span></div><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;"><br />
</div><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;"><b><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">Our program will be divided into three phases:<u></u><u></u></span></span></b></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span><span style="font-family: Calibri;">1-</span><span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span></span><span dir="ltr"></span><b><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">Sessions Phase:</span></span></b><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;"><br />
These sessions will open us a window to the business world, discuss technical topics and tell us about the world outside FCIH<u></u><u></u></span></span></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span><span style="font-family: Calibri;">2-</span><span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span></span><span dir="ltr"></span><b><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">Training phase:</span></span></b><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><br />
<span style="font-family: Calibri;">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<u></u><u></u></span></span></div><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;"><b><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span><span style="font-family: Calibri;">3-</span><span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span></span></b><span dir="ltr"></span><b><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">Projects phase:<u></u><u></u></span></span></b></div><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;"><span style="color: #17365d; font-size: 12pt; line-height: 18px;"><span style="font-family: Calibri;">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.<u></u><u></u></span></span></div><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;"><br />
</div><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;"><br />
</div><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;"><b><span style="color: #17365d;"><span style="font-size: small;"><span style="font-family: Calibri;">FCIH Initiative,<u></u><u></u></span></span></span></b></div><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;"><b><span style="color: #17365d;"><span style="font-size: small;"><span style="font-family: Calibri;">Don't wait the chance, create it</span></span></span></b></div><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;"><br />
</div><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;"><b><span style="color: #17365d;"><span style="font-size: small;"><span style="font-family: Calibri;"><u></u>Contacts:<u></u></span></span></span></b></div><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;"><b><span style="color: #17365d;"><span style="font-size: small;"><span style="font-family: Calibri;"><u></u>Mail: <a href="mailto:FCIH.Initiative@fcih.net" style="color: #3333cc;" target="_blank">FCIH.Initiative@fcih.net</a><u></u></span></span></span></b></div><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;"><b><span style="color: #17365d;"><span style="font-size: small;"><span style="font-family: Calibri;"><u></u>Blog: <a href="http://fci-h.blogspot.com/" style="color: #3333cc;" target="_blank">http://fci-h.blogspot.com/</a><u></u></span></span></span></b></div><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;"><b><span style="color: #17365d;"><span style="font-size: small;"><span style="font-family: Calibri;"><u></u><span style="color: #17365d;"><span style="font-size: small;"><span style="font-family: Calibri;"><u></u>Facebook Event: <a href="http://www.facebook.com/#!/event.php?eid=201086659939630" style="color: #3333cc;" target="_blank">http://www.facebook.com/#!/<wbr></wbr>event.php?eid=201086659939630</a><u></u></span></span></span><u></u></span></span></span></b></div><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;"><b><span style="color: #17365d;"><span style="font-size: small;"><span style="font-family: Calibri;"><u></u>Facebook Group: <a href="http://www.facebook.com/#!/group.php?gid=147883125238765" style="color: #3333cc;" target="_blank">http://www.facebook.com/#!/<wbr></wbr>group.php?gid=147883125238765</a><u></u></span></span></span></b></div><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;"><br />
</div><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;"><br />
</div>Ahmed Essawyhttp://www.blogger.com/profile/02553277669431055635noreply@blogger.com1tag:blogger.com,1999:blog-27659513.post-79602292928266912762011-03-03T21:12:00.001+02:002011-03-03T21:12:34.339+02:00"Note in (Google) Reader" issue Fix<p>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!</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjySKAwkD1qj7rAB68TnwvpxO_qIXgGqMDRABLe1e4326PRMO3ZCGoKvmgMt4NgoKRd0eRYIhI29qPVULI6tiB14sr3ts7DK-Xk-ldQ57ZyyD5gu9Jqx2ZE1hhOA_Y-Fl8hk77D/s1600-h/GReader%5B6%5D.jpg"><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="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2iV87tcbWAn1Y6wOOkcgz7JnCwgpOh12YZs85ZUR5CHmnDbw02bu7vjPKwtFWQAxlk6cTQTdKuBmUjMfjIAGpgba7xv_TP2r6EYdoCUAWzHraalOuqDERnBdCd5XpVUVp8lqZ/?imgmax=800" width="244" height="179" /></a></p> <p> </p> <p>After <a href="http://twitter.com/mShady/status/43322748356935680" target="_blank">tweeting</a> about it, thanks to <a href="http://www.google.vu/support/forum/p/reader/thread?tid=7eb6f6fc5796f544&hl=en&fid=7eb6f6fc5796f54400049d8cb32ee1ef&hltp=2" target="_blank">Flavio Gomes</a> and <a href="http://twitter.com/mtobis" target="_blank">@mtobis</a>, I realized what went wrong. Seems like the <a href="http://www.google.com/reader/ui/link-bookmarklet.js" target="_blank">JavaScript file</a> used by the button was updated, without updating the button script accordingly.</p> <p> </p> <p>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:</p> <div class="csharpcode"> <pre class="alt">_IS_MULTILOGIN_ENABLED=<span class="kwrd">true</span>;</pre><br /><br /> <pre><span class="rem">// or</span></pre><br /><br /> <pre class="alt">_IS_MULTILOGIN_ENABLED=<span class="kwrd">false</span>;</pre><br /><br /> <pre><span class="rem">// or better</span></pre><br /><br /> <pre class="alt">_IS_MULTILOGIN_ENABLED=((<span class="kwrd">typeof</span>(_IS_MULTILOGIN_ENABLED)==<span class="str">"undefined"</span>)?<span class="kwrd">false</span>:_IS_MULTILOGIN_ENABLED);</pre><br /></div><br /><style type="text/css"><br /><br />.csharpcode, .csharpcode pre<br />{<br /> font-size: small;<br /> color: black;<br /> font-family: consolas, "Courier New", courier, monospace;<br /> background-color: #ffffff;<br /> /*white-space: pre;*/<br />}<br />.csharpcode pre { margin: 0em; }<br />.csharpcode .rem { color: #008000; }<br />.csharpcode .kwrd { color: #0000ff; }<br />.csharpcode .str { color: #006080; }<br />.csharpcode .op { color: #0000c0; }<br />.csharpcode .preproc { color: #cc6633; }<br />.csharpcode .asp { background-color: #ffff00; }<br />.csharpcode .html { color: #800000; }<br />.csharpcode .attr { color: #ff0000; }<br />.csharpcode .alt <br />{<br /> background-color: #f4f4f4;<br /> width: 100%;<br /> margin: 0em;<br />}<br />.csharpcode .lnum { color: #606060; }</style><br /><br /><p> </p><br /><br /><p>at the beginning of the button script, just to set _IS_MULTILOGIN_ENABLED before it's accessed as "undefined" in the script.</p> Shady M. Najibhttp://www.blogger.com/profile/15517845851043368287noreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-52202124620821422372011-01-17T14:00:00.001+02:002011-01-17T14:01:56.064+02:00How to solve "Silverlight.CSharp.targets was not found" problem<div style="text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcepav6zzPQD_XlgfGxSggZMDOFnFELs5xFHgDx16fp8w2Kl38Wy785TkAEFzOwyoBnR2_q73AsjnipGGrnz7r5xexlnbV75KiLk8XwpgSGwRKmIdPPqUKOKBpHo7yuEkYLR-CYw/s1600/Silverlight.CSharp.targets+was+not+found.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="86" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcepav6zzPQD_XlgfGxSggZMDOFnFELs5xFHgDx16fp8w2Kl38Wy785TkAEFzOwyoBnR2_q73AsjnipGGrnz7r5xexlnbV75KiLk8XwpgSGwRKmIdPPqUKOKBpHo7yuEkYLR-CYw/s400/Silverlight.CSharp.targets+was+not+found.jpg" width="400" /></a></div><br />
<span style="font-size: small;">Friend of mine asked that she can't build any Silverlight project inside <a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions">VS 2010</a> from <a href="http://gallery.expression.microsoft.com/">http://gallery.expression.microsoft.com.</a></span></div><div style="color: red; text-align: left;"><span style="font-size: small;">The error was similar to : </span></div><div style="text-align: left;"><span style="font-size: small;"> C:\OverlappingTabs.csproj : error :<span style="color: red;"> Unable to read the project file 'OverlappingTabs.csproj'. </span><br />
C:\OverlappingTabs.csproj(108,3): <span style="color: red;">The imported project "C:\Program Files\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.CSharp.targets" was not found. Confirm that the path in the <import> declaration is correct, and that the file exists on disk.</import></span></span></div><div style="text-align: left;"><span style="font-size: small;"><br />
</span></div><div style="text-align: left;"><span style="font-size: small;">This problem runs because <a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions">VS2010 </a>came up with support for <a href="http://www.silverlight.net/getstarted/silverlight3">Silverlight 3</a> but not <a href="http://www.silverlight.net/getstarted/silverlight-4/">Silverlight 4</a> as <a href="http://www.silverlight.net/getstarted/silverlight-4/">Silverlight 4</a></span> had released after <span style="font-size: small;"><a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions"> VS2010.</a></span></div><div style="text-align: left;"><br />
</div><div style="text-align: left;"><span style="font-size: small;">What you need is just setup</span><span style="font-size: small;"> "<a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b3deb194-ca86-4fb6-a716-b67c2604a139">Microsoft Silverlight 4 Tools for Visual Studio 2010</a>" about 35 MB without restarting your OS.</span></div><div style="text-align: left;"></div><div style="text-align: left;"><br />
</div><div style="text-align: left;"></div><div style="text-align: left;"><span style="font-size: small;"><br />
</span></div><div style="text-align: left;"><span style="font-size: small;"><br />
</span></div>Ahmed Essawyhttp://www.blogger.com/profile/02553277669431055635noreply@blogger.com2tag:blogger.com,1999:blog-27659513.post-21546056397091532572011-01-09T02:02:00.001+02:002011-01-09T13:51:03.686+02:00How to force undo checkout? #TFS<p>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).</p> <p>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.. </p> <p>Using tf has lots and lots of uses, here's a <a href="http://msdn.microsoft.com/en-us/library/z51z7zy0.aspx" target="_blank">really LONG list</a> 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:</p> <p><u>Undoing pending changes for a specific file:</u></p> <p>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).</p> <p>You could have an issue with the third one (workspace name), so you might have to check the <a href="http://msdn.microsoft.com/en-us/library/54dkh0y3.aspx" target="_blank">Workspaces command</a> for more details, but generally a small command like the one below will do just ok in most cases:</p> <blockquote> <p><em>tf workspaces /owner:UserName</em></p> </blockquote> <p>Knowing the above you can easily undo the pending changes as below, note: parameters are in squiggly braces like {these}:</p> <blockquote> <p><em>tf undo {file path} /workspace:{workspace};{username} /server:{TFS name/IP}</em></p> </blockquote> <p>Of course the "/server" part can be removed if you're on the same server running TFS. An example with some data will look like:</p> <blockquote> <p><em>tf undo $/myProject/myFile.cs /workspace:mySpace;FCIH\shady /server:FCIH_TFS</em></p> <style type="text/css"><br /><br /><br /><br /><br />.csharpcode, .csharpcode pre<br />{<br /> font-size: small;<br /> color: black;<br /> font-family: consolas, "Courier New", courier, monospace;<br /> background-color: #ffffff;<br /> /*white-space: pre;*/<br />}<br />.csharpcode pre { margin: 0em; }<br />.csharpcode .rem { color: #008000; }<br />.csharpcode .kwrd { color: #0000ff; }<br />.csharpcode .str { color: #006080; }<br />.csharpcode .op { color: #0000c0; }<br />.csharpcode .preproc { color: #cc6633; }<br />.csharpcode .asp { background-color: #ffff00; }<br />.csharpcode .html { color: #800000; }<br />.csharpcode .attr { color: #ff0000; }<br />.csharpcode .alt <br />{<br /> background-color: #f4f4f4;<br /> width: 100%;<br /> margin: 0em;<br />}<br />.csharpcode .lnum { color: #606060; }</style></blockquote> <p><u>Deleting the whole workspace:</u></p> <p>The other option is to delete the whole workspace, which in turn delete any related checkouts. A simple command for that could be:</p> <blockquote> <p><em>tf workspace /delete {workspace};{username} /server:{TFS name/IP}</em></p> </blockquote> <p>which with some example parameters might look like:</p> <blockquote> <p><em>tf workspace /delete Shady-PC;FCIH\shady /server:10.0.0.2</em></p> </blockquote> <p><u>UPDATE:</u></p> <p>After a <a href="https://www.blogger.com/comment.g?blogID=27659513&postID=2154605639709153257" target="_blank">comment</a> by <a href="http://twitter.com/Meligy" target="_blank">Meligy</a>, 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 <a href="http://msdn.microsoft.com/en-us/library/c72skhw4.aspx" target="_blank">Undo</a>, <a href="http://msdn.microsoft.com/en-us/library/y901w7se.aspx" target="_blank">Workspace</a> and <a href="http://msdn.microsoft.com/en-us/library/54dkh0y3.aspx" target="_blank">Workspaces</a> commands.</p> <p>If you're not logged in as the appropriate account, you can append {/login:username, [password]} to provide the authorized username and password.</p> <p>Meligy, also, mentioned another tool called <a href="http://www.attrice.info/cm/tfs/" target="_blank">TFS Sidekicks</a> that can do similar stuff.</p> Shady M. Najibhttp://www.blogger.com/profile/15517845851043368287noreply@blogger.com6tag:blogger.com,1999:blog-27659513.post-50546776400281879412011-01-06T21:30:00.000+02:002011-01-06T21:30:52.834+02:00Silverlight: Image Carousel(3d Album)Here is my "HelloWorld" Sliverlight application as in below picture for carousel by Sliverlight with source code as <a href="http://www.gnu.org/licenses/gpl.html">GNU GENERAL PUBLIC LICENSE</a>.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTvDVD-LIsryDbJQ8dWrPC9mCrkYh3xPAsYUf0CgGoakBPB_vIQljY-nzuOt7tKJXlqRcU5jv0i-iMIrkOIyFJPd-I03PW25bdQDh7J14nvaIMQXiPT4XcoE2TFMrrgZayatvHUQ/s1600/Silverlight_+Image_Carousel_3dAlbum_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="380" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTvDVD-LIsryDbJQ8dWrPC9mCrkYh3xPAsYUf0CgGoakBPB_vIQljY-nzuOt7tKJXlqRcU5jv0i-iMIrkOIyFJPd-I03PW25bdQDh7J14nvaIMQXiPT4XcoE2TFMrrgZayatvHUQ/s400/Silverlight_+Image_Carousel_3dAlbum_1.JPG" width="400" /></a></div><br />
The original code is <a href="http://www.shinedraw.com/animation-effect/flash-vs-silverlight-image-carousel/">here</a> by <span class="fn"><a href="http://twitter.com/terence410"> Shine Draw</a> </span>then modified and enhanced by <a href="http://twitter.com/ahmedessawy">me</a>.<br />
The following are new features which I have added: <br />
<ol><li>Added Slider bar to view all items by scrolling.</li>
<li> Linked the (Slider) with mouse wheel.</li>
<li>Added a subject label related to every selected Item. </li>
<li>Added the ablilty to move next by selecting an arbitrary item (mouse click to the corresponding item only).</li>
<li>Added a projection effect to every non-selected items.</li>
<li>Added control panel to setup metadata on running time. <br />
</li>
</ol>Here is <a href="https://sites.google.com/site/ahmedessawy2/ImageCarousel_v2_FCI-HBlog.rar">the source code</a> with comments.<br />
All what you need is <a href="http://www.microsoft.com/express/Downloads/"> Visual Studio </a>2008 or 2010 and <a href="http://www.microsoft.com/silverlight/">Silverlight </a>3 or more (<a href="http://www.microsoft.com/getsilverlight/Get-Started/Install/Default.aspx">click here to get Sliverlight</a>).<br />
<div style="color: red;">Note: </div>No need to setup <a href="http://www.microsoft.com/expression/products/blend_overview.aspx">Microsoft Expression Blend</a>, all effects are mathematics behind.Ahmed Essawyhttp://www.blogger.com/profile/02553277669431055635noreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-81451515355353594262010-12-29T17:01:00.000+02:002010-12-29T17:01:27.301+02:00Finding & Resolving Mysql Connection LeaksAs 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.<br />
<br />
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:<br />
<br />
1- <b>Limit the running features of your app:</b> 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.<br />
2- <b>Mysql Admin: </b>see the health of the DBMS from the "<i>mysql admin</i>" tool, if you find the connection usage rising up then we have a connection leak problem for sure.<br />
3- <b>show processlist: </b>in the mysql command line tool, type "<i>show processlist;</i>". Notice the "Command" column of the results in front of you if you find a lot of connections marked as "<i>Sleep</i>" then we are on the right track for the disaster as sooner or later the connection pool will run out of connections.<br />
4- <b>wait_timeout: </b>The "wait_timeout" variable tells Mysql when to consider an unused connection available for termination. 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.<br />
<br />
<b>What caused the sleeping connections?</b><br />
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 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.<br />
<b><br />
</b>Youssef Mamdouhhttp://www.blogger.com/profile/04917580493499832141noreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-63818890104727149592010-09-20T12:04:00.006+03:002010-09-20T12:35:11.305+03:00Book Review: JasperReports 3.6.0 Development Cookbook<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://www.packtpub.com/sites/default/files/0769_MockupCover_Raw_01.jpg"><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" /></a><span style="font-size:100%;">
<br /></span><meta equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 12"><meta name="Originator" content="Microsoft Word 12"><link style="font-family: verdana;" rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"><link style="font-family: verdana;" rel="themeData" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"><link style="font-family: verdana;" rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:trackmoves/> <w:trackformatting/> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:donotpromoteqf/> <w:lidthemeother>EN-US</w:LidThemeOther> <w:lidthemeasian>X-NONE</w:LidThemeAsian> <w:lidthemecomplexscript>AR-SA</w:LidThemeComplexScript> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> <w:splitpgbreakandparamark/> <w:dontvertaligncellwithsp/> <w:dontbreakconstrainedforcedtables/> <w:dontvertalignintxbx/> <w:word11kerningpairs/> <w:cachedcolbalance/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathpr> <m:mathfont val="Cambria Math"> <m:brkbin val="before"> <m:brkbinsub val="--"> <m:smallfrac val="off"> <m:dispdef/> <m:lmargin val="0"> <m:rmargin val="0"> <m:defjc val="centerGroup"> <m:wrapindent val="1440"> <m:intlim val="subSup"> <m:narylim val="undOvr"> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"> <w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"> <w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"> <w:lsdexception locked="false" priority="39" name="toc 1"> <w:lsdexception locked="false" priority="39" name="toc 2"> <w:lsdexception locked="false" priority="39" name="toc 3"> <w:lsdexception locked="false" priority="39" name="toc 4"> <w:lsdexception locked="false" priority="39" name="toc 5"> <w:lsdexception locked="false" priority="39" name="toc 6"> <w:lsdexception locked="false" priority="39" name="toc 7"> <w:lsdexception locked="false" priority="39" name="toc 8"> <w:lsdexception locked="false" priority="39" name="toc 9"> <w:lsdexception locked="false" priority="35" qformat="true" name="caption"> <w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"> <w:lsdexception locked="false" priority="1" name="Default Paragraph Font"> <w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"> <w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"> <w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"> <w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"> <w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"> <w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"> <w:lsdexception locked="false" unhidewhenused="false" name="Revision"> <w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"> <w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"> <w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"> <w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"> <w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"> <w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"> <w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"> <w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"> <w:lsdexception locked="false" priority="37" name="Bibliography"> <w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"> </w:LatentStyles> </xml><![endif]--><style> <!-- /* 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;} --> </style><!--[if gte mso 10]> <style> /* 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;} </style> <![endif]--> <p style="text-align: justify; font-family: verdana;font-family:verdana;" class="MsoNormal"><span style="font-size:100%;"><span style="font-weight: bold;font-size:130%;" > Two</span> years ago I wrote a series of quick start articles <a href="http://fci-h.blogspot.com/2008/06/java-reporting-jasperreports.html"><u>here</u></a> 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.</span></p><div style="font-family: verdana;"> </div><p style="text-align: left; font-family: verdana;font-family:verdana;" class="MsoNormal"><span style="font-size:100%;">Fortunately, that is a past. Recently <a href="https://www.packtpub.com/authors/profiles/bilal-siddiqui">Bilal Siddiqui</a> has published a new book on the topic <a href="https://www.packtpub.com/jasperreports-3-5-2-development-cookbook/book" target="_blank">JasperReports 3.6.0 Development Cookbook</a> which I’ve been reviewing through the last week and found it could be useful to share my impressions.</span></p><div style="text-align: justify; font-family: verdana;"> </div><p style="text-align: left; font-family: verdana;font-family:verdana;" class="MsoNormal"><span style="font-size:100%;">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.</span></p><div style="text-align: justify; font-family: verdana;"> </div><p style="text-align: left; font-family: verdana;" class="MsoNormal"><span style="font-size:100%;">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 <span style=""> </span>integrating reports in web application could be useful.</span></p>
<br />Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-27659513.post-12257547028201965232010-09-15T14:25:00.001+03:002010-09-15T14:25:47.573+03:00SQLServer : How to know the last modified table in your DBHere 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.<br />
<br />
<span style="color: blue;">Select </span>* <span style="color: blue;">from </span><span style="color: #38761d;">sys.objects</span> <span style="color: blue;">where </span>type_desc= '<span style="color: red;">USER_TABLE</span>' <span style="color: blue;">ORDER BY</span> modify_date <span style="color: blue;">desc</span> <br />
<br />
<b>type_desc</b> : is object type in SQL and here we wrote '<span style="color: red;">USER_TABLE</span>' as we need tables created by user.Ahmed Essawyhttp://www.blogger.com/profile/02553277669431055635noreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-33741220418426515552010-09-13T13:54:00.001+03:002010-09-13T13:55:15.020+03:00Do people in non-English-speaking countries code in English?<p>I was reading a <a href="http://programmers.stackexchange.com/questions/1483/do-people-in-non-english-speaking-countries-code-in-english" target="_blank">question</a> with the same name on Stack-Exchange Beta site for Non-programmer-related questions (aka <a href="http://programmers.stackexchange.com" target="_blank">Programmers</a>) when I came across this <a href="http://programmers.stackexchange.com/questions/1483/do-people-in-non-english-speaking-countries-code-in-english/3165#3165" target="_blank">answer</a> posted by a (probably Ukrainian) developer named Igor.</p> <p>Accompanied by an earlier attempt by a colleague at work to write an <em>enum</em> in Arabic, I tried to write this piece of code:</p> <script src="http://gist.github.com/577099.js"> </script> <p>Strangely enough it compiled and even ran showing the expected output (10)!! Note, the order above of the 2nd & 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 & past it in your IDE to know how it looks).</p> <p>Off course, I’m pretty convinced that this isn’t the best practice you should follow, (check <a href="http://programmers.stackexchange.com/questions/1483/do-people-in-non-english-speaking-countries-code-in-english/1507#1507" target="_blank">my answer</a> 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</p> Shady M. Najibhttp://www.blogger.com/profile/15517845851043368287noreply@blogger.com2tag:blogger.com,1999:blog-27659513.post-48363255808022321222010-09-08T20:18:00.001+02:002010-09-09T17:33:59.265+02:00Does Google Instant really ruin SEO?<p>I was just reading an <a href="http://www.steverubel.com/google-instant-makes-seo-irrelevant" target="_blank">article</a> I found on <a href="http://twitter.com/hjarche/status/23933276680" target="_blank">twitter</a> about how <a href="http://www.google.com/instant" target="_blank">Google Instant</a> (the new Google search enhancement to be rolled out to all users soon) will ruin Search Engine Optimization (SEO) which I find kinda wrong.</p> <p><strong>First:</strong> 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 :)</p> <p>SEO is not about deceiving people to direct them to your content, whether it’s relevant or not!!</p> <p><strong>Second:</strong> & 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.</p> <p>So, what do you think? correct me if you can see it in any other way..</p> <p><strong>Update: </strong></p> <p>I find this tweet by @<a href="http://twitter.com/Bashmohandes" target="_blank">Bashmohandes</a> more valid though: </p> <blockquote> <p>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</p></blockquote> Shady M. Najibhttp://www.blogger.com/profile/15517845851043368287noreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-59677049362162533612010-07-21T22:16:00.004+03:002010-07-22T01:27:13.803+03:00FCIH Initiative launch<div align="center" dir="ltr" style="direction: ltr; text-align: center;"><span style="font-family: Calibri;"><span style="color: #0070c0; font-size: 14pt; font-weight: bold; line-height: 115%;"><span style="color: black; font-size: 100%;">Finally we are glad to announce the launch of</span></span><b><span style="color: #0070c0; font-size: 14pt; line-height: 115%;"><br />
</span></b></span></div><div align="center" dir="ltr" style="direction: ltr; font-weight: bold; text-align: center;"><span style="font-family: Calibri;"><span style="font-size: 180%;"><span style="color: #0070c0; font-size: 14pt; line-height: 115%;">FCIH Initiative Program</span></span></span></div><div align="center" dir="ltr" style="direction: ltr; font-weight: bold; text-align: center;"><span style="font-family: Calibri;"><span style="font-size: 100%;"><span style="color: black;"><span style="line-height: 115%;">On Next Sunday 25/7/2010 </span></span><span style="color: black;"><span style="line-height: 115%;">at FCI-Helwan</span></span></span></span></div><div dir="ltr" style="color: black; direction: ltr; text-align: left;"><span style="font-size: 12pt; line-height: 115%;"><span style="font-family: Calibri;">Join our great event; Join a group of carefully selected sessions highly needed in your practical life.</span></span></div><div dir="ltr" style="direction: ltr; text-align: left;"><b><span style="color: #1f497d; font-size: 13pt; line-height: 115%;"><span style="font-family: Calibri;">Event Schedule:</span></span></b></div><div align="left" dir="ltr"><table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border: medium none;"><tbody>
<tr> <td colspan="3" style="border: 1pt solid black; color: transparent; padding: 0cm 5.4pt;" valign="top" width="518"><div dir="ltr" style="background: none repeat scroll 0% 0% white;"><b><span style="color: #1f497d;">Day 1 [Sunday: 25-7-2010]: Let's get started</span></b><b><span style="color: #1f497d; font-size: 11pt;"></span></b></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">10:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">10:30</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Orientation</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">10:30</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">12:30 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Object Oriented Blocks</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">12:30</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">01:00 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Break</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">01:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">02:30 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Good Code</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">02:30</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">03:00 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Break</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">03:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">04:00 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">English</span></b><b><span style="color: #1f497d; font-size: 12pt;"> </span></b><b><span style="color: #1f497d;">for Business</span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="background: none repeat scroll 0% 0% white;"><b><span style="color: #1f497d; font-size: 11pt;">Day 2 [Monday: 26-7-2010]: Develop your path</span></b><span style="color: #1f497d; font-size: 11pt;"></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">10:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">11:30</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Web Development A – Z</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">11:30</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">12:00 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Break</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">12:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">02:00 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Software Quality Engineering </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">02:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">02:30 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><b><span style="color: #1f497d; font-size: 12pt;"><span style="font-family: Calibri;">Break</span></span></b></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">02:30</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">04:00 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">CV Writing and interviewing skills </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="background: none repeat scroll 0% 0% white;"><b><span style="color: #1f497d; font-size: 11pt;">Day 3 [Wednesday: 28-7-2010]: IT, World of Endless Choices</span></b></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">10:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">11:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><b><span style="color: #1f497d;"><span style="font-family: Calibri;">GIS: Geographic information system</span></span></b></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">11:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">12:00 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><b><span style="color: #1f497d;"><span style="font-family: Calibri;">CMS: Content Management System</span></span></b></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">12:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">12:30 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Break</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">02:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">02:30 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><b><span style="color: #1f497d;"><span style="font-family: Calibri;">BI: Business Intelligence</span></span></b></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">02:30</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">03:30 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">RIA: Rich Internet Application</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="background: none repeat scroll 0% 0% white;"><b><span style="color: #1f497d; font-size: 11pt;">Day 4 [Thursday: 29-7-2010]: Into the business world</span></b></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">10:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">01:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><b><span style="color: #1f497d;"><span style="font-family: Calibri;">Agile Software Development</span></span></b></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">01:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">01:30 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><b><span style="color: #1f497d;"><span style="font-family: Calibri;">Break</span></span></b></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">01:30</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">3:00 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Understanding Business Analysis</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">03:00</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">04:30 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><b><span style="color: #1f497d;"><span style="font-family: Calibri;">Global / Local IT Market</span></span></b></div></td></tr>
<tr> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">04:30</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">05:00 </span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td> <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"><div dir="ltr" style="direction: ltr; line-height: normal; text-align: left;"><span style="font-family: Calibri;"><b><span style="color: #1f497d;">Closing</span></b><b><span style="color: #1f497d; font-size: 12pt;"></span></b></span></div></td></tr>
</tbody></table></div><div dir="ltr" style="direction: ltr; text-align: left;"><span style="color: #1f497d; font-size: 12pt; line-height: 115%;"><span style="font-family: Calibri;"> </span></span></div><div dir="ltr" style="direction: ltr; text-align: left;"><span style="color: #1f497d; font-size: 12pt; line-height: 115%;"><span style="font-family: Calibri;">Don't miss the chance…..and don't forget our date "<span style="font-weight: bold;">25/7/2010</span>" at <span style="font-weight: bold;">FCI-Helwan</span>.</span></span></div><div dir="ltr" style="direction: ltr; text-align: left;"><span style="color: #1f497d; font-size: 12pt; line-height: 115%;"><span style="font-family: Calibri;">Waiting you there :)<br />
</span></span></div><div dir="ltr" style="direction: ltr; text-align: left;"><span style="color: #1f497d; font-size: 12pt; line-height: 115%;"></span> </div><div dir="ltr" style="direction: ltr; text-align: left;"><span style="color: #1f497d; font-size: 12pt; line-height: 115%;"><span style="font-family: Calibri;">Yours,</span></span></div><div dir="ltr" style="direction: ltr; text-align: left;"><span style="color: #1f497d; font-size: 12pt; line-height: 115%;"><span style="font-family: Calibri;">FCIH Initiative Team</span></span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-17312684131047895312010-07-21T18:26:00.002+03:002010-07-21T18:32:19.273+03:00Adding arabic letters jeem, peh, and veh to keyboard layout in LinuxThe letters<div> چ</div><div>پ</div><div>ڤ</div><div>Do not come on the standard layout of arabic keyboard on linux. It is easy to add them.</div><div>You will need to edit /usr/share/X11/xkb/symbols/ara and log-out and login again.</div><div>The need to edit only the lines corresponding to they keys you'll attach those letters to. I chose the key corresponding to</div><div>ج</div><div>ب</div><div>ف</div><div>(naturally).</div><div>The 3 modified lines are:</div><div><div><span class="Apple-style-span" style="font-family:'courier new';"><div> key <ad05> { [ Arabic_feh, 0x100fef9 , Arabic_veh ] };</div><div> key <ad11> { [ Arabic_jeem, less , Arabic_tcheh ] };</div><div> key <ac04> { [ Arabic_beh, bracketleft, Arabic_peh ] };</div></span></div></div><div>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>Preferences>Keyboard, Mappings tab, click on "Options" then click "Key to choose 3rd leve" then choose whichever key you prefer.</div><div>Enjoy your new characters :)</div>Mohammad Alagganhttp://www.blogger.com/profile/00636251663295114267noreply@blogger.com1tag:blogger.com,1999:blog-27659513.post-73866993559282644682010-07-15T23:34:00.002+03:002010-07-15T23:44:48.889+03:00FCIH Initiative.. Postponement announcement<span style="font-family: georgia;">Hello all,</span><br /><br /><span style="font-family: georgia;"> 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.</span><br /><br /><span style="font-family: georgia;">Sorry for any inconvenience,</span><br /><span style="font-family: georgia;">FCIH Initiative team.</span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-69738270112448921462010-07-10T15:24:00.001+03:002010-07-10T15:31:38.541+03:00Creating a simple Open Search Provider/Plug-in<p>Yesterday, I needed to check/search <a href="http://delicious.com/m.shady" target="_blank">my delicious</a> 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 <a href="http://delicious.com/help/tools" target="_blank">bookmarking tools</a>, few search tools, though), which -I guess- loads all your bookmarks to browser & make them available for search.</p> <p>As I’m not so much into too much plug-ins, specially if they load lots of data (in contradiction to <a href="http://dilbert.com/strips/comic/2010-07-06/" target="_blank">Pointy-haired Boss</a>) , not to mention that I won’t need bookmarks when I’m offline, anyway, I decided I should create my search provider.</p> <h2>Creating the provider:</h2> <p>Here’s an example:</p> <blockquote> <p><?xml version="1.0" encoding="UTF-8"?> <br /><OpenSearchDescription xmlns="<a href="http://a9.com/-/spec/opensearch/1.1/"">http://a9.com/-/spec/opensearch/1.1/"</a>> <br />   <ShortName>My Delicious</ShortName> <br />   <Description>Search Shady’s Delicious Bookmarks</Description> <br />   <Tags>Delicious Bookmarks Search Favorites</Tags> <br />   <Image width="16" height="16" type="image/x-icon"><a title="http://delicious.com/favicon.ico" href="http://delicious.com/favicon.ico">http://delicious.com/favicon.ico</a></Image> <br />   <Url type="text/html" <br />        template="<a href="http://delicious.com/search?p={searchTerms}&amp;context=userposts|m.shady|&amp;lc=1" target="_blank">http://delicious.com/search?p={searchTerms}&amp;context=userposts|m.shady|&amp;lc=1</a>"/> <br /></OpenSearchDescription></p> </blockquote> <p>Away from the fact that I badly need a WYSIWYG code hi-lighter, let’s check that XML. First the <strong>ShortName</strong> which appears in your search box, something like this:</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEOdn03lmYHNZrVE64JW2qKqO_AO2g-iJLqsDHF1DxS01IXP6izKGFED9aYgdg6MkpbUQKx93FN-_r6Joh8QcqdOFl0iB6VoD7B3Dta8Pysu41RgS9Y7oWbEKEju20671RZEGe/s1600-h/image%5B4%5D.png"><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="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIo2FCbXp16PlZVPNBJogH9RwVavFn0h-QFFUFXIk4-exitoZt4dsR7nxOPZT1_zR242yjz1OPdShcXq0Y0_y5YlSnzkdfx6s7g1AO4IOhGfe5pEZQpDtAxxzPCcy2sZO6MItf/?imgmax=800" width="244" height="34" /></a> <strong>Description</strong> and <strong>Tags</strong> are obvious, & I think optional too.</p> <p><strong>Image</strong> 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:</p> <blockquote> <p><Image width="16" height="16">data:image/x-icon;base64,AAA…AAA==</Image></p> </blockquote> <p>Finally, <strong>URL</strong> note that I’m using <em>{SearchTerms}</em> to pass the string typed in the search box. You can send other <a href="http://www.opensearch.org/Specifications/OpenSearch/Extensions/Parameter/1.0" target="_blank">parameters</a> to your search page. You might want add another URL for suggestions, here I’m only providing the search URL.</p> <h2>Using the provider:</h2> <p>To add the provider to your browser (as far as I’m concerned it works fine for Firefox & IE) you have one of two options:</p> <p><strong>Adding it as a suggested search provider</strong>: This can be done by adding a single line in your page <strong><Head></strong> tag, note that the attribute <strong>title</strong> in the below tag refers to the name appearing in the list as [Add “<em>title</em>”], check the image below the tag.</p> <blockquote> <p><link rel="search" <br />           type="application/opensearchdescription+xml" <br />           href="<a href="http://localhost/SearchProviders/delicious.xml"">http://localhost/SearchProviders/delicious.xml"</a> <br />           title="Delicious" /></p> </blockquote> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgil99xA5dQYK74riRbduRjHunDVteC_P8TFJ7H4I_X8gVWm_QOpxoKRWJeqSerYIxvv-bjwBXglQ5UU22iH8qnjFdysTxWlZbo8mPSABK2uQmfchB_ddRkgtIM3ZyZnRtJ0x3b/s1600-h/image%5B7%5D.png"><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="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpocOSFSoQUB2CQSZEBwNiWB-B5Wtpj9alIXVnp0q7Tus9sly6sUxUylC-Ms1PPRly9dIkso3btfK7xjqT2L67Ln3_8BZqLdgiYb-7c2rl-QeM68C2xEjHKbI5yZeoBGNJ2c8A/?imgmax=800" width="176" height="244" /></a> </p> <p><strong>Using JavaScript to add the provider</strong>: The other available option is to add the provider using scripting, here’s an eg of how you can do that:</p> <blockquote> <p><a href="#" onclick="window.external.AddSearchProvider('<a href="http://localhost/SearchProviders/delicious.xml')"">http://localhost/SearchProviders/delicious.xml')"</a>>Add delicious Search to your browser</a></p> </blockquote> <p>Clicking a link like the one above will pop up a windows asking if you want to add the search provider.</p> <p><strong>References</strong>: <a title="http://www.opensearch.org" href="http://www.opensearch.org">http://www.opensearch.org</a></p> Shady M. Najibhttp://www.blogger.com/profile/15517845851043368287noreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-74530520577265220312010-07-09T01:42:00.001+03:002010-07-10T15:37:31.023+03:00Changing regional settings for System accounts (including ASPNET) in Windows 7<p>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.</p> <p>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:</p> <p>After setting your your account regional settings, switch to “Administrative” tab:</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6CJSega0TDFLk7DtYscEu1-FP0tAVx5kdoKhUi6fjQtsY2XE7BZRaF8994aYsfodqZY1MfHjp8sGVWFzBjfBDEj7i1bzhm0q9qGTvgtVzsbJ0az-zn6PSJbSWj4qrm8O0SyNV/s1600-h/clip_image001%5B4%5D.png"><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="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuX7SJTMubpMwt4fIFRTW5khkHUp-4MdN7epVashJHTXZldVS2OmIYFNP8xckmW99C-8GWqhfZ1-32tSSkIrJL9AxfQayX0j7uNEKcqiBBbljWWozv4hzY21GObQJzCZj6b4LG/?imgmax=800" width="216" height="244" /></a></p> <p>From “Welcome screen and new user accounts”, click “Copy setting”:</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDRzqBZ8Mn9_vKk28C9Hz01VXn08LzqUNYZxc_1npKJXKoumphrokZ1YgQtPFXBQDwVOaOJgX8ub5z3FLd8L6ky3UOhJVQ4DkjgJIhppjQJUzk5MgFLx6TlKB4Ld5C5NQSbgNz/s1600-h/image%5B3%5D.png"><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="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Uu1OyaUPe7gvnPGrpfg16M2GmOaIbCFXqRryZWPyfFfC86LNdWUaoxwXbjdc4R-PpxIlWUs2SV0UIbPKCCYX-Oj4tX3stQmTVLphqzO8TC4mfZSOc_c1kvGmYstd8hz6dzHB/?imgmax=800" width="192" height="244" /></a>Make sure “Welcome screen and system accounts”  check box is checked, press ok, and Voila!</p> Shady M. Najibhttp://www.blogger.com/profile/15517845851043368287noreply@blogger.com1tag:blogger.com,1999:blog-27659513.post-49081587418089541182010-07-05T15:15:00.009+03:002010-07-05T16:40:09.075+03:00FCIH Initiative -- Students to Business<div style="text-align: center;"><a name="129a2d261e12c4e4_129a2cfc834047db_OLE_LINK2"><b><span style="line-height: 115%; font-family: 'Cambria','serif'; color: rgb(84, 141, 212); font-size: 18pt;" dir="ltr">FCIH Initiative</span></b></a><b><span style="line-height: 115%; font-family: 'Cambria','serif'; color: rgb(84, 141, 212); font-size: 12pt;" dir="ltr"> …..</span></b><br /><b><span style="line-height: 115%; font-family: 'Cambria','serif'; color: rgb(84, 141, 212); font-size: 12pt;" dir="ltr"> Don't wait the chance, Create It</span></b></div> <p style="text-align: center;" dir="rtl" align="center"><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr">Thinking about your future? Worried about your career?</span><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" lang="AR-EG"></span></p> <p style="text-align: center;" dir="rtl" align="center"><span style="color: rgb(112, 48, 160);" dir="ltr">Thinking that you are far away from real market life and limited by your academic life?</span><span style="color: rgb(112, 48, 160);" lang="AR-EG"></span></p> <p style="text-align: center;" dir="rtl" align="center"><span style="line-height: 115%; color: rgb(112, 48, 160); font-size: 10pt;" dir="ltr">Want to be professional but don't know where to start?</span><span style="line-height: 115%; color: rgb(112, 48, 160); font-size: 10pt;" lang="AR-EG"></span></p> <p style="text-align: center;" dir="rtl" align="center"><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr">Interested to know how people work and deliver projects?</span></p> <p style="text-align: center;" dir="rtl" align="center"><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr">Need to gain experience in market? Need to know about Egyptian IT market?</span><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" lang="AR-EG"></span></p> <p style="text-align: center;" dir="rtl" align="center"><b><span style="line-height: 115%; color: rgb(227, 108, 10); font-size: 13pt;" dir="ltr">FCIH Initiative is now here for you</span></b></p> <p style="text-align: center;" dir="rtl" align="center"><span style="color: rgb(112, 48, 160);" dir="ltr">Our goal is <b>you</b>, preparing for <b>you</b>, planning for <b>you</b></span><b><span style="color: rgb(112, 48, 160);" lang="AR-EG"></span></b></p> <p style="text-align: center;" dir="rtl" align="center"><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr">Build your own market and Make companies sigh for you</span></p> <p style="text-align: center;" dir="rtl" align="center"><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr">This summer, we'll be together to make your dreams come true</span><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" lang="AR-EG"></span></p> <p style="text-align: center;" dir="rtl" align="center"><span style="line-height: 115%; color: rgb(112, 48, 160); font-size: 13pt;" dir="ltr">To bridge your academic study to your career</span><span style="line-height: 115%; color: rgb(112, 48, 160); font-size: 13pt;" lang="AR-EG"></span></p> <p style="text-align: center;" dir="rtl" align="center"><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr">Plan for your career right now</span></p> <p style="text-align: center;" dir="rtl" align="center"><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 10pt;" dir="ltr">Meet your older colleagues and learn from them</span></p> <p style="text-align: center;" dir="rtl" align="center"><b><span style="line-height: 115%; color: rgb(227, 108, 10); font-size: 14pt;" dir="ltr">Join us and enjoy:</span></b></p> <p style="text-align: center;" dir="rtl" align="center"><b><span style="line-height: 115%; color: rgb(227, 108, 10); font-size: 14pt;" dir="ltr">Trainings – Research – Business Experience – Technical Knowledge – English Club - and more….</span></b><b><span style="line-height: 115%; color: rgb(227, 108, 10); font-size: 16pt;" lang="AR-EG"></span></b></p> <p style="text-align: center;" dir="rtl" align="center"><b><span style="line-height: 115%; color: rgb(0, 112, 192); font-size: 14pt;" lang="AR-EG"> </span></b></p> <p style="text-align: center;" dir="rtl" align="center"><b><span style="line-height: 115%; color: rgb(79, 98, 40); font-size: 14pt;" dir="ltr">FCIH initiative program will start on 17-7, so don't miss the chance.</span></b></p> <p style="text-align: left;" dir="rtl" align="right"><b><span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" dir="ltr">We're planning to provide: </span></b><b><span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" lang="AR-EG"></span></b></p> <p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"><span style="font-family: Symbol; color: rgb(0, 112, 192);"><span>·<span style=""> </span></span></span><span dir="ltr"></span><span style="color: rgb(0, 112, 192);">Technical sessions</span></p> <p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"><span style="font-family: Symbol; color: rgb(0, 112, 192);"><span>·<span style=""> </span></span></span><span dir="ltr"></span><span style="color: rgb(0, 112, 192);">Training program in 3 tracks (java, .net, and PHP)</span></p> <p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"><span style="font-family: Symbol; color: rgb(0, 112, 192);"><span>·<span style=""> </span></span></span><span dir="ltr"></span><span style="color: rgb(0, 112, 192);">Sessions talking about market, and adding to your personal skills.</span></p> <p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"><span style="font-family: Symbol; color: rgb(0, 112, 192);"><span>·<span style=""> </span></span></span><span dir="ltr"></span><span style="color: rgb(0, 112, 192);">Program for those who are interested in research.</span></p> <p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"><span style="font-family: Symbol; color: rgb(0, 112, 192);"><span>·<span style=""> </span></span></span><span dir="ltr"></span><span style="color: rgb(0, 112, 192);">Soft skills program.</span></p> <p style="text-align: left; direction: ltr; margin-bottom: 10pt; margin-left: 72pt; margin-right: 0cm;"><span style="font-family: Symbol; color: rgb(0, 112, 192);"><span>·<span style=""> </span></span></span><span dir="ltr"></span><span style="color: rgb(0, 112, 192);">English club.</span></p> <p dir="rtl"><b><span style="line-height: 115%; color: rgb(227, 108, 10); font-size: 10pt;" dir="ltr"> </span></b></p> <p style="text-align: center;" dir="rtl" align="center"><b><span style="color: rgb(227, 108, 10);" dir="ltr">Now, don't worry about the future...Together we'll build a better tomorrow</span></b></p> <p style="text-align: left; margin-bottom: 0pt;" dir="rtl" align="right"><b><span style="line-height: 115%; color: black; font-size: 13pt;" dir="ltr">Contacts</span></b><b><span style="line-height: 115%; color: black; font-size: 12pt;" dir="ltr">:</span></b><b><span style="line-height: 115%; color: black; font-size: 12pt;" lang="AR-EG"></span></b></p> <p style="text-align: left; margin-bottom: 0pt;" dir="rtl" align="right"><b><span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" dir="ltr">Mail</span></b><b><span style="color: rgb(15, 36, 62);" dir="ltr">:</span></b><b><span style="color: red;" dir="ltr"> </span></b><a href="mailto:FCIH.Initiative@fcih.net" target="_blank"><b><span dir="ltr">FCIH.Initiative@fcih.net</span></b></a><b><span style="color: red;" dir="ltr"></span></b></p> <p style="text-align: left; margin-bottom: 0pt;" dir="rtl" align="right"><b><span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" dir="ltr">Website</span></b><b><span style="color: rgb(15, 36, 62);" dir="ltr">:</span></b><b><span style="color: red;" dir="ltr"> </span></b><a href="http://www.helwan.edu.eg:90/fcih/details.asp?id=161" target="_blank"><b><span dir="ltr">http://www.helwan.edu.eg:90/<wbr>fcih/details.asp?id=161</span></b></a><b><span style="color: red;" lang="AR-EG"></span></b></p> <b><span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" dir="ltr">FaceBook</span></b><b><span style="color: rgb(15, 36, 62);" dir="ltr"> </span></b><b><span style="line-height: 115%; color: rgb(15, 36, 62); font-size: 12pt;" dir="ltr">Event</span></b><b><span style="color: rgb(15, 36, 62);" dir="ltr">:</span></b><b><span style="color: red;" dir="ltr"> </span></b><a href="http://www.facebook.com/#%21/event.php?eid=128813070490801&ref=mf" target="_blank"><b><span dir="ltr">http://www.facebook.com/#!/<wbr>event.php?eid=128813070490801&<wbr>ref=mf</span></b></a> <p style="text-align: left; margin-bottom: 0pt;" dir="rtl" align="right"><b><span lang="AR-EG" style="color:red;"> </span></b></p> <p style="text-align: center;" dir="rtl" align="center"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj31VkdCoeAH35pU1J225M0J3d_dUsU0J8OBGtPSsXJipQNMdIkxZskc1FtO6tel_4ZuShLREdd5eRlD_Vq0zJpPAUqRoKErBwWMgMaY01hyxOpkbygK1YuBnT2FVb8bMDA3ErfpQ/s1600/image001.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 397px; height: 564px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj31VkdCoeAH35pU1J225M0J3d_dUsU0J8OBGtPSsXJipQNMdIkxZskc1FtO6tel_4ZuShLREdd5eRlD_Vq0zJpPAUqRoKErBwWMgMaY01hyxOpkbygK1YuBnT2FVb8bMDA3ErfpQ/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5490395716118992242" border="0" /></a><br /></p> <p style="text-align: left;" dir="rtl" align="right"><span style="line-height: 115%;font-size:9pt;" dir="ltr" > </span></p><div class="hm"> <p dir="rtl"><span dir="ltr"> </span></p></div><div class="hm"><br /></div>Ahmed Essawyhttp://www.blogger.com/profile/02553277669431055635noreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-59705913528293657432010-07-03T21:50:00.001+03:002010-07-03T21:51:55.233+03:00Customizing your eclipse downloadIn this site (<a href="http://ondemand.yoxos.com/geteclipse/start">http://ondemand.yoxos.com/geteclipse/start</a>) 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 :)Mohammad Alagganhttp://www.blogger.com/profile/00636251663295114267noreply@blogger.com1tag:blogger.com,1999:blog-27659513.post-67996070881294331712010-07-01T14:46:00.016+03:002010-07-01T15:06:43.926+03:00Downloading metacafe videosThe following script will download metacafe videos for you:<div><br /></div><div>metacafe-dl.sh:</div><div><div><span class="Apple-style-span" style="font-family:'courier new';">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/%/\</span></div><div><span class="Apple-style-span" style="font-family:'courier new';">g' | tr '\n' '#' | awk '-F#' '{print @3 "?__gda__=" @7}'`</span></div><div><div><span class="Apple-style-span" style="font-family:'courier new';"><br />wget --referer=http://s.mcstatic.com/Flash/vp/mc/Portal_3.2.1.1.swf @url -O `echo @url | sed 's%/%_%g'`.mp4</span></div></div></div><div><span class="Apple-style-span" style="font-family:'courier new';"><br /></span></div><div>Just call the file like this </div><div>./metacafe-dl http://url-of-the-meta-cafe-video</div><div><br /></div><div>(due to technical error replace @ with a dollar sign instead).</div><div>And you will have your file there. Have a nice time ;)</div>Mohammad Alagganhttp://www.blogger.com/profile/00636251663295114267noreply@blogger.com1tag:blogger.com,1999:blog-27659513.post-36169811377323111592010-06-19T14:08:00.001+03:002010-06-19T14:08:23.531+03:00VS 2008 to TFS 2010 (on windows 7, or may be x64 in general)<p>Probably you already know that Visual studio (Team explorer) 2008 can connect to TFS 2010 if you installed the right <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=CF13EA45-D17B-4EDC-8E6C-6C5B208EC54D&displaylang=en" target="_blank">Service Pack</a> (there’s <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=22215e4c-af6f-4e2f-96df-20e94d762689&displaylang=en" target="_blank">one for VS 2005</a> too) and types the <a href="http://blog.jmedved.com/2009/11/visual-studio-2008-and-team-foundation.html?showComment=1265797183316" target="_blank">right server name</a>.</p> <p> </p> <p>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.</p> <p> </p> <p>After a long search, & several installs, uninstalls, reinstalls, etc.. I came to the following solution that worked for me & (later) for a couple of my team mates at work. Here’s what you might want to do to fix that:</p> <ul> <ul> <li>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) </li> <li>Reinstall <a href="http://www.microsoft.com/downloads/details.aspx?familyid=0ED12659-3D41-4420-BBB0-A46E51BFCA86&displaylang=en" target="_blank">Team explorer 2008</a> <strong>(even if you already have it installed)</strong> </li> <li>Reinstall <a href="http://www.microsoft.com/downloads/details.aspx?familyid=27673C47-B3B5-4C67-BD99-84E525B5CE61&displaylang=en" target="_blank">VS 2008 SP1</a> <strong>(even if you already have it installed)</strong> </li> <li>Reinstall <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=CF13EA45-D17B-4EDC-8E6C-6C5B208EC54D&displaylang=en" target="_blank">VSTS 2008 Forward compatibility update for TFS 2010</a> <strong>(even if you already have it installed)</strong> </li> </ul> </ul> <p>Try to use the same order above, and make sure you reinstall the above stuff even if you already have them.</p> Shady M. Najibhttp://www.blogger.com/profile/15517845851043368287noreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-44923216916976472092010-05-25T16:01:00.001+03:002010-05-25T16:02:56.509+03:00How to consume REST based-services?Q. How to consume REST based-services?<br />
Assume we have REST based-service contains method Add which takes two operands op1 and op2 and return the summation.<br />
<br />
A. Create any project type (Console, Windows or even Web-based application)<br />
Add <span style="color: blue;">using</span> System.Net; <span style="color: blue;">using</span> System.IO;<br />
Write some code to consum the service <br />
<span style="color: blue;">string</span> parameters;<br />
<span style="color: blue;">string</span> response;<br />
<span style="color: lime;">// Create the request obj</span><br />
<span style="color: cyan;">WebRequest </span>request = <span style="color: cyan;">WebRequest</span>.Create("serviceURL/Add");<br />
<span style="color: lime;">// Set values for the request back</span><br />
request.Method = "POST"; <span style="color: lime;">//REST based-services using Post method</span><br />
request.ContentType = "application/json"; <span style="color: lime;">//tells request the content typs is JSON</span><br />
parameters = "{\"op1\":2,\"op2\":\"1\"}";<br />
request.ContentLength = parameters.Length;<br />
<span style="color: lime;">// Write the request</span><br />
<span style="color: cyan;">StreamWriter</span> requestWriter = <span style="color: blue;">new</span> <span style="color: cyan;">StreamWriter</span>(request.GetRequestStream(), System.Text.Encoding.ASCII);<br />
requestWriter.Write(parameters);<br />
requestWriter.Close();<br />
// Do the request to get the response<br />
<span style="color: cyan;">StreamReader</span> responseReader = <span style="color: blue;">new</span> <span style="color: cyan;">StreamReader</span>(request.GetResponse().GetResponseStream());<br />
response = responseReader.ReadToEnd();<br />
responseReader.Close();<br />
<span style="color: lime;">//response value should be 3 if you implement Add method correctly :)) </span>Ramy Mahroushttp://www.blogger.com/profile/06875204608099539248noreply@blogger.com1tag:blogger.com,1999:blog-27659513.post-44410746325778088732010-05-18T00:48:00.052+03:002011-05-09T00:53:03.285+02:00Python Script to download TED Talks translations :))<blockquote></blockquote>Well, i admit it, i am a <a href="http://www.ted.com/">TED</a> lover. I love the passion, and the "new" factor TED brings to me :)<br /><br />I was watching <a href="http://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action.html">this</a> 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 :)<br /><br />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.<br /><br /><span style="font-weight: bold;">First,</span> 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 <a href="http://www.wireshark.org/">Wireshark</a>, and if you don't know it check those links to know more about how to use it :)<br /><a href="http://www.securitytube.net/Packet-Sniffing-using-Wireshark-video.aspx">Packet Sniffing using Wireshark Tutorial</a> (Video)<br /><a href="http://wheelersoftware.com/articles/wireshark-tutorial.html">Fifteen Minute Wireshark Tutorial - Wheeler Software</a><br /><span style="font-weight: bold;"><br /><br />Second,</span> 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 :)<br /><br />When you choose a translation, you will find a request to a URL like this: <a href="http://www.ted.com/talks/subtitles/id/848/lang/eng">www.ted.com/talks/subtitles/id/848/lang/eng</a> , where 848 is the Talk ID and eng is the language choosed "English".<br /><br /><span style="font-weight: bold;">So there two questions now, given a URL to the TED Talk</span><br /><br /><span style="font-style: italic;">What format are translation subtitles returned?</span><span style="font-style: italic;"><br />How do i get the Talk ID?</span><br /><br /><span style="font-weight: bold;">To answer the first question</span>, 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.<br /><br /><span style="font-weight: bold;">And the answer to the second question</span> 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.<br /><blockquote></blockquote><span style="font-style: italic;">Here is the full Script</span> 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.<br /><br />This is a simple command to test the script:<br /><br />python TEDSubtitles.py "http://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action.html" "eng"<br /><br />And here is the full source code, will try to upload it somewhere soon.<br /><br />Hope it's worth spreading :))<br /><br /><span style="font-weight: bold;font-size:100%;">Updates:</span><br /><span style="font-style: italic;">You can get the script <a href="https://sites.google.com/site/shereefsakr/TEDSubtitles.py?attredirects=0">here</a> </span><span style="font-style: italic;">.</span><br /><span style="font-style: italic;">You need at least Python 2.6 for the json module to be available.</span><br /><br /><span style="font-weight: bold;font-size:100%;">Update on 22/09/2010:</span><br /><div style="text-align: left; font-style: italic;"><span style="font-size:100%;">I was informed in the comments by <a href="http://mohammaddesign.wordpress.com/">Mohammad</a> that he created a program <a href="http://sourceforge.net/projects/tedgrabber/">http://sourceforge.net/projects/tedgrabber/</a> to download TED Talks and subtitles. </span><span style="font-size:100%;">He also created another one <a href="http://sourceforge.net/projects/timecovergrabbe/">http://sourceforge.net/projects/timecovergrabbe/</a> , which allows you to grab Time Magazine covers.</span>This is another example that illustrates the concept and ofcourse it can be applied everywhere. Good luck to Mohammed.</div><div style="text-align: left; font-style: italic;">Although it's hosted on sourceforge, the source code is not available. It would be better if it was shared.</div><div><br /></div><b>Update on 24/04/2011:</b><div><b></b>A Google Appengine application was created for the same functionality on <a href="http://tedsubtitles.appspot.com/" target="blank">http://tedsubtitles.appspot.com</a><br /><br />You can view the source below, but for better colorized viewing check this link <a target="blank" href="http://code.google.com/p/shereefsakr-scripts/source/browse/DownloadTEDSubtitles.py">here</a><br /><pre>import os<br />import sys<br />import json<br />import urllib2<br /><br /># Format Time from TED Subtitles format to SRT time Format<br />def formatTime ( time ) :<br />milliseconds = 0<br />seconds = ((time / 1000) % 60)<br />minutes = ((time / 1000) / 60)<br />hours = (((time / 1000) / 60) / 60)<br />formatedTime = str ( hours ) + ':' + str (minutes) + ':' + str ( seconds ) + ',' + str ( milliseconds )<br />return formatedTime<br /><br /># Convert TED Subtitles to SRT Subtitles<br />def convertTEDSubtitlesToSRTSubtitles ( jsonString , introDuration ) :<br />jsonObject = json.loads( jsonString )<br /><br />srtContent = ''<br />captionIndex = 1<br /><br />for caption in jsonObject['captions'] :<br />startTime = str ( formatTime ( introDuration + caption['startTime'] ) )<br />endTime = str ( formatTime ( introDuration + caption['startTime'] + caption['duration'] ) )<br /><br />srtContent += ( str ( captionIndex ) + os.linesep )<br />srtContent += ( startTime + ' --> ' + endTime + os.linesep )<br />srtContent += ( caption['content'] + os.linesep )<br />srtContent += os.linesep<br /><br />captionIndex = captionIndex + 1<br />return srtContent<br /><br />def getTEDSubtitlesByTalkID ( talkId , language ) :<br />tedSubtitleUrl = 'http://www.ted.com/talks/subtitles/id/' + str(talkId) + '/lang/' + language<br />req = urllib2.Request(tedSubtitleUrl)<br />response = urllib2.urlopen(req)<br />result = response.read()<br />return ( result )<br /><br />tedTalkUrl = sys.argv[1]<br />language = sys.argv[2]<br /><br />req = urllib2.Request(tedTalkUrl)<br />response = urllib2.urlopen(req)<br />result = response.read()<br /><br />## Get Talk ID value<br />splits = result.split ( ';ti=' )<br />talkId = splits[1].split ( '&' )[0]<br />print talkId<br /><br />## Get Talk Intro Duration value<br />splits = result.split ( ';introDuration=' )<br />talkIntroDuration = splits[1].split ( '&' )[0]<br />talkIntroDuration = int ( talkIntroDuration )<br />print talkIntroDuration<br /><br />jsonString = getTEDSubtitlesByTalkID ( talkId , language )<br /><br />srtContent = convertTEDSubtitlesToSRTSubtitles ( jsonString , talkIntroDuration )<br /><br /># Generate SRT file name<br />splits = tedTalkUrl.split ( '/' )<br />srtFilename = splits[len ( splits )-1].split ('.')[0]<br /><br />srtFile = open ( './' + srtFilename + '.srt' , 'w' )<br />srtFile.write ( srtContent.encode ( "utf-8" ) )<br />srtFile.close ()<br /><br /><br /></pre></div>Shereef Sakrhttp://www.blogger.com/profile/14485464016030085189noreply@blogger.com24tag:blogger.com,1999:blog-27659513.post-12182839165032580742010-04-23T00:10:00.002+02:002010-04-23T00:14:27.053+02:00ArabEyes Arabic Technical DictionaryThe ArabEyes project is managing a wiki-based technical dictionary for Arabizing English technical terms. <div>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. </div><div>The dictionary is used as a reference for translating open source software, like Ubuntu and OpenOffice.</div><div>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 : </div><div><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">http://wiki.arabeyes.org/القاموس_التقني</a> .</div>Mohammad Alagganhttp://www.blogger.com/profile/00636251663295114267noreply@blogger.com0tag:blogger.com,1999:blog-27659513.post-85713488337303804282010-04-11T00:40:00.010+02:002010-04-11T01:34:57.463+02:00GridView with Highlighting and dragging rowsTwo days ago, I needed a grid like <a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx">GridView </a>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.<br />Of course the first thing came in my mind is using <a href="http://jquery.com/">JQuery </a>with the <a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx">gridview </a>as it runs by a little lines of code and give the client a big influence and satisfaction.<br /><br />I am already started with trying some plug-ins for Drag and Drop but I found a big issue with <a href="http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx">GridView </a>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 ).<br /><br />So I google for solution and get a part of it by <a href="http://www.dotnetcurry.com/About.aspx">Suprotim Agarwal</a> then I modified it to fit my needs and some changes in the <a href="http://www.isocra.com/2008/02/table-drag-and-drop-jquery-plugin/">Table Drag and Drop JQuery</a> . <span style="color: rgb(255, 0, 0);">So take care to use the attached (modified) Dragging plug-in as I modified it and use the start up script</span>.<br /><br />The Grid before fix (as you can see, you can drag any row even the header or footer):<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzo4Wj0F-2gPWyVG2YG2ig7DbOwK_wBiDRjb8pJDPrlehyphenhyphenLIeRYA2vAJh1mUkWuG-YXie7SonRctluVXuXeAcWfGzQeY0jERKfN4F4yggMiMLsykBNND83vRfnhbEOiEH3BRcFpQ/s1600/16.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 153px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzo4Wj0F-2gPWyVG2YG2ig7DbOwK_wBiDRjb8pJDPrlehyphenhyphenLIeRYA2vAJh1mUkWuG-YXie7SonRctluVXuXeAcWfGzQeY0jERKfN4F4yggMiMLsykBNND83vRfnhbEOiEH3BRcFpQ/s400/16.JPG" alt="" id="BLOGGER_PHOTO_ID_5458650390485246034" border="0" /></a><br />After fixing:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieto_H8dPCKU-uwlxLLyobHeI2AswcOc0qEeUWSpiyZjgG3mFiYVFG-PWMky6UCXr0qKEapQ8WJ02WumoJAsq0d4gwSw_v9_UDELRxpA9uSp-FR5a5q_AzKQkJuCP23xVOlHe7Ww/s1600/17.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 156px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieto_H8dPCKU-uwlxLLyobHeI2AswcOc0qEeUWSpiyZjgG3mFiYVFG-PWMky6UCXr0qKEapQ8WJ02WumoJAsq0d4gwSw_v9_UDELRxpA9uSp-FR5a5q_AzKQkJuCP23xVOlHe7Ww/s400/17.JPG" alt="" id="BLOGGER_PHOTO_ID_5458650394845986578" border="0" /></a><a href="http://sites.google.com/site/ahmedessawy2/FCIH-GridViewJQuery.rar">Download the complete Example.</a>Ahmed Essawyhttp://www.blogger.com/profile/02553277669431055635noreply@blogger.com0