<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-35626171</id><updated>2011-12-13T07:28:15.777+02:00</updated><category term='GIS'/><category term='Egypt'/><category term='SQL'/><category term='Arabic'/><category term='news'/><category term='web hosting'/><category term='free'/><category term='competition'/><category term='how to'/><category term='hosting'/><category term='storage'/><category term='Windows'/><category term='SQLite'/><category term='open source'/><category term='Apple'/><category term='software development'/><category term='outsourcing'/><category term='Flash'/><category term='Smalltalk'/><category term='DSL'/><category term='software engineering'/><category term='Dell'/><category term='video'/><category term='desert'/><category term='email'/><category term='training'/><category term='IBM'/><category term='Adobe'/><category term='SMS'/><category term='business'/><category term='MySQL'/><category term='CSS'/><category term='seminar'/><category term='XML'/><category term='Dreamweaver'/><category term='Firefox'/><category term='opinion'/><category term='HTML'/><category term='CMS'/><category term='online advertising'/><category term='framework'/><category term='testing'/><category term='JavaScript'/><category term='blogging'/><category term='content'/><category term='Intel'/><category term='Borland'/><category term='web design'/><category term='Genie'/><category term='Python'/><category term='education'/><category term='wiki'/><category term='Microsoft'/><category term='W3C'/><category term='AJAX'/><category term='map'/><category term='web development'/><category term='conference'/><category term='C++'/><category term='social networking'/><category term='agile'/><category term='ecommerce'/><category term='course'/><category term='IRC'/><category term='chat'/><category term='mobile phone'/><category term='Ruby on Rails'/><category term='recruitment'/><category term='India'/><category term='Yahoo'/><category term='branding'/><category term='IM'/><category term='hardware'/><category term='database'/><category term='computer science'/><category term='children'/><category term='Internet'/><category term='Resala'/><category term='processor'/><category term='programming'/><category term='tutorial'/><category term='program'/><category term='ASP'/><category term='wordprocessing'/><category term='games'/><category term='Java'/><category term='Web 2.0'/><category term='book'/><category term='Google'/><category term='PHP'/><category term='Sun'/><category term='tags'/><category term='jobs'/><category term='SEO'/><category term='3D'/><category term='Ruby'/><category term='Linux'/><category term='exhibition'/><category term='search'/><category term='gmail'/><category term='money'/><title type='text'>Egypt Software</title><subtitle type='html'>Connecting Software Developers in Egypt.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://egyptsoftware.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default?start-index=101&amp;max-results=100'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>219</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-35626171.post-3868948236331118691</id><published>2007-06-14T21:02:00.000+03:00</published><updated>2007-06-14T21:09:15.381+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recruitment'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Selling my IT Recruitment Agency</title><content type='html'>Due to some health issues, I have decided to go for a farming project away from computers, mobile phones and the Cairo pollution. I have thus decided to sell my IT recruitment agency &lt;a href="http://www.genie-jobs.com/"&gt;www.genie-jobs.com&lt;/a&gt; within the following two months.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-3868948236331118691?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3868948236331118691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3868948236331118691'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/06/selling-my-it-recruitment-agency.html' title='Selling my IT Recruitment Agency'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5474305870732937955</id><published>2007-06-13T07:21:00.000+03:00</published><updated>2007-06-13T07:31:50.728+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Hosni Mubarak in Google Timeline View</title><content type='html'>Google currently has a cool experimental search feature which provides a timeline for search queries. All you have to do is write "view:timeline" before or after your search query in the Google search box. An interesting search query I've tried using timeline view was for &lt;a href="http://www.google.com.eg/views?q=hosni+mubarak+view%3Atimeline&amp;amp;hl=en"&gt;Hosni Mubarak&lt;/a&gt;. The timeline clearly shows a rise in 1981 which as the year Hosni Mubarak became President of Egypt. The other even higher rise in the timeline is in 2005, that was the year when Mubarak was reelected as President of Egypt in a first ever multi-candidate election to be held in Egypt. This new experimental timeline feature in Google search is way cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5474305870732937955?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5474305870732937955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5474305870732937955'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/06/hosni-mubarak-in-google-timeline-view.html' title='Hosni Mubarak in Google Timeline View'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6531037619518466308</id><published>2007-06-12T14:26:00.001+03:00</published><updated>2007-06-12T14:33:55.165+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Business Plan Competition</title><content type='html'>&lt;a href="http://google.org/"&gt;Google.org&lt;/a&gt; is supporting a &lt;a href="http://googleblog.blogspot.com/2007/06/technoserve-in-tanzania.html"&gt;Business Plan Competition in Tanzania&lt;/a&gt;. I hope Google supports a similar program in Egypt. Perhaps Google may be sponsoring the 2008 &lt;a href="http://www.tdfcomp.com/"&gt;Business Plan Competition in Egypt&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6531037619518466308?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6531037619518466308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6531037619518466308'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/06/google-business-plan-competition.html' title='Google Business Plan Competition'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-7639796231564136895</id><published>2007-06-06T01:16:00.000+03:00</published><updated>2007-06-06T01:22:56.632+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Arabic'/><title type='text'>Arabic Spelling Check in Gmail</title><content type='html'>I was thrilled today while replying in Arabic to an email sent to me when my hand automatically pointed and clicked on the &lt;a href="http://mail.google.com/support/bin/answer.py?answer=7987&amp;query=spelling&amp;amp;topic=&amp;type=f&amp;amp;ctx=search"&gt;check spelling&lt;/a&gt; link in &lt;a href="http://mail.google.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;gmail&lt;/span&gt;&lt;/a&gt; to find that it was actually able to detect and check the spelling of my Arabic written email! That was really thrilling, for I had been really frustrated for long finding that the spelling &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;checker&lt;/span&gt; in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;gmail&lt;/span&gt; supported English but not Arabic. Google is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;bringing&lt;/span&gt; more and more support for Arabic in its products. I hope the day comes when Google opens up AdSense for content for publishers of Arabic content as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-7639796231564136895?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7639796231564136895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7639796231564136895'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/06/arabic-spelling-check-in-gmail.html' title='Arabic Spelling Check in Gmail'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6748833772890629016</id><published>2007-05-31T21:03:00.000+03:00</published><updated>2007-05-31T21:26:50.258+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsoft Surface</title><content type='html'>Microsoft has created a nice piece of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;furniture&lt;/span&gt;: a table. Unlike regular wood or steel tables we know of, this table has a touch screen on it's surface. The new product is call &lt;a href="http://www.microsoft.com/surface/"&gt;Microsoft Surface&lt;/a&gt;. Unlike early touch screens which allowed a person to use one finger to manipulate objects on the screen, the Microsoft Surface allows one to use to fingers &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;simultaneously&lt;/span&gt; to manipulate screen objects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6748833772890629016?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6748833772890629016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6748833772890629016'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/microsoft-surface.html' title='Microsoft Surface'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-3768631747000486088</id><published>2007-05-30T19:47:00.000+03:00</published><updated>2007-05-31T18:20:19.858+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Binary Clocks!</title><content type='html'>No, it has nothing to do with &lt;a href="http://en.wikipedia.org/wiki/Atomic_clock"&gt;atomic clocks&lt;/a&gt;. A &lt;a href="http://www.thinkgeek.com/homeoffice/lights/59e0/"&gt;binary clock&lt;/a&gt; operates the same way as other digital clocks, except that intead of displaying decimal numbers it shows binary numbers as its output!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-3768631747000486088?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3768631747000486088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3768631747000486088'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/binary-clocks.html' title='Binary Clocks!'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-2932799344301059285</id><published>2007-05-30T19:20:00.000+03:00</published><updated>2007-05-30T19:41:44.900+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Google Developer Tools</title><content type='html'>Google has attacked Microsoft head-on through it's &lt;a href="http://www.google.com/a/"&gt;Google Apps&lt;/a&gt; which is positioned to take over &lt;a href="http://office.microsoft.com/"&gt;Microsoft Office&lt;/a&gt;. Although Google has not create an operating system to compete with Microsoft Windows, yet, it has tried to push the open source Linux operating system. Google also has given big support to &lt;a href="http://www.mozilla.com/en-US/firefox/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Firefox&lt;/span&gt;&lt;/a&gt; to compete with &lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/"&gt;Microsoft's Internet&lt;/a&gt; Explorer web browser. &lt;a href="http://desktop.google.com/"&gt;Google Desktop&lt;/a&gt; and its &lt;a href="http://desktop.google.com/plugins/"&gt;Gadgets&lt;/a&gt; are also present a strong blow &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;attempting&lt;/span&gt; to take ground from Microsoft.&lt;br /&gt;&lt;br /&gt;How about Microsoft Visual Studio? Will Google be trying to give a blow to that too? Well, Google has already started this by releasing the &lt;a href="http://code.google.com/webtoolkit/"&gt;Google Web Toolkit&lt;/a&gt;. What's interesting is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Google's&lt;/span&gt; between-the-lines &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;announcement&lt;/span&gt; today that it needs to hire engineers at its &lt;a href="http://googleblog.blogspot.com/2007/05/working-in-windy-city.html"&gt;Chicago branch&lt;/a&gt; to join other "Chicago engineers [who] are currently working on Open Source and &lt;em&gt;developer tools&lt;/em&gt;." So it seems Google is focusing more and more on releasing developer tools. Let's see if that will have any effect on Microsoft &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/"&gt;Visual Studio's&lt;/a&gt; future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-2932799344301059285?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2932799344301059285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2932799344301059285'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/google-developer-tools.html' title='Google Developer Tools'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8985052402921069331</id><published>2007-05-25T18:54:00.000+03:00</published><updated>2007-05-27T01:40:40.235+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='desert'/><category scheme='http://www.blogger.com/atom/ns#' term='DSL'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile phone'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Internet in the Desert</title><content type='html'>&lt;a href="http://www.vodafone.com.eg/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Vodafone&lt;/span&gt; Egypt&lt;/a&gt; now offers a bunch of 3G services including the &lt;a href="http://www.vodafone.com.eg/db/JSP/business/dynamic/en/businessSolutions/LittleBox.jsp?selectedItem=2401"&gt;3G Light Box&lt;/a&gt; which allows you to connect a small group of computers to the Internet even if you are at a remote area in Egypt.&lt;br /&gt;&lt;br /&gt;Let's say you are doing land reclamation in some part of the Egyptian desert and want to have Internet access in this future farm of yours. Forget about getting &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ADSL&lt;/span&gt; there, so the practical solution could be one of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Vodafone's&lt;/span&gt; 3G solutions. As for &lt;a href="http://www.vodafone.com.eg/db/JSP/business/dynamic/en/businessSolutions/VFMobConnect/VMCPricePlans/VMCPricePlans.jsp?selectedItem=2415"&gt;pricing&lt;/a&gt;, a 300 LE monthly fee for 2 GB of data transfer is not bad at all, given you'll just be browsing of course and not doing the heavy downloads you are used to back at home with your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;ADSL&lt;/span&gt; connection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8985052402921069331?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8985052402921069331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8985052402921069331'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/internet-in-desert.html' title='Internet in the Desert'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1671585021207210030</id><published>2007-05-25T00:05:00.000+03:00</published><updated>2007-05-25T00:15:15.016+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tags'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><title type='text'>Folders and Tags Coexist</title><content type='html'>It's interesting that Yahoo has decided that both the folders and tags can coexist with each other. It has the case to hale tags as the Web 2.0 predecessor of the old folder idea.&lt;br /&gt;&lt;br /&gt;Google has particularly made this idea clear by it's then revolutionary design decision to drop folders and go for tags in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;a href="http://mail.google.com/"&gt;gmail&lt;/a&gt;&lt;/span&gt;. In its &lt;a href="http://beta.bookmarks.yahoo.com/welcome"&gt;beta &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;verson&lt;/span&gt; of Yahoo! Bookmarks&lt;/a&gt;, Yahoo has decided to let both folders and tags coexist. The nice thing about tags is that you can apply a whole bunch of them to a single element: a single email, a single bookmark, a single blog post. Yet folders still have the advantage of being able to nest them within each other and thus creating a hierarchy, something which are not possible in the flat world of tags. Users are also used to folders, which is something &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;convenient&lt;/span&gt; to give them. Perhaps tags &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;would&lt;/span&gt; do something about their flatness in order to be more competitive against folders. Or are we going to see more web stuff having both tags and folders coexisting with one another?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1671585021207210030?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1671585021207210030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1671585021207210030'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/folders-and-tags-coexist.html' title='Folders and Tags Coexist'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4371758106527067871</id><published>2007-05-23T01:35:00.000+03:00</published><updated>2007-05-23T02:03:47.546+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Reveals Search Spikes</title><content type='html'>Google &lt;a href="http://www.google.com/trends/hottrends"&gt;Hot Trends&lt;/a&gt; is a new exciting feature of&lt;a href="http://www.google.com/trends"&gt; Google Trends&lt;/a&gt; that Google has recently &lt;a href="http://googleblog.blogspot.com/2007/05/whats-hot-today.html"&gt;announced&lt;/a&gt;. Hot Trends is a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;daily&lt;/span&gt; monitor of unpredictable anomalies or spikes in search patterns. A search query that &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;suddenly&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;receives&lt;/span&gt; a much higher than usual amount of hits would be one featured at Hot Trends. In Google words:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Hot Trends aren't the search terms people look for most often -- those are pretty predictable ... . Instead, the Hot Trends algorithm analyzes millions of searches to find those that are deviating the most relative to their past traffic. And the outcome is the Hot Trends list.&lt;/blockquote&gt;The part I like the best about Hot Trends is showing an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;amalgam&lt;/span&gt; of information about a hot query: a graph showing the spike in the number search queries, news articles and blog posts related to the query as well as web results for the query. Makes the idea of &lt;a href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;mashups&lt;/span&gt;&lt;/a&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;resurface&lt;/span&gt; again in our minds as a viable hot 'trend' possibly marking the future of the web.&lt;br /&gt;&lt;br /&gt;I just hope this list does not become to popular that it would make a &lt;a href="http://egyptsoftware.blogspot.com/2007/02/resonance-effect-in-google-video.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;loopback&lt;/span&gt;&lt;/span&gt; effect&lt;/a&gt; similar to the one experienced at &lt;a href="http://video.google.com/"&gt;Google Video&lt;/a&gt; due to the presence of the popular videos list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4371758106527067871?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4371758106527067871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4371758106527067871'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/google-reveals-search-spikes.html' title='Google Reveals Search Spikes'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4887592285211732243</id><published>2007-05-22T18:31:00.000+03:00</published><updated>2007-05-22T18:40:45.665+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='processor'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>IBM Releases Fastest Processor</title><content type='html'>IBM has &lt;a href="http://www-03.ibm.com/press/us/en/pressrelease/21580.wss"&gt;released POWER6&lt;/a&gt;, that fastest computer processor ever till this day. POWER6 is a dual-core 4.7 GHz chip with a total cache size of 8MB. The edge of POWER6 is that it does not &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;consume&lt;/span&gt; more energy or electricity than its slower predecessor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4887592285211732243?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4887592285211732243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4887592285211732243'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/ibm-releases-fastest-processor.html' title='IBM Releases Fastest Processor'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5910516414079677986</id><published>2007-05-22T16:11:00.000+03:00</published><updated>2007-05-22T16:18:28.774+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='content'/><title type='text'>C++ Contest - Temple of the Sun</title><content type='html'>Show off your C++ programming skills and have a chance of winning $5000. &lt;a href="http://www.templeofthesungame.com/"&gt;Temple of the Sun&lt;/a&gt; is a game developed in Java. It aims at attracting C++ developers. The game is developed by &lt;a href="http://www.sun.com/"&gt;Sun &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Microsystems&lt;/span&gt;&lt;/a&gt;, so the pun &lt;em&gt;is&lt;/em&gt; intended.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5910516414079677986?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5910516414079677986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5910516414079677986'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/c-contest-temple-of-sun.html' title='C++ Contest - Temple of the Sun'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-3396471601578781518</id><published>2007-05-19T15:57:00.000+03:00</published><updated>2007-05-19T16:00:47.605+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Autosave Now in Blogger</title><content type='html'>It's interesting that now &lt;a href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt; has the &lt;a href="http://help.blogger.com/bin/answer.py?answer=42442"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;autosave&lt;/span&gt;&lt;/a&gt; feature. When writing a new blog post, Blogger automatically saves your post every minute. It's quite handy and much neater than the previous "Draft" button. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;autosave&lt;/span&gt; feature is already present in &lt;a href="http://docs.google.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Googld&lt;/span&gt; Docs &amp;amp; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Spreadshets&lt;/span&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-3396471601578781518?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3396471601578781518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3396471601578781518'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/autosave-now-in-blogger.html' title='Autosave Now in Blogger'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1426357780503230933</id><published>2007-05-17T16:31:00.000+03:00</published><updated>2007-05-17T16:55:20.542+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='IM'/><category scheme='http://www.blogger.com/atom/ns#' term='chat'/><title type='text'>Yahoo Mail Messenger Merge</title><content type='html'>When Google made it possible to chat from with &lt;a href="http://mail.google.com/"&gt;gmail&lt;/a&gt; without the need to use&lt;a href="http://www.google.com/talk/"&gt; Google Talk&lt;/a&gt; it was considered a breakthrough and a really creative idea. Now Yahoo is following suit by allowing members to chat from within their &lt;a href="http://mail.yahoo.com/"&gt;Yahoo mail&lt;/a&gt; without needing to use &lt;a href="http://messenger.yahoo.com/"&gt;Yahoo Messenger&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Unlike in the case of gmail where you can chat from within your gmail account and still be signed in at your Google Talk, Yahoo signs you out of Yahoo Messenger in order to be able to chat from within your Yahoo mail. I love the chat interface in gmail way better. Perhaps Yahoo email chat will evolve over time, but right now I find it very poor in turms of usability.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1426357780503230933?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1426357780503230933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1426357780503230933'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/yahoo-mail-messenger-merge.html' title='Yahoo Mail Messenger Merge'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-3165986091004270893</id><published>2007-05-14T18:53:00.000+03:00</published><updated>2007-05-14T18:59:03.497+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='children'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>More Children in Egypt go Online</title><content type='html'>In its &lt;a href="http://weekly.ahram.org.eg/2007/844/li1.htm"&gt;Internet Shadows&lt;/a&gt; article, Al-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Ahram&lt;/span&gt; Weekly examines the effect of the Internet on the increasing number of Egyptian children that are going online.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-3165986091004270893?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3165986091004270893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3165986091004270893'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/egypt-children-go-online.html' title='More Children in Egypt go Online'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4556264269103802898</id><published>2007-05-10T16:33:00.000+03:00</published><updated>2007-05-10T17:20:40.644+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online advertising'/><title type='text'>AdSense Referrals Beta</title><content type='html'>I love it that now Google is starting to experiment with true performance-based advertising. The idea is for the advertiser to pay only for actual well defined gains and not just for page impressions or even clicks on the ad leading to the advertiser's web site.&lt;br /&gt;&lt;br /&gt;Google is now offering &lt;a href="http://services.google.com/ads_inquiry/adsense_referrals"&gt;AdSense Referrals Beta&lt;/a&gt; for select group of its publishers. The idea is not a new one, it has been out there long time ago and I remember &lt;a href="http://hotjobs.yahoo.com/"&gt;Yahoo &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;HotJobs&lt;/span&gt;&lt;/a&gt; was one of the companies that made use of such true performance-based ads by which it paid publishers only if they managed to refer users to the hot job web site and those users actually signed up at the Hot Jobs site or submitted their CV. I believe it was &lt;a href="http://www.cj.com/"&gt;Commission Junction&lt;/a&gt; that Yahoo used back then for such referral opportunity.&lt;br /&gt;&lt;br /&gt;I consider this as the peak of advertising and that it would entice many advertisers into using &lt;a href="https://adwords.google.com/"&gt;AdWords&lt;/a&gt; as they will be paying for actual results with zero doubt in the process. It is like paying a commission to a sales man without paying him any salary.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4556264269103802898?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4556264269103802898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4556264269103802898'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/adsense-referrals-beta.html' title='AdSense Referrals Beta'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-3329435012100806337</id><published>2007-05-09T18:25:00.000+03:00</published><updated>2007-05-09T18:40:53.457+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Software Testers in Egypt</title><content type='html'>India is the king in software testing. Large software testing projects are outsourced to India. India has many trained software testers and a large pool of companies specialized in software testing.&lt;br /&gt;&lt;br /&gt;As for Egypt, software testing is considered a relatively new domain. Most fresh university graduates in Egypt specialized in computer science or IT are not interested at all in working as testers or are not even aware of the existence of such career. Due to increased demand on software testers in Egypt during the past two years, educational institutions such as the &lt;a href="http://www.iti.gov.eg/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ITI&lt;/span&gt;&lt;/a&gt; as well as scholarships offered by the Egyptian government started to offer programs for software testing to cater for the growing market need for testers in Egypt. We still have a long way to go.&lt;br /&gt;&lt;br /&gt;One of the main obstacles facing the software testing career in Egypt is the misconception in the minds of most IT professionals in Egypt about the software testing career. It is viewed as a lower category job lower than software development. That's why many fresh graduates do not like to work as testers. Yet that is only one part of the problem. The other part of the problem, which might actually helped in growing the misconception, is that there have been, and still are, software companies in Egypt whom hire some sort of data entry people and call them testers. Those 'testers' are not really testers, for they do not write any test scripts nor really know anything about the software testing or quality assurance process. All they do is just try to find bugs in the system in a haphazard way without any process. This practice has given a bad reputation for software testing among IT professionals in Egypt, specially that those type of data entry people get lower salaries than software developers.&lt;br /&gt;&lt;br /&gt;As demand for software testers increases in Egypt and as more real software testers graduate from current educational programs designed for software testers, I believe the software tester career will start to get its due recognition in Egypt. This will have a positive impact not only on the testing field, but on the software industry as a whole in Egypt as it would mean increased quality of software developed and tested in Egypt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-3329435012100806337?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3329435012100806337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3329435012100806337'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/software-testers-in-egypt.html' title='Software Testers in Egypt'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1839101190134649606</id><published>2007-05-07T18:27:00.000+03:00</published><updated>2007-05-07T18:53:05.205+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>CSS3 Supports RGBA Colors</title><content type='html'>I've always been using the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;RGB&lt;/span&gt;, Reg-Green-Blue, color model when teaching HTML and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;CSS&lt;/span&gt;. It's interesting that now with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CSS&lt;/span&gt;3 a new fourth letter has been introduced to the popular three, namely the letter 'A'. With &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CSS&lt;/span&gt;3, one can &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;specify&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;colors&lt;/span&gt; using 4 values instead of 3. The fourth value 'A' stands for Alpha. &lt;a href="http://www.w3.org/TR/css3-color/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;CSS&lt;/span&gt;3's support for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;RGBA&lt;/span&gt;&lt;/a&gt; color values will make life way easier for web designers. However, we'll have to wait till browsers fully adopt &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;CSS&lt;/span&gt;3 and users actually use those new versions of the browsers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1839101190134649606?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1839101190134649606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1839101190134649606'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/css3-supports-rgba-colors.html' title='CSS3 Supports RGBA Colors'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-3790006120452608386</id><published>2007-05-04T21:02:00.000+03:00</published><updated>2007-05-04T21:08:28.880+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Semiconductor Chips Designed in Egypt!</title><content type='html'>&lt;a href="http://www.newportmediainc.com/"&gt;Newport Media&lt;/a&gt;, based in California, USA, has decided to have an R&amp;D facility in Egypt for designing semiconductor chips! Get to know more about this exciting news from May's article at &lt;a href="http://www.businesstodayegypt.com/article.aspx?ArticleID=7308"&gt;Business Today Egypt magazine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's interesting that their &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;presence&lt;/span&gt; in Cairo is at &lt;a href="http://www.newportmediainc.com/Contact_Us/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Masaken&lt;/span&gt; El Sheraton&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-3790006120452608386?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3790006120452608386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3790006120452608386'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/semiconductor-chips-designed-in-egypt.html' title='Semiconductor Chips Designed in Egypt!'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-7818424048500559562</id><published>2007-05-02T16:16:00.000+03:00</published><updated>2007-05-06T14:15:56.441+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Semi-Finalists in Egypt Business Plan Competition</title><content type='html'>The &lt;a href="http://www.tdfcomp.com/showpage.aspx?ID=19"&gt;semi-finalists&lt;/a&gt; for the &lt;a href="http://www.tdfcomp.com/"&gt;Business Plan Competition&lt;/a&gt; of 2007 held in Egypt have been announced.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-7818424048500559562?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7818424048500559562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7818424048500559562'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/semi-finalits-in-egypt-business-plan.html' title='Semi-Finalists in Egypt Business Plan Competition'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1906481985688324082</id><published>2007-05-01T23:23:00.000+03:00</published><updated>2007-05-01T23:35:23.311+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Dell'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Linux and  Windows XP on Dell Computers</title><content type='html'>It's interesting that after offering &lt;a href="http://www.microsoft.com/windows/products/windowsvista/"&gt;Windows Vista&lt;/a&gt; on its new computers, &lt;a href="http://www.dell.com/"&gt;Dell&lt;/a&gt; is now offering new computers with &lt;a href="http://www.microsoft.com/windows/products/windowsxp/"&gt;Windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;XP&lt;/span&gt;&lt;/a&gt; on them. Dell followed this by &lt;a href="http://direct2dell.com/one2one/archive/2007/05/01/13147.aspx"&gt;introducing&lt;/a&gt; new Dell desktops and laptops with &lt;a href="http://www.ubuntu.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Ubnutu&lt;/span&gt;&lt;/a&gt;, a popular &lt;a href="http://en.wikipedia.org/wiki/Linux_distribution"&gt;Linux &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;distro&lt;/span&gt;&lt;/a&gt;, installed on them instead of Windows. It seems Linux is starting to take over on mainstream computers. This is sure a hard time on &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1906481985688324082?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1906481985688324082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1906481985688324082'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/linux-and-windows-xp-on-dell-computers.html' title='Linux and  Windows XP on Dell Computers'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8881329714069218646</id><published>2007-05-01T18:43:00.000+03:00</published><updated>2007-05-01T18:52:04.053+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsoft Fights Back with Silverlight</title><content type='html'>Having succeeded in pushing back Java applets and thus avoiding the threat Windows not being as important to users due to ability to use just any platform (aka Linux) to run rich applications, Microsoft had not been able to fight AJAX wich poased a similar threat. Despite Microsoft's attempt evade AJAX and metigate supporting it in its development tools, the great popularity that AJAX has come to have made it impossible for Microsoft to ignore it.&lt;br /&gt;&lt;br /&gt;Now Microsoft is fighting back with &lt;a href="http://www.microsoft.com/silverlight/"&gt;Silverlight&lt;/a&gt;, a new technology from Microsoft that allows the development of rich web applications. Microsoft is hoping that it can make people dependent on its technology once again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8881329714069218646?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8881329714069218646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8881329714069218646'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/microsoft-fights-back-with-silverlight.html' title='Microsoft Fights Back with Silverlight'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-579695907386351565</id><published>2007-05-01T01:15:00.000+03:00</published><updated>2007-05-01T01:27:07.376+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Spreadsheets Now Have Charts</title><content type='html'>At long last, Google has added &lt;a href="http://google-d-s.blogspot.com/2007/04/how-to-make-pie.html"&gt;charts&lt;/a&gt; functionality to &lt;a href="http://docs.google.com/"&gt;Google Docs &amp;amp; Spreadsheets&lt;/a&gt;. The feature has been in high demand and now the wait is over. It is interesting that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Google's&lt;/span&gt; addition of charts to its online spreadsheets application comes exactly one month after &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Google's&lt;/span&gt; &lt;a href="http://egyptsoftware.blogspot.com/2007/03/data-visualization-from-google.html"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;acquisition&lt;/span&gt;&lt;/a&gt; of data visualization software from &lt;a href="http://www.gapminder.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Gapminder&lt;/span&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-579695907386351565?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/579695907386351565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/579695907386351565'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/05/google-spreadsheets-now-have-charts.html' title='Google Spreadsheets Now Have Charts'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5804994323019187903</id><published>2007-04-23T14:31:00.000+02:00</published><updated>2007-04-23T15:00:48.015+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>PHPTriad Successor</title><content type='html'>In my early days with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt;, I used to love &lt;a href="http://sourceforge.net/projects/phptriad/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PHPTriad&lt;/span&gt;&lt;/a&gt; which installed and configured &lt;a href="http://www.php.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://httpd.apache.org/"&gt;Apache&lt;/a&gt; and &lt;a href="http://www.mysql.com/"&gt;MySQL&lt;/a&gt; on my &lt;a href="http://www.microsoft.com/windows/"&gt;Windows&lt;/a&gt; machine instantly. The process of downloading each separately, installing each then configuring them to work together on your Windows machine was really a pain. So &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PHPTriad&lt;/span&gt; was a killer package back then.&lt;br /&gt;&lt;br /&gt;As &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PHPTriad&lt;/span&gt; was ditched and not &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;maintined&lt;/span&gt;, it was no longer an option, since it did not keep up with new &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;versions&lt;/span&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;PHP&lt;/span&gt;, MySQL and Apache. Despite a recent renewed interest in the &lt;a href="http://www.phpgeek.com/phptriad.html"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;resurrection&lt;/span&gt;&lt;/a&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;PHPTriad&lt;/span&gt; under the new name of &lt;a href="http://www.sokkit.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Sokkit&lt;/span&gt;&lt;/a&gt;, which is a commercial alternative, yet another free open source alternative seems to be on the rise.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/xampp/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;XAMPP&lt;/span&gt;&lt;/a&gt; is the strong &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;PHPTriad&lt;/span&gt; alternative, adequately replacing it and filling the gap. It is available for a number of different platforms.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5804994323019187903?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5804994323019187903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5804994323019187903'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/phptriad-successor.html' title='PHPTriad Successor'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5833251479498093625</id><published>2007-04-23T11:42:00.000+02:00</published><updated>2007-04-23T11:45:40.700+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='search'/><title type='text'>Creating Site Search with PHP</title><content type='html'>If your web site has a large number of pages, it might be a good idea to augment the navigation structure with a handy search facility. This can be done using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt; as this &lt;a href="http://www.onlamp.com/pub/a/php/2006/02/16/search-engine-showdown.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ONLamp&lt;/span&gt; &lt;/a&gt;article shows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5833251479498093625?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5833251479498093625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5833251479498093625'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/creating-site-search-with-php.html' title='Creating Site Search with PHP'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1562964381954053618</id><published>2007-04-23T01:45:00.000+02:00</published><updated>2007-04-23T01:50:44.736+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='education'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Nile University in Egypt</title><content type='html'>&lt;a href="http://www.nileuniversity.edu.eg/"&gt;Nile University&lt;/a&gt; was established last year in the &lt;a href="http://www.smart-villages.com/"&gt;Smart Village&lt;/a&gt;. It's "Unlike existing universities in Egypt, it is intended to be ... specialized in graduate education and research." Currently it offers three &lt;a href="http://www.nileuniversity.edu.eg/programs.htm"&gt;masters&lt;/a&gt; programs.&lt;br /&gt;&lt;br /&gt;Nile University is "dedicated primarily to excellence in technology-related fields with focus on business development and applied research."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1562964381954053618?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1562964381954053618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1562964381954053618'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/nile-university-in-egypt.html' title='Nile University in Egypt'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-7931380602119415685</id><published>2007-04-22T11:38:00.000+02:00</published><updated>2007-04-22T11:42:17.713+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>BambooINVOICE Built with CodeIgniter</title><content type='html'>&lt;a href="http://www.bambooinvoice.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;BambooINVOICE&lt;/span&gt;&lt;/a&gt; is a simple open source invoicing web &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;application&lt;/span&gt; built using &lt;a href="http://codeigniter.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CodeIgniter&lt;/span&gt;&lt;/a&gt;. The interesting thing is that you can download the code and see how a complete real-life web application is built with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CodeIgniter&lt;/span&gt; as its framework.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-7931380602119415685?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7931380602119415685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7931380602119415685'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/bambooinvoice-built-with-codeigniter.html' title='BambooINVOICE Built with CodeIgniter'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-723507847826116362</id><published>2007-04-22T02:24:00.000+02:00</published><updated>2007-04-22T02:27:55.517+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Google Egypt Hiring QA Engineer</title><content type='html'>I was excited to know about the &lt;a href="http://www.google.com/support/jobs/bin/answer.py?answer=59631"&gt;Software &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;QA&lt;/span&gt; Engineer&lt;/a&gt; vacancy at Google Egypt. I hope that Google Egypt would follow this one day soon with positions for Software Developers as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-723507847826116362?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/723507847826116362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/723507847826116362'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/google-egypt-hiring-qa-engineer.html' title='Google Egypt Hiring QA Engineer'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1113990391177542318</id><published>2007-04-21T00:37:00.000+02:00</published><updated>2007-04-21T00:48:12.064+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='chat'/><title type='text'>Google Video Talk</title><content type='html'>Google tried to downplay its &lt;a href="http://googleblog.blogspot.com/2007/04/collaborating-with-marratech.html"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;acquisition&lt;/span&gt;&lt;/a&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Marratech's&lt;/span&gt; video conferencing software saying that it "will enable from-the-desktop participation for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Googlers&lt;/span&gt; in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;videoconferencing&lt;/span&gt; meetings wherever there's an Internet connection." Yet it sounds to me like Google is actually &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;aiming&lt;/span&gt; at adding video chat features to &lt;a href="http://www.google.com/talk/"&gt;Google Talk&lt;/a&gt;, a feature which has been present in both &lt;a href="http://messenger.yahoo.com/"&gt;Yahoo! Messenger&lt;/a&gt; and &lt;a href="http://get.live.com/messenger/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;MSN&lt;/span&gt; Messenger&lt;/a&gt; for quite a while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1113990391177542318?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1113990391177542318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1113990391177542318'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/google-video-talk.html' title='Google Video Talk'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4083109799277835570</id><published>2007-04-19T12:11:00.000+02:00</published><updated>2007-04-19T12:16:26.972+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Measure Your Street Now!</title><content type='html'>It's amazing. You can actually grab a ruler and measure the length of your own street using &lt;a href="http://earth.google.com/"&gt;Google Earth&lt;/a&gt;! I thought that feature was reserved for the &lt;a href="http://www.google.com/earth/earth_pro.html"&gt;Pro&lt;/a&gt; version only, but it turns out it is available in the free version of Google Earth too. The Pro version however adds ability to measure areas.&lt;br /&gt;&lt;br /&gt;So have some fun, find your own street using Google Earth then use the ruler feature to &lt;a href="http://earth.google.com/userguide/v4/ug_measuring.html"&gt;measure&lt;/a&gt; how long it is. Amazing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4083109799277835570?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4083109799277835570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4083109799277835570'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/measure-your-street-now.html' title='Measure Your Street Now!'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4730736265070114092</id><published>2007-04-18T16:07:00.000+02:00</published><updated>2007-04-18T16:29:26.849+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><title type='text'>Yahoo Pipes</title><content type='html'>This is &lt;em&gt;so&lt;/em&gt; exciting! &lt;a href="http://pipes.yahoo.com/"&gt;Yahoo Pipes&lt;/a&gt; is a web based platform that enables anyone without even having any programming experience to create &lt;a href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;mashups&lt;/span&gt;&lt;/a&gt; in a really creative way . Here is an &lt;a href="http://pipes.yahoo.com/pipes/docs?doc=overview"&gt;overview of pipes&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4730736265070114092?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4730736265070114092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4730736265070114092'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/yahoo-pipes.html' title='Yahoo Pipes'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8316936531570889190</id><published>2007-04-18T12:51:00.000+02:00</published><updated>2007-04-18T13:01:05.454+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Video Tutorial - AJAX in PHP</title><content type='html'>&lt;a href="http://www.derekallard.com/"&gt;Derek Allard&lt;/a&gt; made an interesting &lt;a href="http://video.derekallard.com/"&gt;video tutorial&lt;/a&gt; on how to use AJAX within the &lt;a href="http://codeigniter.com/"&gt;CodeIgniter&lt;/a&gt; PHP framework to create a cool web application with AJAX flavored search capabilities. Derek makes use of &lt;a href="http://script.aculo.us/"&gt;Scriptaculous&lt;/a&gt; to incorporate AJAX capabilities into this tiny web application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8316936531570889190?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8316936531570889190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8316936531570889190'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/video-tutorial-ajax-in-php.html' title='Video Tutorial - AJAX in PHP'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8121074059233592460</id><published>2007-04-18T03:15:00.000+02:00</published><updated>2007-04-18T03:19:38.244+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Google PowerPoint</title><content type='html'>&lt;a href="http://egyptsoftware.blogspot.com/2007/03/data-visualization-from-google.html"&gt;30 days ago&lt;/a&gt; I've been asking if Google will be adding a presentation component to its Google Docs &amp;amp; Spreadsheets web application suit as a parallel application to &lt;a href="http://office.microsoft.com/powerpoint/"&gt;Microsoft PowerPoint.&lt;/a&gt;. Google finally gives us the answer, &lt;a href="http://googleblog.blogspot.com/2007/04/were-expecting.html"&gt;yes they are&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8121074059233592460?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8121074059233592460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8121074059233592460'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/google-powerpoint.html' title='Google PowerPoint'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1472775986551965734</id><published>2007-04-17T17:58:00.000+02:00</published><updated>2007-04-17T18:06:38.929+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Colorize Code</title><content type='html'>&lt;a href="http://www.codeigniter.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;CodeIgniter&lt;/span&gt;&lt;/a&gt; offers a really cool and handy &lt;a href="http://codeigniter.com/user_guide/general/helpers.html"&gt;helper function&lt;/a&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;called&lt;/span&gt; &lt;a href="http://codeigniter.com/user_guide/helpers/text_helper.html"&gt;highlight_code()&lt;/a&gt;. It is a handy little function that allows you to pass it a string of text including HTML tags, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt; code ... etc and it returns a colorized version of that string highlighting the code and tags in distinct colors.&lt;br /&gt;&lt;br /&gt;I wish I'd known abou this nifty function before when I was struggling with creating tutorial web pages that included HTML code and I longed find a way to highlight such code easily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1472775986551965734?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1472775986551965734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1472775986551965734'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/colorize-code.html' title='Colorize Code'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4530598837191474606</id><published>2007-04-17T17:31:00.000+02:00</published><updated>2007-04-17T17:39:04.461+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Word Inflection in CodeIgniter</title><content type='html'>I love the cool idea of providing &lt;a href="http://codeigniter.com/user_guide/helpers/inflector_helper.html"&gt;inflection helper functions&lt;/a&gt; in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;a href="http://www.codeigniter.com/"&gt;CodeIgniter&lt;/a&gt;&lt;/span&gt;. They allow you to get the plural, singular, camel case ... etc of a word.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4530598837191474606?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4530598837191474606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4530598837191474606'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/word-inflection-in-codeigniter.html' title='Word Inflection in CodeIgniter'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5408595417844692148</id><published>2007-04-16T15:32:00.000+02:00</published><updated>2007-04-16T15:48:01.735+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>endforeach</title><content type='html'>I never knew before this day that PHP offered an alternate syntax for closing blocks of code. The standard syntax which we are used to and comes from the C programming language is opening and closing braces: { and }. For instance:&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;foreach($list as $item)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo $item;&lt;br /&gt;} &lt;/p&gt;&lt;/blockquote&gt;The alternative syntax I just knew about today is like this:&lt;br /&gt;&lt;blockquote&gt;foreach($list as $item):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo $item;&lt;br /&gt;endforeach &lt;/blockquote&gt;Quite cool. Other control statements as well can be closed in a similar manner. Check out the &lt;a href="http://www.php.net/manual/en/control-structures.alternative-syntax.php"&gt;alternative syntax for control structures&lt;/a&gt; from the PHP manual.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5408595417844692148?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5408595417844692148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5408595417844692148'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/endforeach.html' title='endforeach'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6710317218758703470</id><published>2007-04-15T16:53:00.000+02:00</published><updated>2007-04-18T13:04:44.194+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><title type='text'>OpenID Becoming a Reality</title><content type='html'>Was just trying out the free version of &lt;a href="http://www.highrisehq.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Highrise&lt;/span&gt;&lt;/a&gt;, a mini web based &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;CRM&lt;/span&gt; from &lt;a href="http://www.37signals.com/"&gt;37signals&lt;/a&gt;, when I found them offering me to register using an &lt;a href="http://openid.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;OpenID&lt;/span&gt;&lt;/a&gt;. I was really thrilled. I have heard about the idea of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;OpenID&lt;/span&gt; before, yet have never seen it in action. I thought it was just talk but would not really take off. Now 37signals, sponsors of &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails,&lt;/a&gt; seem to have been taking the lead. I really do hope many others follow suit. That would help us all reduce the ID clutter we have in today's web space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6710317218758703470?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6710317218758703470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6710317218758703470'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/openid-becoming-reality.html' title='OpenID Becoming a Reality'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4523422534466302636</id><published>2007-04-14T12:14:00.000+02:00</published><updated>2007-04-14T14:59:17.917+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google HotJobs?</title><content type='html'>Looks like Google once again is going after Yahoo's share of online services. Google might be entering the online jobs market, competing with &lt;a href="http://hotjobs.yahoo.com/"&gt;Yahoo! &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;HotJobs&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some time before Google launched its &lt;a href="http://www.google.com/calendar/"&gt;calendar&lt;/a&gt; service, there were reports of aggressive activity by &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Google&lt;/span&gt; bots chewing up &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;ferociously&lt;/span&gt; on calendar sections found on people's web sites. I was startled two days ago when I found the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;googlebot&lt;/span&gt; repeatedly reading my resume at &lt;a href="http://emurse.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;emurse&lt;/span&gt;&lt;/a&gt;. I believe that could be an indicator that Google is planning to enter into the online job market as has Yahoo!&lt;br /&gt;&lt;br /&gt;Yet as Google Calendar is no where the same as Yahoo Calendar, I expect Google Jobs to be way different and cool. So let's wait and see when and if this will turn out to be true. After all, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Google's&lt;/span&gt; mission is to organize the world information, and sure resumes and job vacancies are a large part of highly sought after information in this world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4523422534466302636?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4523422534466302636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4523422534466302636'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/google-hotjobs.html' title='Google HotJobs?'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-2523417950005654540</id><published>2007-04-13T14:37:00.000+02:00</published><updated>2007-04-13T14:46:52.696+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><title type='text'>Clean URLs and AJAX</title><content type='html'>I have been perplexed for a while when starting to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;develop&lt;/span&gt; a new web application. I wanted to implement clean URLs in it, because clean URLs are the buzz these days. Actually I wanted to use clean URLs to make my web application more user and search engine friendly which &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;would&lt;/span&gt; help in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SEO&lt;/span&gt; as well as make the application look cleaner and neater.&lt;br /&gt;&lt;br /&gt;AJAX is another hot topic these days which I did want to make use of in my application. The interesting thing is that by default an AJAX based application does not change its URL while the user interacts with it. Gmail uses AJAX extensively and its URL never changes.&lt;br /&gt;&lt;br /&gt;Those two concepts, clan URLs and AJAX seemed to collied with one another at first. Then after some research and thought I came up with the logical conclusion. For parts of your web site which you want search engines to see and index and which you want your users to be able to bookmark and exchange its link with others, use clean URLs. For other parts of your application where a user interacts with the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;system&lt;/span&gt; to display specific &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;information&lt;/span&gt; for that user as a result of his or her interaction with the system, then use AJAX for such parts of the system and do not change the URL while the user interacts with the system.&lt;br /&gt;&lt;br /&gt;I came &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;across&lt;/span&gt; this interesting wiki about &lt;a href="http://ajaxpatterns.org/Unique_URLs"&gt;unique URLs&lt;/a&gt; which discusses in some detail how to use AJAX while at the same time making your web application have more than a single URL so that people can bookmark specific parts and search engines can index those parts as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-2523417950005654540?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2523417950005654540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2523417950005654540'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/clean-urls-and-ajax.html' title='Clean URLs and AJAX'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5683654306313762218</id><published>2007-04-12T21:02:00.000+02:00</published><updated>2007-04-12T21:14:58.446+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><title type='text'>Registration-Free User Log In</title><content type='html'>The standard approach in web applications is to allow new users to register by selecting a user name and a password in addition to providing other information such as email, date of birth and so on. Next time a user visits your web application, they just need to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;log in&lt;/span&gt; using &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;their&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;user name&lt;/span&gt; and password combination. So basically it's a two step process: first register (or sign up) then &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;log in&lt;/span&gt; (or sign in).&lt;br /&gt;&lt;br /&gt;With Yahoo!'s &lt;a href="http://developer.yahoo.com/auth/"&gt;browser based authentication&lt;/a&gt;, you can &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;relieve&lt;/span&gt; yourself from building a registration component for your web application and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;relieve&lt;/span&gt; your members from having to go through yet another registration process. Yahoo! allows you to authenticate users using their Yahoo! IDs. So you only need to ask users to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;log in&lt;/span&gt;, without ever needing them to register at your web site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5683654306313762218?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5683654306313762218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5683654306313762218'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/registration-free-user-log-in.html' title='Registration-Free User Log In'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4512862576469171042</id><published>2007-04-12T15:57:00.000+02:00</published><updated>2007-04-12T16:00:36.088+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Two-Level Menu with PHP</title><content type='html'>Here is how to make a dynamic database-driven &lt;a href="http://www.finalwebsites.com/tutorials/dynamic-navigation-list.php"&gt;two-level menu with PHP&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4512862576469171042?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4512862576469171042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4512862576469171042'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/two-level-menu-with-php.html' title='Two-Level Menu with PHP'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1921471911411331932</id><published>2007-04-11T23:45:00.000+02:00</published><updated>2007-04-12T00:07:53.624+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>PHP and Python Creators Working for Yahoo and Google</title><content type='html'>It's interesting that &lt;a href="http://en.wikipedia.org/wiki/Rasmus_Lerdorf"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Rasmus&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Lerdorf&lt;/span&gt;&lt;/a&gt;, creator of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt;, has been employed by Yahoo! as an Infrastructure Architecture Engineer since September 2002.&lt;br /&gt;&lt;br /&gt;It's more interesting that as of October 2005, &lt;a href="http://en.wikipedia.org/wiki/Guido_van_Rossum"&gt;Guido van &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Rossum&lt;/span&gt;&lt;/a&gt;, creator of Python, has been hired by Google and became a Google software engineer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1921471911411331932?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1921471911411331932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1921471911411331932'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/php-and-python-creators-working-for.html' title='PHP and Python Creators Working for Yahoo and Google'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8930849783190364756</id><published>2007-04-11T16:32:00.000+02:00</published><updated>2007-04-11T16:37:12.047+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='free'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><title type='text'>Free Java Hosting</title><content type='html'>If you are a Java developer or learning how to develop web applications using Java, then perhaps deploying your Java based web application online would be a nice way to learn as well as fun to experience. &lt;a href="http://www.myjavaserver.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;MyJavaServer&lt;/span&gt;&lt;/a&gt; offers free Java hosting for Java developers. Go ahead and try it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8930849783190364756?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8930849783190364756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8930849783190364756'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/free-java-hosting.html' title='Free Java Hosting'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1869138047152701848</id><published>2007-04-10T16:32:00.000+02:00</published><updated>2007-04-10T16:44:32.575+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>MySQLi</title><content type='html'>For those still using the old &lt;a href="http://php.net/mysql"&gt;MySQL functions&lt;/a&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt;, perhaps it is time to take a fresh look at an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;improved&lt;/span&gt; version of this old &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;extension&lt;/span&gt;. &lt;a href="http://php.net/mysqli"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;MySQLi&lt;/span&gt;&lt;/a&gt; (MySQL improved) is the newer &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PHP&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;extension&lt;/span&gt; that allows you to do &lt;a href="http://devzone.zend.com/node/view/id/686"&gt;prepared &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;statements&lt;/span&gt;&lt;/a&gt; among many other cool things that the old MySQL &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;extent ion&lt;/span&gt; does not offer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1869138047152701848?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1869138047152701848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1869138047152701848'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/mysqli.html' title='MySQLi'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-7673285522399163555</id><published>2007-04-09T14:20:00.000+02:00</published><updated>2007-04-09T14:33:10.502+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='content'/><title type='text'>Simple English Wikipedia</title><content type='html'>I've always been an avid fan of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Wikipedia&lt;/span&gt;. I frequent it all the time checking whatever new concepts I happen not to know about. I have just recently discovered that a &lt;a href="http://simple.wikipedia.org/wiki/Main_Page"&gt;simplified edition of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Wikipedia&lt;/span&gt;&lt;/a&gt; also exists! The &lt;a href="http://simple.wikipedia.org/wiki/Wikipedia:Simple_English_Wikipedia"&gt;Simple English &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Wikipedia&lt;/span&gt;&lt;/a&gt; is an attempt to provide an simplified edition of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Wikipedia&lt;/span&gt; that introduced concepts in simple English words that are easy to understand by students and by people &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;whose&lt;/span&gt; English language skills are not strong.&lt;br /&gt;&lt;br /&gt;In my opinion, making things easy and clear makes things more popular. Just think how popular the &lt;a href="http://www.dummies.com/"&gt;For Dummies&lt;/a&gt; computer book series has been. I believe that the Simple English &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Wikipedia&lt;/span&gt; will gain more popularity with time and might even eclipse the main edition of &lt;a href="http://en.wikipedia.org/wiki/Main_Page"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Wikipedia&lt;/span&gt;&lt;/a&gt; itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-7673285522399163555?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7673285522399163555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7673285522399163555'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/simple-english-wikipedia.html' title='Simple English Wikipedia'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6416610686864631462</id><published>2007-04-07T13:38:00.000+02:00</published><updated>2007-04-07T17:39:26.581+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>PHP Creator is Against Frameworks</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Rasmus_Lerdorf"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Rasmus&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Lerdorf&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;, the creator of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;, strikes a high note &lt;a href="http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html"&gt;against &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PHP&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; frameworks&lt;/a&gt;. I live this article written by him because it takes a lot of the hype away from the insane number of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PHP&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; frameworks that are sprouting by and creating a lot of confusion for newbies to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;PHP&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;His article shows how to build a web application designed on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;MVC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; pattern without having to use one of the popular &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;PHP&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; frameworks. His message is essentially that you better evolve your own framework that is best suited to your own needs than spend your time trying to learn a ready-made framework that might turn out to be tough to tame for your needs as your web application grows.&lt;br /&gt;&lt;br /&gt;At the end of his article &lt;a href="http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html"&gt;The no-framework &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;PHP&lt;/span&gt;&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;MVC&lt;/span&gt;&lt;/span&gt; framework&lt;/a&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Lerdorf&lt;/span&gt;&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;concludes&lt;/span&gt; that:&lt;br /&gt;&lt;blockquote&gt;Many frameworks may look very appealing at first glance because they seem to reduce web application development to a couple of trivial steps ..., but these same shortcuts are likely to be your bottlenecks as well since they achieve this simplicity by &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;sacrificing&lt;/span&gt; flexibility and performance. ... Instead of starting by fixing the mistakes in some foreign framework and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;refactoring&lt;/span&gt;&lt;/span&gt; all the things that don't apply to your environment spend your time building a lean and reusable pattern that fits your requirements directly. In the end I think you will find that your homegrown small framework has saved you time and aggravation and you end up with a better product.&lt;/blockquote&gt;Instead of relying on a canned framework, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Lerdrof&lt;/span&gt; applies "an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;MVC&lt;/span&gt; approach with clean and simple views and still have all the goodness of fancy Web 2.0 features" using the following technologies:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://php.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;PHP&lt;/span&gt; 5&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.yahoo.net/yui/"&gt;Yahoo! User Interface Library&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://json.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;JSON&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6416610686864631462?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6416610686864631462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6416610686864631462'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/php-creator-is-against-frameworks.html' title='PHP Creator is Against Frameworks'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-3599738105156613210</id><published>2007-04-07T12:48:00.000+02:00</published><updated>2007-04-07T12:55:00.783+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Coding Standards</title><content type='html'>It's often of great benefit to stick to some coding standards when a system is being built by a team of developers. Even in case of a single developer following some form of code &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;standards&lt;/span&gt; would be of great benefit. Sticking to coding standards makes it easier to understand the code written, easier to find bugs and makes the code less prone to having bugs in the first place.&lt;br /&gt;&lt;br /&gt;Here are some &lt;a href="http://pear.php.net/manual/en/standards.php"&gt;coding standards&lt;/a&gt; for &lt;a href="http://www.php.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PHP&lt;/span&gt;&lt;/a&gt; that have been set forth by the &lt;a href="http://pear.php.net/"&gt;PEAR&lt;/a&gt; group. Even if you are not writing code for PEAR, it might be a good idea to incorporate some or all of their coding standards while writing your own code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-3599738105156613210?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3599738105156613210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3599738105156613210'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/coding-standards.html' title='Coding Standards'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5764158092762198390</id><published>2007-04-07T10:58:00.000+02:00</published><updated>2007-04-07T11:09:51.836+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>Clarity of Design</title><content type='html'>A web page that has a clear design makes life simple for visitors and would attract many more visitors to take action than a web page with an obscure design. &lt;a href="http://emurse.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Emurse&lt;/span&gt;&lt;/a&gt; is one good examples of a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;clearly&lt;/span&gt; designed web page.&lt;br /&gt;&lt;br /&gt;So what makes the above mentioned web page tick? I believe it is the presence of the following elements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The page is not cluttered with a lot of content.&lt;/li&gt;&lt;li&gt;Three steps of action are clearly indicated: Creat, Send and Share.&lt;/li&gt;&lt;li&gt;Background color of the three actions is distinct and clear.&lt;/li&gt;&lt;li&gt;Simple navigation is kept at the bottom with a small font size.&lt;/li&gt;&lt;li&gt;The funtion of the site is clearly spelled out: "emurse means resumes, improved."&lt;/li&gt;&lt;li&gt;Sign in and sign up forms are clearly shown.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I believe such clear design would lead to many visitors taking action because they can easily grasp the intention of the site and know what action to take. Confusing the user with a complex and obscure design is nothing to be proud of.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5764158092762198390?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5764158092762198390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5764158092762198390'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/clarity-of-design.html' title='Clarity of Design'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6784875921811573269</id><published>2007-04-07T01:38:00.000+02:00</published><updated>2007-04-07T01:52:57.079+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>CodeIgniter</title><content type='html'>&lt;a href="http://codeigniter.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;CodeIgniter&lt;/span&gt;&lt;/a&gt; is a simple yet powerful &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PHP&lt;/span&gt; framework. What I like about it is its simplicity. There are other more sophisticated &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt; frameworks that might be more powerful and offer a more rich set of features, yet &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CodeIgniter&lt;/span&gt; wins when it comes to simplifying things in a pretty way. Its learning curve is also not as steep as other frameworks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6784875921811573269?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6784875921811573269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6784875921811573269'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/codeigniter.html' title='CodeIgniter'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-985885034352690086</id><published>2007-04-06T16:33:00.000+02:00</published><updated>2007-04-06T16:46:17.544+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>Breadcrumbs in Navigation</title><content type='html'>Simple web sites can do with a simple navigation system. Sites with a navigation structure that is only one or two levels deep can get along with links listed in a sidebar. More complex sites that have a navigational structure that is more than two levels deep would best augment their navigational system with &lt;a href="http://en.wikipedia.org/wiki/Breadcrumb_%28navigation%29"&gt;breadcrumbs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Breadcrumbs are so useful in web sites that have a deep navigation of 4, 5 or more levels. In such web sites, it would be really confusing to the user if breadcrumbs were absent and would look really messy if the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;navigation&lt;/span&gt; was implemented using nested menus.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-985885034352690086?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/985885034352690086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/985885034352690086'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/breadcrumbs-in-navigation.html' title='Breadcrumbs in Navigation'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8236823597834721795</id><published>2007-04-05T22:29:00.000+02:00</published><updated>2007-04-05T22:42:30.972+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='map'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Genena Mall on Google Maps!</title><content type='html'>If you search &lt;a href="http://maps.google.com/"&gt;Google Maps&lt;/a&gt; for &lt;a href="http://www.genena.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Genena&lt;/span&gt; Mall&lt;/a&gt; you will be taken to the &lt;a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;amp;q=genena+mall&amp;sll=30.059999,31.25&amp;amp;sspn=0.136687,0.2314&amp;layer=&amp;amp;ie=UTF8&amp;z=12&amp;amp;ll=30.091672,31.277046&amp;spn=0.136644,0.2314&amp;amp;om=1&amp;iwloc=A"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Genena&lt;/span&gt; Mall location&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;How does Google achieve this? Easy. I have created a small map including &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Genena&lt;/span&gt; Mall, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Fatma&lt;/span&gt; El &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Zahraa&lt;/span&gt; Mosque and a small garden not far from them called Al &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Ferdaws&lt;/span&gt; Garden. I then put this &lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;amp;t=k&amp;om=1&amp;amp;msa=0&amp;msid=104080110913648784293.00000111c322ab3deee08&amp;amp;z=17&amp;ll=30.061081,31.3323&amp;amp;spn=0.004271,0.007231"&gt;map&lt;/a&gt; over at Google Maps. You will find blue rectangles that I have drawn around each of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;these&lt;/span&gt; three places.&lt;br /&gt;&lt;br /&gt;But how have I managed to do this? Well, Google has just &lt;a href="http://googleblog.blogspot.com/2007/04/map-making-so-easy-caveman-could-do-it.html"&gt;announced&lt;/a&gt; the ability to create your own maps very easily over at Google Maps. This new interesting feature makes it so easy to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;creat&lt;/span&gt; your own map and put it at Google Maps for everyone to see. It even appears in the search results as mine appears when you search Google Maps for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Genena&lt;/span&gt; Mall. Here is how to use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Google's&lt;/span&gt; exciting new &lt;a href="http://maps.google.com/help/maps/userguide/index.html"&gt;My Maps&lt;/a&gt; feature.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8236823597834721795?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8236823597834721795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8236823597834721795'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/genena-mall-on-google-maps.html' title='Genena Mall on Google Maps!'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4580310493370564339</id><published>2007-04-05T13:42:00.000+02:00</published><updated>2007-04-05T13:44:43.365+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Speaking SQL</title><content type='html'>&lt;a href="http://www.melonfire.com/community/columns/trog/article.php?id=39"&gt;Speaking SQL&lt;/a&gt; looks like an interesting SQL tutorial that starts at the vry beginning yet goes deeper than many other SQL tutorials.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4580310493370564339?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4580310493370564339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4580310493370564339'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/speaking-sql.html' title='Speaking SQL'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-445506962673111774</id><published>2007-04-04T19:40:00.000+02:00</published><updated>2007-04-05T13:42:08.183+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>One Billion Web Pages Analyzed</title><content type='html'>Just above a year ago, Google made an interesting study in which it took a sample of over 1 billion web pages and analyzed them to discover how HTML tags are actually being used on the Web. The results of such study might be interesting to web designers and web developers. Have a look at those &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;enlightening&lt;/span&gt; &lt;a href="http://code.google.com/webstats/"&gt;web authoring statistics&lt;/a&gt; from Google.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-445506962673111774?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/445506962673111774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/445506962673111774'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/one-billion-web-pages-analyzed.html' title='One Billion Web Pages Analyzed'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5594036604381996228</id><published>2007-04-04T18:37:00.000+02:00</published><updated>2007-04-04T19:02:35.837+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>ReactOS - A  Microsoft Windows Alternative</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Linux"&gt;Linux&lt;/a&gt; has been promoted as the free alternative to &lt;a href="http://www.microsoft.com/windows/"&gt;Microsoft Windows&lt;/a&gt;. Despite years of heavy promotion by its dedicated fans, Linux still remains a competitor to Windows only for server machines but looses ground when it comes to desktop computers. Linux started to gain some ground on the desktop computer front, yet it still has a long way to go.&lt;br /&gt;&lt;br /&gt;The two main obstacles facing Linux when trying to gain ground in the desktop area are first that a large number of users are already familiar with using Windows and second because there is a huge amount of software applications that run on Windows yet does not run on Linux.&lt;br /&gt;&lt;br /&gt;Enter &lt;a href="http://www.reactos.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ReactOS&lt;/span&gt;&lt;/a&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ReactOS&lt;/span&gt; attempts to become an open source alternative to Microsoft Windows. An alternative in the real sense of the word, that is it can run all software applications that have been developed for Windows! That's a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;freakingly&lt;/span&gt; interesting idea. If they succeed in achieving their goal, I believe that could deal a heavy blow to the Windows operating system. I wonder then how will Microsoft &lt;em&gt;React&lt;/em&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5594036604381996228?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5594036604381996228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5594036604381996228'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/reactos-microsoft-windows-alternative.html' title='ReactOS - A  Microsoft Windows Alternative'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-7383373780365552772</id><published>2007-04-03T13:29:00.000+02:00</published><updated>2007-04-03T13:36:26.520+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='Smalltalk'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><title type='text'>Seaside - A Smalltalk Framework</title><content type='html'>Although I do not do any &lt;a href="http://en.wikipedia.org/wiki/Smalltalk"&gt;Smalltalk&lt;/a&gt; myself yet I was interested in knowing about &lt;a href="http://www.seaside.st/"&gt;Seaside&lt;/a&gt; which, according to the official website, is "a framework for developing sophisticated web applications in Smalltalk."&lt;br /&gt;&lt;br /&gt;What interested me most was that the developers of Seaside boldly stated that their framework is breaking with common accepted best practices in web development. Usually a new framework tries to use all sorts of buzz words and tell you it conforms with all widespread as well as new best practices, yet finding a framework that is bold enough to state upfront that it is breaking with common accepted best practices is something that would attract my attention. I'll try to learn more about Seaside, not in order to develop web applications with Smalltalk, but perhaps to learn some concepts on which that framework is build hopefully to carry them over to other languages which I do use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-7383373780365552772?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7383373780365552772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7383373780365552772'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/seaside-smalltalk-framework.html' title='Seaside - A Smalltalk Framework'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5957431636777555476</id><published>2007-04-03T13:03:00.000+02:00</published><updated>2007-04-03T13:06:47.072+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Cyclomatic Complexity</title><content type='html'>&lt;a href="http://www.sei.cmu.edu/str/descriptions/cyclomatic_body.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Cyclomatic&lt;/span&gt; Complexity&lt;/a&gt; is an interesting concept in computer science. It is one of the methods by which the complexity a piece of software code can be measured.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5957431636777555476?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5957431636777555476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5957431636777555476'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/cyclomatic-complexity.html' title='Cyclomatic Complexity'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1824864020661175403</id><published>2007-04-03T12:29:00.000+02:00</published><updated>2007-04-03T12:56:47.219+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='program'/><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Dreamweaver'/><title type='text'>Dreamweaver CS3 Announced</title><content type='html'>I was excited about the announcment of &lt;a href="http://www.adobe.com/products/dreamweaver/"&gt;Adobe &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Dreamweaver&lt;/span&gt; CS3&lt;/a&gt;. I had been using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Dreamewaver&lt;/span&gt; 8 for a while and before it used &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Dreamweaver&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;MX&lt;/span&gt; 2004 and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Dreamweaver&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;MX&lt;/span&gt;. I've even used an earlier versions as well which I can't remember its name right now. I believe &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Dreamweaver&lt;/span&gt; is a really powerful product although it has a bit &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;steeper&lt;/span&gt; learning curve than its competitors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1824864020661175403?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1824864020661175403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1824864020661175403'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/dreamweaver-cs3-arrives.html' title='Dreamweaver CS3 Announced'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5070936699777149150</id><published>2007-04-03T00:02:00.000+02:00</published><updated>2007-05-11T06:01:37.325+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='money'/><category scheme='http://www.blogger.com/atom/ns#' term='ecommerce'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Vodafone Cash in Egypt</title><content type='html'>An ailing problem with e&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;commerce&lt;/span&gt; in Egypt is that credit cards are used by a tiny fraction of the population only. Even such small fraction mostly fear to use their credit card online. The bottom line is that it is usually not realistic to sell your stuff online in Egypt and expect to collect the money online via credit card. The alternative that seems to have worked till now in Egypt is cash on delivery of which &lt;a href="http://www.otlob.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Otlob&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; has been the leader in.&lt;br /&gt;&lt;br /&gt;Finally there is hope. &lt;a href="http://www.vodafone.com.eg/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Vodafine&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; Egypt&lt;/a&gt; is introducing a new service in Egypt called &lt;a href="http://www.vodafone.com.eg/db/JSP/personal/dynamic/en/services/VodafoneCash/VodafoneCash.jsp?selectedItem=2339"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Vodafone&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; Cash&lt;/a&gt;. The service is basically a method for money transfer by which subscribers can transfer money, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;currently&lt;/span&gt; with an upper limit of 1000 LE, to one another. A subscriber can deposit money in his or her &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Vodafone&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; Cash account and withdraw money from it via any 123 ATM machine. Depositing or withdrawing from one's account costs 2% of the amount.&lt;br /&gt;&lt;br /&gt;With some money transfer services inside Cairo costing up to 7%, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Vodafone&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; Cash turns out to be an interesting and perhaps more &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;convenient&lt;/span&gt; alternative. I believe such a move would dramatically &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;nourish&lt;/span&gt; the budding e&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;commerce&lt;/span&gt; marketplace in Egypt.&lt;br /&gt;&lt;br /&gt;UPDATE: Check out the &lt;a href="http://www.vodafone.com.eg/db/JSP/business/dynamic/en/help/FAQ/businessFAQ.jsp"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Vodafone&lt;/span&gt; Cash FAQ&lt;/a&gt; at the bottom of the page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5070936699777149150?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5070936699777149150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5070936699777149150'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/04/vodafone-cash-in-egypt.html' title='Vodafone Cash in Egypt'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-7855579621163739712</id><published>2007-03-30T07:25:00.000+02:00</published><updated>2007-03-30T07:48:36.507+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQLite'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Use SQLite not MySQL</title><content type='html'>When thinking of developing a new web site using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt;, it is a no brainer which database management system you will be using. &lt;a href="http://www.mysql.com/"&gt;MySQL&lt;/a&gt; has become the standard in developing web applications based on open source technologies even in the case of many enterprise Java projects. Some would prefer to use &lt;a href="http://www.postgresql.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PostgreSQL&lt;/span&gt;&lt;/a&gt; due to its more complex features, yet MySQL still remains the king and a common denominator in most &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt; web applications.&lt;br /&gt;&lt;br /&gt;Although I have looked at &lt;a href="http://www.sqlite.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SQLite&lt;/span&gt;&lt;/a&gt; with some interest in the past, yet I had never took it seriously as an option when creating a web application. Under "&lt;a href="http://www.sqlite.org/whentouse.html"&gt;Situations Where &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SQLite&lt;/span&gt; Works Well&lt;/a&gt;" at the official &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SQLite&lt;/span&gt; web site, they mention the following:&lt;br /&gt;&lt;blockquote&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SQLite&lt;/span&gt; usually will work great as the database engine for low to medium traffic websites ... . The amount of web traffic that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SQLite&lt;/span&gt; can handle depends, of course, on how heavily the website uses its database. Generally speaking, any site that gets fewer than a 100000 hits/day should work fine with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SQLite&lt;/span&gt;.&lt;/blockquote&gt;Not bad. Not bad at all.&lt;br /&gt;&lt;br /&gt;Although such claims should still be verified, yet I just tend to believe them. Now if you are thinking BIG of your next killer web application which will attract millions of users, perhaps even in this case it would not hurt if you start out small at first with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;SQLite&lt;/span&gt; then switch later on to MySQL when you need to scale. As &lt;a href="http://gettingreal.37signals.com/"&gt;Getting Real&lt;/a&gt; suggest, it is better to start with a simple solution and then &lt;a href="http://gettingreal.37signals.com/ch04_Scale_Later.php"&gt;scale later&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-7855579621163739712?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7855579621163739712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7855579621163739712'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/use-sqlite-not-mysql.html' title='Use SQLite not MySQL'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5141428305965160718</id><published>2007-03-29T22:28:00.000+02:00</published><updated>2007-03-29T22:31:10.661+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><title type='text'>Yahoo! Announces Infinite Email Storange</title><content type='html'>Yahoo! &lt;a href="http://yodel.yahoo.com/2007/03/27/yahoo-mail-goes-to-infinity-and-beyond"&gt;announces&lt;/a&gt; infinite email storage starting May 2007. I wonder what reaction Google might have to this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5141428305965160718?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5141428305965160718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5141428305965160718'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/yahoo-announces-infinite-email-storange.html' title='Yahoo! Announces Infinite Email Storange'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4719380881837837565</id><published>2007-03-29T11:05:00.000+02:00</published><updated>2007-04-14T23:50:58.109+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='education'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Google and Microsoft Fight for Egypt Students</title><content type='html'>Egypt's &lt;a href="http://www.businesstodayegypt.com/"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Business&lt;/span&gt; Today&lt;/a&gt; magazine has an interesting article this months titled &lt;a href="http://www.businesstodayegypt.com/article.aspx?ArticleID=7247"&gt;Bit-by-Bit&lt;/a&gt; in which it sheds light on how Google is following in the footsteps of Microsoft trying to grab a share in Egypt's huge education pie.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4719380881837837565?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4719380881837837565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4719380881837837565'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/googke-and-microsoft-fight-for-egypt.html' title='Google and Microsoft Fight for Egypt Students'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1792466051054849708</id><published>2007-03-28T11:43:00.000+02:00</published><updated>2007-03-28T11:53:06.797+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Reusability Redefined</title><content type='html'>Stuck with a piece of code that you want to figure out how to write in order to add that feature to your application? Get unstuck by tapping into the massive number of lines of code that have already been written by other developers all around the world. All you have to do is just use &lt;a href="http://www.google.com/codesearch"&gt;Google Code Search&lt;/a&gt; to look for a piece of code similar or identical to the one you want to write. You can even specify in which programming language you want the code to be!&lt;br /&gt;&lt;br /&gt;The open source code has always been there, but the idea of instantly having access to any part of it and having Google pinpoint the exact piece of code you are looking for from among this enormous body of code is what makes the whole idea amazing. No need to reinvent the wheel anymore. Now that's what I call real usability of code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1792466051054849708?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1792466051054849708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1792466051054849708'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/reusability-redefined.html' title='Reusability Redefined'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6844827125073200307</id><published>2007-03-24T17:07:00.000+02:00</published><updated>2007-03-24T17:09:46.747+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='program'/><title type='text'>3D Character Creation Made Easy</title><content type='html'>&lt;a href="http://www.reallusion.com/iclone/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;iClone&lt;/span&gt;&lt;/a&gt; enables you to easily create animated 3D characters that can be used for creating 3D movies or for other &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;purposes&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6844827125073200307?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6844827125073200307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6844827125073200307'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/3d-character-creation-made-easy.html' title='3D Character Creation Made Easy'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5467329587533048048</id><published>2007-03-24T13:53:00.000+02:00</published><updated>2007-03-24T13:58:21.441+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Arabic'/><title type='text'>Google AdSense in Arabic</title><content type='html'>Google supports &lt;a href="http://adsense.blogspot.com/2006/08/blog-post.html"&gt;AdSense for Search in Arabic&lt;/a&gt;. I hope the day comes when Google finally starts to support &lt;a href="https://www.google.com/adsense/support/bin/answer.py?answer=17470&amp;amp;topic=8421"&gt;AdSense for content&lt;/a&gt; in Arabic as well. I believe it would be a tough thing for them though. First of all there is the linguistic difficulty of making being able to figure out what the content of the Arabic web page is about. Then comes the other even more difficult problem of managing click &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;fraud&lt;/span&gt; and similar &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;malicious&lt;/span&gt; abuse of the AdSense program.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5467329587533048048?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5467329587533048048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5467329587533048048'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/google-adsense-in-arabic.html' title='Google AdSense in Arabic'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-628498880035564589</id><published>2007-03-19T11:02:00.000+02:00</published><updated>2007-03-19T11:15:03.038+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Sending HTML Email with PHP</title><content type='html'>Here is an &lt;a href="http://www.php.net/function.mail#id4581817"&gt;example&lt;/a&gt; showing how to send HTML email using the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt; mail function.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-628498880035564589?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/628498880035564589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/628498880035564589'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/sending-html-email-with-php.html' title='Sending HTML Email with PHP'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-7652618947040190772</id><published>2007-03-18T11:09:00.000+02:00</published><updated>2007-03-18T11:19:00.666+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Data Visualization from Google</title><content type='html'>With &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Google's&lt;/span&gt; latest &lt;a href="http://googleblog.blogspot.com/2007/03/world-in-motion.html"&gt;acquisition&lt;/a&gt;, Google will be bring &lt;a href="http://en.wikipedia.org/wiki/Data_visualization"&gt;data &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;visualization&lt;/span&gt;&lt;/a&gt; to a much "wider audience." Is that why &lt;a href="http://docs.google.com/"&gt;Google Docs &amp;amp; Spreadsheets&lt;/a&gt; lacked charts till now? Was it a wait for an incredibly better way of visualizing data? Will Google add a presentation component to it's &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;arsenal&lt;/span&gt; of applications similar in a way to &lt;a href="http://office.microsoft.com/powerpoint"&gt;Microsoft PowerPoint&lt;/a&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-7652618947040190772?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7652618947040190772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7652618947040190772'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/data-visualization-from-google.html' title='Data Visualization from Google'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8877107743568300458</id><published>2007-03-15T14:49:00.000+02:00</published><updated>2007-03-15T14:57:22.873+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Egypt Business Plan Competition 2007</title><content type='html'>2 million LE in cash and services are the total prizes of the &lt;a href="http://www.tdfcomp.com/"&gt;Business Plan Competition&lt;/a&gt; which is being held for its &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;third&lt;/span&gt; consecutive year in 2007. The deadline for the online submission of executive summaries is April 1st 2007. So if you have a bright IT idea and the right business plan to back it, hurry up and apply.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8877107743568300458?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8877107743568300458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8877107743568300458'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/egypt-business-plan-competition-2007.html' title='Egypt Business Plan Competition 2007'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-2878312506863712118</id><published>2007-03-14T09:45:00.000+02:00</published><updated>2007-03-14T09:56:46.797+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><title type='text'>Yahoo Releases its AJAX Library into Open Source</title><content type='html'>&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;YUI&lt;/span&gt; or &lt;a href="http://developer.yahoo.com/yui/"&gt;Yahoo! User Interface Library&lt;/a&gt; is an open source library provided by Yahoo! that offers a rich set of code elements enabling user interface manipulation  with AJAX, JavaScript, DOM, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;DHTML&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CSS&lt;/span&gt;. You can &lt;a href="http://developer.yahoo.com/yui/download/"&gt;download &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;YUI&lt;/span&gt;&lt;/a&gt; from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Sourceforge&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Yahoo's user interface library is an attempt to answer back to Google's GWT or &lt;a href="http://code.google.com/webtoolkit/"&gt;Google Web Tookit&lt;/a&gt;. Here is where you can &lt;a href="http://code.google.com/webtoolkit/download.html"&gt;download GWT&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-2878312506863712118?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2878312506863712118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2878312506863712118'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/yahoo-releases-its-ajax-library-into.html' title='Yahoo Releases its AJAX Library into Open Source'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8475888448625404720</id><published>2007-03-12T11:20:00.000+02:00</published><updated>2007-03-12T11:24:41.645+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Creating a PHP Login System</title><content type='html'>&lt;a href="http://www.evolt.org/article/PHP_Login_System_with_Admin_Features/17/60384/index.html"&gt;PHP Login System with Admin Features&lt;/a&gt; shows you how to create a complete login system for your web site using PHP. Any web site that allows users to sign up would need some sort of login system. Not only does the above example give complete code to accomplish this, but it also goes ahead to explain the code so you can modify it to your liking later on according to your need.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8475888448625404720?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8475888448625404720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8475888448625404720'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/creating-php-login-system.html' title='Creating a PHP Login System'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4059756255943156891</id><published>2007-03-10T11:09:00.000+02:00</published><updated>2007-03-10T11:56:27.612+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile phone'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Google Calendar Supports SMS Notification in Egypt</title><content type='html'>I was so excited when the sound of an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SMS&lt;/span&gt; message arriving at my mobile phone jingled in my ears. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SMS&lt;/span&gt; was sent by Google to notify me of an event I had set in my &lt;a href="http://www.google.com/calendar/"&gt;Google Calendar&lt;/a&gt;. I have a &lt;a href="http://www.vodafone.com.eg/"&gt;Vodafone&lt;/a&gt; line in Egypt.&lt;br /&gt;&lt;br /&gt;The reason behind my excitement was that Google Calendar did offer support for SMS notification before, yet I found they only supported US carriers at the beginning. I had failed to add my mobile number to recieve SMS notification from Google Calendar in the past. Today, as I tried again, it worked. I was amazed. If you are in Egypt, you can use Google Calendar to keep track of your appointments and get free SMS notification for each appointment sent directly to your mobile phone. Here is how to &lt;a href="http://www.google.com/support/calendar/bin/answer.py?answer=45351&amp;amp;topic=8568"&gt;register your mobile phone with Google Calendar&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4059756255943156891?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4059756255943156891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4059756255943156891'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/google-calendar-supports-sms.html' title='Google Calendar Supports SMS Notification in Egypt'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5031064329858749770</id><published>2007-03-10T10:54:00.000+02:00</published><updated>2007-03-10T11:08:42.235+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Borland'/><title type='text'>Borland and PHP</title><content type='html'>&lt;a href="http://www.codegear.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;CodeGear&lt;/span&gt;&lt;/a&gt;, a &lt;a href="http://www.borland.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Borland&lt;/span&gt;&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;spinoff&lt;/span&gt;, has released &lt;a href="http://www.codegear.com/Products/Delphi/DelphiforPHP/tabid/237/Default.aspx"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Delphy&lt;/span&gt; for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PHP&lt;/span&gt;&lt;/a&gt;. That's an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;interesting&lt;/span&gt; concept. &lt;a href="http://en.wikipedia.org/wiki/Object_Pascal"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Delphy&lt;/span&gt;&lt;/a&gt; has been known as a visual &lt;a href="http://en.wikipedia.org/wiki/Rapid_application_development"&gt;RAD&lt;/a&gt; tool for developing applications based on the &lt;a href="http://en.wikipedia.org/wiki/Pascal_programming_language"&gt;Pascal&lt;/a&gt; programming language. As &lt;a href="http://www.php.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;PHP's&lt;/span&gt;&lt;/a&gt; popularity is souring, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;CodeGear&lt;/span&gt; decided to catch part of the action by introducing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;PHP&lt;/span&gt; support in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Delphy&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5031064329858749770?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5031064329858749770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5031064329858749770'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/borland-and-php.html' title='Borland and PHP'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-3303599699267966595</id><published>2007-03-08T10:12:00.000+02:00</published><updated>2007-03-08T10:19:13.899+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Show Files in Directory using PHP</title><content type='html'>This &lt;a href="http://www.php.net/readdir#id3231793"&gt;example&lt;/a&gt; shows how to use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt; to get a list of all files in the current directory. It p&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;roved&lt;/span&gt; to be handy when I wanted to create a list of links to all files in the directory. I wanted the list of inks to be updated automatically as I ad new files. The &lt;a href="http://www.php.net/readdir"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;readdir&lt;/span&gt;&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PHP&lt;/span&gt; commands has the solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-3303599699267966595?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3303599699267966595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3303599699267966595'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/show-files-in-directory-using-php.html' title='Show Files in Directory using PHP'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-2279686020189220532</id><published>2007-03-04T13:42:00.000+02:00</published><updated>2007-03-04T14:24:33.381+02:00</updated><title type='text'>Google Gives Machine Translation a Boost</title><content type='html'>I was once highly interested in the field of &lt;a href="http://en.wikipedia.org/wiki/Machine_translation"&gt;machine translation&lt;/a&gt; and even worked in that field at a software company in Egypt. I had written an introductory article about &lt;a href="http://www.egypt-it-jobs.com/resources/Machine_Translation.html"&gt;machine translation&lt;/a&gt; myself. I've always looked with interest on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Google's&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;attempts&lt;/span&gt; to provide &lt;a href="http://translate.google.com/"&gt;automatic translation&lt;/a&gt; of web sites and text.&lt;br /&gt;&lt;br /&gt;Now Google is taking a &lt;a href="http://googleblog.blogspot.com/2007/03/suggest-better-translation.html"&gt;qualitatively different&lt;/a&gt; and massive step towards machine translation that might spell the difference between success and failure in this difficult field of research that has proved hard for over 50 years. Google is now allowing users to suggest better translation themselves to the systems! &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Google's&lt;/span&gt; system will learn from such suggestions in order to avoid mistakes in future translation. The great wight I am giving to this approach is because of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Google's&lt;/span&gt; huge user base. Imagine all those people using &lt;a href="http://translate.google.com/"&gt;Google Translate&lt;/a&gt; being able to fix and enhance the translation of the system. Google again is harnessing the power of the people as it did when it made use of the &lt;a href="http://dmoz.org/"&gt;Open Directory&lt;/a&gt; and the &lt;a href="http://www.blogger.com/"&gt;blogging community&lt;/a&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;fed&lt;/span&gt; on links from both. I think with some time Google will be able to achieve what over 50 years of research in machine translation has failed till this very day to achieve, which is high quality automatic translation of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;unrestricted&lt;/span&gt; text. I am highly excited about this move the the possibilities it would open.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-2279686020189220532?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2279686020189220532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2279686020189220532'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/google-gives-machine-translation-boost.html' title='Google Gives Machine Translation a Boost'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4317345470243092160</id><published>2007-03-01T11:16:00.000+02:00</published><updated>2007-03-01T11:53:57.617+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>"What's my Name?" Asks PHP</title><content type='html'>&lt;a href="http://php.net/reserved.variables#reserved.variables.server"&gt;$_SERVER['&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt;&lt;/span&gt;_SELF']&lt;/a&gt; returns the PHP &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;filename&lt;/span&gt;&lt;/span&gt; in which the script is running. It &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;turns &lt;/span&gt;out to be handy at many occasions when you need to use the name of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PHP&lt;/span&gt;&lt;/span&gt; file in which the script is running.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4317345470243092160?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4317345470243092160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4317345470243092160'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/03/whats-my-name-asks-php.html' title='&quot;What&apos;s my Name?&quot; Asks PHP'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-2295619659661358919</id><published>2007-02-28T12:50:00.000+02:00</published><updated>2007-02-28T12:56:55.278+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Google Builds a Network of Partners</title><content type='html'>For a company to succeed well on the long run, it should make sure there are many who are benefiting from its &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;existence&lt;/span&gt; and its growth. Microsoft has long been building a far reaching network of partners and so has IBM and many other large companies. The partner network of a company helps keep the company strong and ties the success of many businesses to the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;continued&lt;/span&gt; growth and strength of that company. This is what Google is now trying to build and extend, a network of partners who build their services around Google Apps. Here is a list of &lt;a href="http://www.google.com/enterprise/gallery/"&gt;Google partners&lt;/a&gt; that are offering services and solutions around &lt;a href="http://www.google.com/a/enterprise/"&gt;Google Apps&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-2295619659661358919?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2295619659661358919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2295619659661358919'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/google-builds-network-of-partners.html' title='Google Builds a Network of Partners'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6256566749359210260</id><published>2007-02-27T12:28:00.000+02:00</published><updated>2007-02-27T13:06:50.174+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>The Anchor Tag</title><content type='html'>I used to think that the only way to make internal links inside a web page pointing to sections found in the same web page was to surround the target section with an anchor tag like this:&lt;blockquote&gt;&amp;lt;a href="section-name"&amp;gt;Some Link Text&amp;lt;/a&amp;gt;&lt;/blockquote&gt;I just by coincidence while scanning the W3C documentation for anchor tags discovered that there is &lt;a href="http://www.w3.org/TR/html4/struct/links.html#h-12.2.3"&gt;another method&lt;/a&gt; which in my case proved to be easier and more compact.&lt;br /&gt;Let's say you have a section in your web page titled as follows:&lt;blockquote&gt;&amp;lt;h2&amp;gt;My Section&amp;lt;/h2&amp;gt;&lt;/blockquote&gt;If I wanted to link to such a section, I would modify it as follows:&lt;blockquote&gt;&amp;lt;h2&amp;gt;&amp;lt;a name="section-name"&amp;gt;My Section&amp;lt;/a&amp;gt;&lt;/blockquote&gt;But I discovered that I can alternatively write it as follows:&lt;blockquote&gt;&amp;lt;h2 id="section-name"&amp;gt;My Section&amp;lt;/h2&amp;gt;&lt;/blockquote&gt;This has the exact same effect as the first method and looks neater and easier to write.&lt;br /&gt;&lt;br /&gt;By the way, using internal anchors and linking to them from the same web page helps a lot in search engine optimization (SEO). Google seems to love web pages that have such links in them. They give spiders many clues and Google just loves this and usually ranks such web pages high.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6256566749359210260?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6256566749359210260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6256566749359210260'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/anchor-tag.html' title='The Anchor Tag'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-7626323110417720870</id><published>2007-02-26T20:29:00.000+02:00</published><updated>2007-02-26T20:42:42.250+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Dell is Listening</title><content type='html'>&lt;a href="http://www2.blogger.com/www.dellideastorm.com"&gt;Dell &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;IdeaStorm&lt;/span&gt;&lt;/a&gt; is a web site launched by &lt;a href="http://www.dell.com/"&gt;Dell&lt;/a&gt; to act as a place for users to give feedback on Dell's products and spell out their wishes for future &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;products&lt;/span&gt;. An interesting way to keep an eye on what customers want as well as an excellent source of new ideas for designing new products. Reminds me of how Google is keeping an open ear and eagerly taking in user feedback.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-7626323110417720870?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7626323110417720870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/7626323110417720870'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/dell-is-listening.html' title='Dell is Listening'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6549924392657722619</id><published>2007-02-25T14:00:00.000+02:00</published><updated>2007-02-25T14:06:19.772+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHP Flavored Eclipse</title><content type='html'>The &lt;a href="http://www.eclipse.org/php/"&gt;PDT Project&lt;/a&gt; is promising to offer a distinctive &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt; flavor to the &lt;a href="http://www.eclipse.org/php/"&gt;Eclipse &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;IDE&lt;/span&gt;&lt;/a&gt;. the PDT is still in its infancy, yet as it matures, it might be a strong contender to other &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt; development tools out there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6549924392657722619?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6549924392657722619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6549924392657722619'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/eclipse-php-flavored.html' title='PHP Flavored Eclipse'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6377587237787816106</id><published>2007-02-25T13:16:00.000+02:00</published><updated>2007-02-25T13:24:24.443+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Tracking External Clicks</title><content type='html'>&lt;a href="https://www.google.com/analytics/"&gt;Google Analytics&lt;/a&gt; allows you to track traffic coming to your web site. It's an excellent too and its free.&lt;br /&gt;&lt;br /&gt;I wanted to also track how many people who are visiting my blog click on a specific link I have on the blog. The link I want to track clicks on points to an external site and not to a web page in the blog itself. I have just discovered by mere &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;coincidence&lt;/span&gt; that Google Analytics allows you to do this as well using a function called &lt;a href="https://www.google.com/support/analytics/bin/answer.py?answer=27246"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;urchinTracker&lt;/span&gt;&lt;/a&gt;. Now I can know how many people visiting my blog have clicked on that specific link and visited the external site it is pointing too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6377587237787816106?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6377587237787816106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6377587237787816106'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/tracking-external-clicks.html' title='Tracking External Clicks'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5981772791849231003</id><published>2007-02-25T00:50:00.000+02:00</published><updated>2007-02-25T00:57:33.738+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seminar'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>IT Seminars in Egypt</title><content type='html'>The idea just crossed my mind. Why not make some form of meetings where some of the IT enthusiasts in Egypt get together and watch a one-hour preselected &lt;a href="http://video.google.com/googleplex.html"&gt;Google &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;TeckTalk&lt;/span&gt;&lt;/a&gt; then discuss it together after watching focusing in particular on how such technology can be used to improve our daily work in the software industry in Egypt. That could be a series of seminars in which we watch a different &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;TeckTalk&lt;/span&gt; each time. Perhaps this can help fuel things up and encourage more software developers to act as a catalyst in technology transfer to Egypt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5981772791849231003?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5981772791849231003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5981772791849231003'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/it-seminars-in-egypt.html' title='IT Seminars in Egypt'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-184546345038703035</id><published>2007-02-24T21:26:00.000+02:00</published><updated>2007-02-24T21:38:25.043+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>AJAX Chat</title><content type='html'>Chat on the web has been implemented mostly using Java applets. Another &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;rudimentary&lt;/span&gt; web chat method was dong by automatically refreshing the web page. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ActiveX&lt;/span&gt; was also an option for implementing chat on the web.&lt;br /&gt;&lt;br /&gt;AJAX now is a new contender to the mix and enters as an interesting method for enabling chat on the web. Here is a very &lt;a href="http://www.linuxuser.at/index.php?title=Most_Simple_Ajax_Chat_Ever"&gt;simple AJAX chat room&lt;/a&gt; created with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt; code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-184546345038703035?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/184546345038703035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/184546345038703035'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/ajax-chat.html' title='AJAX Chat'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-9208399332467489333</id><published>2007-02-22T19:45:00.000+02:00</published><updated>2007-02-22T19:52:26.501+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Goes Beyond Ad Supported Services</title><content type='html'>Google has based its business around ad supported services with the few exceptions of its search appliances. Now Google seems to be pushing towards a dual business model in which it provides some free ad supported services and other ad free services in return for a fee. Google is now offering a &lt;a href="http://googleblog.blogspot.com/2007/02/google-apps-grows-up.html"&gt;business edition of Google Apps&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The premier edition of Google Apps is costs $50 per user account per year. The standard edition is free and is supported by ads. Here is a &lt;a href="http://www.google.com/a/help/intl/en/admins/editions.html"&gt;comparison between the two editions&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-9208399332467489333?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/9208399332467489333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/9208399332467489333'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/google-goes-beyond-ad-supported.html' title='Google Goes Beyond Ad Supported Services'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-2443156069527342042</id><published>2007-02-21T09:45:00.000+02:00</published><updated>2007-02-21T10:07:35.088+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><category scheme='http://www.blogger.com/atom/ns#' term='jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Microsoft Egypt is Hiring</title><content type='html'>&lt;a href="http://www.microsoft.com/egypt/"&gt;Microsoft&lt;/a&gt; is launching its new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;CMIC&lt;/span&gt;, Cairo Microsoft &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Innovation&lt;/span&gt; Center, in the &lt;a href="http://www.smart-villages.com/"&gt;Smart Village&lt;/a&gt;. They are recruiting bright Egyptian software engineers in their &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CMIC&lt;/span&gt;. If you got what it takes to work at Microsoft, apply for &lt;a href="http://www.microsoft.com/middleeast/egypt/english/Careers/"&gt;a job at the Microsoft Egypt.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-2443156069527342042?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2443156069527342042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2443156069527342042'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/microsoft-egypt-is-hiring.html' title='Microsoft Egypt is Hiring'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1153475523094903302</id><published>2007-02-19T15:59:00.000+02:00</published><updated>2007-02-19T17:04:46.930+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Mona Hired by Microsoft USA</title><content type='html'>&lt;a href="http://blogs.msdn.com/jobsblog/archive/2007/01/25/meet-mona-from-egypt-to-seattle.aspx"&gt;Mona&lt;/a&gt; was among several &lt;a href="http://cis.shams.edu.eg/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;FCIS&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Ain&lt;/span&gt; Shams&lt;/a&gt; 2005 graduates whom joined Microsoft in USA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1153475523094903302?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1153475523094903302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1153475523094903302'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/mona-hired-by-microsoft-usa.html' title='Mona Hired by Microsoft USA'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-653242697909124882</id><published>2007-02-19T12:48:00.000+02:00</published><updated>2007-02-19T12:52:01.546+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Python Tutorial</title><content type='html'>&lt;a href="http://www.python.org/"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Python&lt;/span&gt;&lt;/a&gt; is an object oriented scripting language used for developing web &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;applications&lt;/span&gt;. It is not as popular as &lt;a href="http://www.php.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt;&lt;/a&gt;, yet it's code is neater and cleaner. Google uses Python extensively in its web applications. Here is a basic &lt;a href="http://docs.python.org/tut/"&gt;python tutorial&lt;/a&gt; for new comers to this cool scripting language.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-653242697909124882?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/653242697909124882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/653242697909124882'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/python-tutorial.html' title='Python Tutorial'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8417850547945610367</id><published>2007-02-19T11:37:00.000+02:00</published><updated>2007-02-19T11:42:45.333+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHP Reading List</title><content type='html'>I came &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;across&lt;/span&gt; this interesting &lt;a href="http://www-128.ibm.com/developerworks/opensource/library/os-php-read/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PHP&lt;/span&gt; reading list&lt;/a&gt; compiled by IBM. There is too much online material about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt; to read, you may get lost trying to figure out what is worth reading and what is not, where to go for specific information you want or from where to start. This guide provides you with a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;road map&lt;/span&gt; of some of the materials about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PHP&lt;/span&gt; that are worth reading. It also organizes things so that you can know where to go when you are looking for some specific thing.&lt;br /&gt;&lt;br /&gt;IBM is a great supporter for open source. Google is another strong supporter of open source as well. I wonder when or if ever will Microsoft follow suit. Probably not.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8417850547945610367?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8417850547945610367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8417850547945610367'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/php-reading-list.html' title='PHP Reading List'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8202202311517681983</id><published>2007-02-18T20:30:00.000+02:00</published><updated>2007-02-18T20:33:43.476+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='course'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Introduction to Neural Networks</title><content type='html'>I came across this &lt;a href="http://www.willamette.edu/~gorr/classes/cs449/intro.html"&gt;neural networks course&lt;/a&gt;. It looks interesting and can act as a good &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;introducing&lt;/span&gt; to this interesting field of computer science.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8202202311517681983?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8202202311517681983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8202202311517681983'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/introduction-to-neural-networks.html' title='Introduction to Neural Networks'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-3626618317402864563</id><published>2007-02-18T12:08:00.000+02:00</published><updated>2007-02-18T12:17:26.609+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google SourceForge</title><content type='html'>&lt;a href="http://sourceforge.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SourceForge&lt;/span&gt;&lt;/a&gt; has by far been the most popular place to host open source project. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Freshmeat&lt;/span&gt; is one other popular home for open source projects. It's interesting that Google itself is entering this field and offering a place to &lt;a href="http://code.google.com/hosting/"&gt;host open source projects&lt;/a&gt; as well.&lt;br /&gt;&lt;br /&gt;Sure Google aims to pushing open source to the limits by doing so. I've had a look at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Google's&lt;/span&gt; open source hosting service and found it to be very clear and clean. It is easy to use and I believe would be so &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;convenient&lt;/span&gt; for hosting open source projects. I believe this would give a boost to the open source community. Unlike with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SourceForge&lt;/span&gt;, you do not have to wait till your project gets approved when hosting it with Google. I remember trying to host an open source project at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SourceForge&lt;/span&gt; before, when it finally got accepted, I found it extremely difficult to know how to get about performing any sort of actions on their site. I believe the simplicity Google is introducing for open source project hosting would create a positive boom in the open source community helping it expand dramatically.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-3626618317402864563?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3626618317402864563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/3626618317402864563'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/google-sourceforge.html' title='Google SourceForge'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5977489761702022861</id><published>2007-02-18T11:35:00.000+02:00</published><updated>2007-02-18T11:44:16.983+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Egypt'/><title type='text'>Egyptian Students in Google Competition</title><content type='html'>I hope that starting from March, bright intelligent Egyptian computer science students would be joining &lt;a href="http://code.google.com/soc/"&gt;Google Summer of Code&lt;/a&gt; 2007. It is an excellent &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;opportunity&lt;/span&gt; to showcase our talent to the world and in the process be exposed to a lot of experience while entering such programming contests. I believe &lt;a href="http://www.fci-cu.edu.eg/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;FCI&lt;/span&gt;&lt;/a&gt;, Cairo University and &lt;a href="http://cis.shams.edu.eg/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;FCIS&lt;/span&gt;&lt;/a&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Ain&lt;/span&gt; Shams University should look seriously at propelling their bright students through such an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;opportunity&lt;/span&gt; at &lt;a href="http://code.google.com/soc/"&gt;Google Summer of Code&lt;/a&gt; 2007.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5977489761702022861?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5977489761702022861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5977489761702022861'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/egyptian-students-in-google-competition.html' title='Egyptian Students in Google Competition'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1883528973451935213</id><published>2007-02-17T14:28:00.000+02:00</published><updated>2007-02-17T14:33:40.712+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Dojo - A JavaScript Toolkit</title><content type='html'>&lt;a href="http://dojotoolkit.org/"&gt;D0&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;jo&lt;/span&gt;&lt;/a&gt; is a JavaScript toolkit that provides an impressive library packed with JavaScript functionality including AJAX and much more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1883528973451935213?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1883528973451935213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1883528973451935213'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/dojo-javascript-toolkit.html' title='Dojo - A JavaScript Toolkit'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5960026821335968450</id><published>2007-02-17T09:12:00.000+02:00</published><updated>2007-02-17T09:16:18.333+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>Amaya - W3C's Web Editor</title><content type='html'>&lt;a href="http://www.w3.org/Amaya/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Amaya&lt;/span&gt;&lt;/a&gt; is an open source web editor hosted by the &lt;a href="http://www.w3.org/"&gt;W3C&lt;/a&gt; themselves. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Amaya&lt;/span&gt; supports HTML, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CSS&lt;/span&gt;, XML, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;XHTML&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;MathML&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SVG&lt;/span&gt; and other XML applications. The interesting thing is that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Amaya&lt;/span&gt; is both a web editor and a web browser at the same time! A lovely concept promoted by the W3C.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5960026821335968450?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5960026821335968450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5960026821335968450'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/amaya-w3cs-web-editor.html' title='Amaya - W3C&apos;s Web Editor'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-2420867194141500352</id><published>2007-02-15T09:01:00.000+02:00</published><updated>2007-02-15T09:14:05.807+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Database Migrations for Agile Web Development</title><content type='html'>I love the concept of &lt;a href="http://www.rubyonrails.org/api/classes/ActiveRecord/Migration.html"&gt;migrations&lt;/a&gt; found in &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;. It allows you to use an agile methodology when developing web applications. You do not have to make a the full database design first before starting to develop your web application, you can start with a partial database design, make a working application then gradually evolve it in an easy way by adding more and more functionality till it reaches the full functionality you need.&lt;br /&gt;&lt;br /&gt;The key here is that database migrations in Ruby on Rails make very easy to go back and forth between more or less functionality in the system you are building. I really hope that &lt;a href="http://www.php.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt;&lt;/a&gt; would have some similar easy way that supports migrations. That way  going truly agile with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PHP&lt;/span&gt; would be possible as is the case with Ruby on Rail.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-2420867194141500352?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2420867194141500352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2420867194141500352'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/database-migrations-for-agile-web.html' title='Database Migrations for Agile Web Development'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-2610631978603090454</id><published>2007-02-14T01:06:00.000+02:00</published><updated>2007-02-12T18:41:09.156+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Free PHP Book</title><content type='html'>There is an interesting free &lt;a href="http://hudzilla.org/phpwiki/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt; book&lt;/a&gt; that has been put in wiki form. It can be a good start for absolute beginners to &lt;a href="http://www.php.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PHP&lt;/span&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-2610631978603090454?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2610631978603090454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2610631978603090454'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/free-php-book.html' title='Free PHP Book'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-4163962412763956835</id><published>2007-02-12T18:34:00.000+02:00</published><updated>2007-02-12T18:33:57.971+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Class Vs. ID in CSS</title><content type='html'>I've had this question in mind of several years by now. What is &lt;em&gt;really&lt;/em&gt; the difference between using ID and using class in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;CSS&lt;/span&gt;. I Googled it for years but just couldn't get it despite reading the many attempts to answer this question. Still I did not completely comprehend the difference between using them and why we needed two different methods in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;CSS&lt;/span&gt; to for styling.&lt;br /&gt;&lt;br /&gt;That was &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;until&lt;/span&gt; I got, by chance, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;across&lt;/span&gt; the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;most&lt;/span&gt; clearly stated answer I have ever seen. Here is &lt;a href="http://www2.blogger.com/Should%20you%20use%20ID%20or%20class?"&gt;the difference between ID and class in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;CSS&lt;/span&gt;&lt;/a&gt;. Not only does this make clear the difference between them, but it also gives direction to when to use each.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-4163962412763956835?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4163962412763956835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/4163962412763956835'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/class-vs-id-in-css.html' title='Class Vs. ID in CSS'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-2666076471851902471</id><published>2007-02-12T17:34:00.001+02:00</published><updated>2007-02-12T17:34:33.425+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='program'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>HSQL in OpenOffice</title><content type='html'>&lt;a href="http://www.openoffice.org/product/base.html"&gt;Base&lt;/a&gt; is part of &lt;a href="http://www.openoffice.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;OpenOffice&lt;/span&gt;.org&lt;/a&gt;. Think of it as the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;equivalent&lt;/span&gt; of &lt;a href="http://office.microsoft.com/access/"&gt;Access&lt;/a&gt; in &lt;a href="http://office.microsoft.com/"&gt;Microsoft Office&lt;/a&gt;. The interesting thing is that Base enables you to work with your own database created in any any of several database management &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;system&lt;/span&gt; including &lt;a href="http://www.mysql.com/"&gt;MySQL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Base uses the &lt;a href="http://hsqldb.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;HSQL&lt;/span&gt; database engine&lt;/a&gt; to achieve its work. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;HSQL&lt;/span&gt; looks interesting. I wonder if it will expand and have more uses than just being the database core of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;OpenOffice&lt;/span&gt;.org suit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-2666076471851902471?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2666076471851902471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/2666076471851902471'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/hsql-in-openoffice.html' title='HSQL in OpenOffice'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6216319800526516960</id><published>2007-02-11T18:08:00.000+02:00</published><updated>2007-02-11T15:03:56.019+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='wordprocessing'/><title type='text'>Yet Another Word Processor</title><content type='html'>I used to use &lt;a href="http://www.microsoft/word/"&gt;Microsoft Word&lt;/a&gt; as my word processor. Later I toyed with the freely available open source &lt;a href="http://www.openoffice.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;OpenOffice&lt;/span&gt;&lt;/a&gt; for a while yet Microsoft Word felt more familiar so I stayed with it. Now that I've tasted &lt;a href="http://docs.google.com/"&gt;Google Docs &amp; Spreadsheets&lt;/a&gt;, there is no way I'll go back to Microsoft Word, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;OpenOffice&lt;/span&gt; or any other type of offline word processor. Google Docs is just so great in it's simplicity and collaboration features that make getting back to offline word processors lame.&lt;br /&gt;&lt;br /&gt;Today I discovered yet another word processor that seems to have been out there for quite a while but I just did not happen to know about it. &lt;a href="http://www.abisource.com/screenshots/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;AbiWord&lt;/span&gt;&lt;/a&gt; is it's name for those of you &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;wh&lt;/span&gt;0 would still like to use an offline word processor and want a free alternative to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;OpenOffice&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6216319800526516960?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6216319800526516960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6216319800526516960'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/yet-another-word-processor.html' title='Yet Another Word Processor'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-5339499152210116807</id><published>2007-02-11T14:53:00.000+02:00</published><updated>2007-02-11T15:02:48.413+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='social networking'/><title type='text'>Build your Own Social Networking Site</title><content type='html'>I've been looking with a lot of interest and admiration to the booming phenomenon of &lt;a href="http://en.wikipedia.org/wiki/Social_networking_sites"&gt;social networking web site&lt;/a&gt;. I've been wanting to harness the power of social networking in a site of my own. This dream has been in my mind for long, but really did not have the energy to write the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt; code for building such a site from scratch. I therefore kept looking for some ready made open source system that does social networking. I had no success in locating any open source social networking system that would be mature enough for a production site. I once considered &lt;a href="http://drupal.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Drupal&lt;/span&gt;&lt;/a&gt;, but it did not really do the trick of social networks, maybe in the future it would add social networking features. I do hope it will.&lt;br /&gt;&lt;br /&gt;In the meantime, I just came across an interesting open source system that does open source. It is called &lt;a href="http://elgg.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Elgg&lt;/span&gt;&lt;/a&gt;. My dream can now come true without having to worry about coding a social network from scratch. All I have to do now is just install it and my social networking site is ready!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-5339499152210116807?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5339499152210116807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/5339499152210116807'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/build-your-own-social-networking-site.html' title='Build your Own Social Networking Site'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-8054195004192040757</id><published>2007-02-10T13:39:00.000+02:00</published><updated>2007-02-09T17:16:10.716+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>What Makes an Excellent Tutorial?</title><content type='html'>I got &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;across&lt;/span&gt; this &lt;a href="http://css.maxdesign.com.au/listutorial/horizontal01.htm"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;CSS&lt;/span&gt; tutorial&lt;/a&gt; by chance while Googling around for a specific &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CSS&lt;/span&gt; question. The tutorial explains how to make a horizontal menu by styling an HTML list using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CSS&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;What I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;really&lt;/span&gt; loved about this tutorial was the method by which it guided you through the steps. It's really an excellent example of what a good tutorial should be made of. First of all, it follows a gradual approach to building the final thing. It goes only one small step at a time. It uses very simple, short and clear titles for each step. It shows how the outcome of each step would look like. Finally, it shows the code needed for each step, clearly pointing out the newly added code in that step with a different color. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Googling&lt;/span&gt; through this tutorial was a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;peaceful&lt;/span&gt; and lovely trip, I didn't even need to read the instructions written in it, just following the title of each step, the code and its highlighted section and seeing the outcome of that step was enough to make me understand and absorb all the information. Hands up for this tutorial. I hope others creating tutorials would use this one as an ideal model for how excellent tutorials should be done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-8054195004192040757?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8054195004192040757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/8054195004192040757'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/what-makes-excellent-tutorial.html' title='What Makes an Excellent Tutorial?'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-6451261399088084323</id><published>2007-02-09T09:54:00.000+02:00</published><updated>2007-02-08T16:27:42.708+02:00</updated><title type='text'>Association for Computing Machinery</title><content type='html'>&lt;a href="http://www.acm.org/"&gt;ACM&lt;/a&gt;, the Association for Computing Machinery, is the world's first educational and scientific computing society.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-6451261399088084323?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.acm.org/' title='Association for Computing Machinery'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6451261399088084323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/6451261399088084323'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/association-for-computing-machinery.html' title='Association for Computing Machinery'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-35626171.post-1638636122727543191</id><published>2007-02-07T15:33:00.000+02:00</published><updated>2007-02-07T15:58:24.624+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genie'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Manage Email Traffic With Gmail Filters</title><content type='html'>My clients ask me to put job ads for them. They expect to receive CVs of interested candidates in their email boxes. So I write the email address of my client in the job ad so that interested candidates can send their CVs to that email box at once.&lt;br /&gt;&lt;br /&gt;The problem with this is that I do not get to track how many CVs my client has received as a result of the job ad I had put for him. I get no idea about the results of the job ad. Each time I have to ask my clients about the results, and even then I do not get a full picture still.&lt;br /&gt;&lt;br /&gt;I later thought of putting my own email address in the job ad instead of the email address of my client. Now CVs will all come to me first. But given the large number of CVs that each job ad I send creates, manually forwarding each CV that arrives to each client would be a tedious job, not to mention error prone.&lt;br /&gt;&lt;br /&gt;Now gmail's filter feature comes to the rescue. First of all, I have &lt;a href="http://www.cpanel.net/docs/cpanel/Forwarders.htm"&gt;set up an auto forward&lt;/a&gt; to forward all email coming to my cv @ egypt-it-jobs.com email to go to my gmail account. From there, I have set up a &lt;a href="http://mail.google.com/support/bin/answer.py?answer=6579"&gt;filter&lt;/a&gt; for each job ad I post. The each filter forwards all incoming email that was sent to cv @ egypt-it-jobs.com to the appropriate client depending on a numeric code that candidates write in the subject line. Each job ad has a different numeric code and in the job ad I instruct candidates to write it in the subject line of the email that contains their CV.&lt;br /&gt;&lt;br /&gt;The only problem with this system is that some candidates do not follow the instructions I have given in the job ad and do not write the job ad code in the subject line of their email when sending their CV to me. Of course in this case the automatic forwarding of the filter does not work and I have to manually forward their email to the correct client. Yet again the percentage of those whom do not follow my clear instructions in the job ad is small. Moreover, usually such candidates either do not possess the ability to read, understand and follows instructions or are not interested enough in the job ad to read it carefully. In both cases such candidates are not really a desirable type of candidates to be selected for the job, so missing their CVs is not a big loss, actually it is a gain, for it saves my client from going through bad CVs.&lt;br /&gt;&lt;br /&gt;Other than that, the system has worked great automatically forwarding the incoming candidate CVs to the appropriate client and keeping a copy in my inbox for later review or just to count the number of CVs that have been sent as a result of each job ad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35626171-1638636122727543191?l=egyptsoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1638636122727543191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35626171/posts/default/1638636122727543191'/><link rel='alternate' type='text/html' href='http://egyptsoftware.blogspot.com/2007/02/manage-email-traffic-with-gmail-filters.html' title='Manage Email Traffic With Gmail Filters'/><author><name>Ashraf Al Shafaki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-J-8ENZi-yh0/AAAAAAAAAAI/AAAAAAAAAAA/lOEZ_DHP0qM/s512-c/photo.jpg'/></author></entry></feed>
