Thursday, June 14, 2007
Selling my IT Recruitment Agency
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 www.genie-jobs.com within the following two months.
Wednesday, June 13, 2007
Hosni Mubarak in Google Timeline View
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 Hosni Mubarak. 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.
Tuesday, June 12, 2007
Google Business Plan Competition
Google.org is supporting a Business Plan Competition in Tanzania. I hope Google supports a similar program in Egypt. Perhaps Google may be sponsoring the 2008 Business Plan Competition in Egypt.
Wednesday, June 06, 2007
Arabic Spelling Check in Gmail
I was thrilled today while replying in Arabic to an email sent to me when my hand automatically pointed and clicked on the check spelling link in gmail 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 checker in gmail supported English but not Arabic. Google is bringing 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.
Thursday, May 31, 2007
Microsoft Surface
Microsoft has created a nice piece of furniture: 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 Microsoft Surface. 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 simultaneously to manipulate screen objects.
Wednesday, May 30, 2007
Binary Clocks!
No, it has nothing to do with atomic clocks. A binary clock operates the same way as other digital clocks, except that intead of displaying decimal numbers it shows binary numbers as its output!
Google Developer Tools
Google has attacked Microsoft head-on through it's Google Apps which is positioned to take over Microsoft Office. 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 Firefox to compete with Microsoft's Internet Explorer web browser. Google Desktop and its Gadgets are also present a strong blow attempting to take ground from Microsoft.
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 Google Web Toolkit. What's interesting is Google's between-the-lines announcement today that it needs to hire engineers at its Chicago branch to join other "Chicago engineers [who] are currently working on Open Source and developer tools." So it seems Google is focusing more and more on releasing developer tools. Let's see if that will have any effect on Microsoft Visual Studio's future.
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 Google Web Toolkit. What's interesting is Google's between-the-lines announcement today that it needs to hire engineers at its Chicago branch to join other "Chicago engineers [who] are currently working on Open Source and developer tools." So it seems Google is focusing more and more on releasing developer tools. Let's see if that will have any effect on Microsoft Visual Studio's future.
Friday, May 25, 2007
Internet in the Desert
Vodafone Egypt now offers a bunch of 3G services including the 3G Light Box which allows you to connect a small group of computers to the Internet even if you are at a remote area in Egypt.
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 ADSL there, so the practical solution could be one of Vodafone's 3G solutions. As for pricing, 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 ADSL connection.
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 ADSL there, so the practical solution could be one of Vodafone's 3G solutions. As for pricing, 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 ADSL connection.
Folders and Tags Coexist
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.
Google has particularly made this idea clear by it's then revolutionary design decision to drop folders and go for tags in gmail. In its beta verson of Yahoo! Bookmarks, 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 convenient to give them. Perhaps tags would 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?
Google has particularly made this idea clear by it's then revolutionary design decision to drop folders and go for tags in gmail. In its beta verson of Yahoo! Bookmarks, 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 convenient to give them. Perhaps tags would 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?
Wednesday, May 23, 2007
Google Reveals Search Spikes
Google Hot Trends is a new exciting feature of Google Trends that Google has recently announced. Hot Trends is a daily monitor of unpredictable anomalies or spikes in search patterns. A search query that suddenly receives a much higher than usual amount of hits would be one featured at Hot Trends. In Google words:
I just hope this list does not become to popular that it would make a loopback effect similar to the one experienced at Google Video due to the presence of the popular videos list.
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.The part I like the best about Hot Trends is showing an amalgam 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 mashups resurface again in our minds as a viable hot 'trend' possibly marking the future of the web.
I just hope this list does not become to popular that it would make a loopback effect similar to the one experienced at Google Video due to the presence of the popular videos list.
Tuesday, May 22, 2007
IBM Releases Fastest Processor
IBM has released POWER6, 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 consume more energy or electricity than its slower predecessor.
C++ Contest - Temple of the Sun
Show off your C++ programming skills and have a chance of winning $5000. Temple of the Sun is a game developed in Java. It aims at attracting C++ developers. The game is developed by Sun Microsystems, so the pun is intended.
Saturday, May 19, 2007
Autosave Now in Blogger
It's interesting that now Blogger has the autosave 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 autosave feature is already present in Googld Docs & Spreadshets.
Thursday, May 17, 2007
Yahoo Mail Messenger Merge
When Google made it possible to chat from with gmail without the need to use Google Talk it was considered a breakthrough and a really creative idea. Now Yahoo is following suit by allowing members to chat from within their Yahoo mail without needing to use Yahoo Messenger.
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.
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.
Monday, May 14, 2007
More Children in Egypt go Online
In its Internet Shadows article, Al-Ahram Weekly examines the effect of the Internet on the increasing number of Egyptian children that are going online.
Thursday, May 10, 2007
AdSense Referrals Beta
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.
Google is now offering AdSense Referrals Beta for select group of its publishers. The idea is not a new one, it has been out there long time ago and I remember Yahoo HotJobs 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 Commission Junction that Yahoo used back then for such referral opportunity.
I consider this as the peak of advertising and that it would entice many advertisers into using AdWords 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.
Google is now offering AdSense Referrals Beta for select group of its publishers. The idea is not a new one, it has been out there long time ago and I remember Yahoo HotJobs 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 Commission Junction that Yahoo used back then for such referral opportunity.
I consider this as the peak of advertising and that it would entice many advertisers into using AdWords 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.
Wednesday, May 09, 2007
Software Testers in Egypt
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.
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 ITI 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.
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.
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.
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 ITI 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.
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.
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.
Monday, May 07, 2007
CSS3 Supports RGBA Colors
I've always been using the RGB, Reg-Green-Blue, color model when teaching HTML and CSS. It's interesting that now with CSS3 a new fourth letter has been introduced to the popular three, namely the letter 'A'. With CSS3, one can specify colors using 4 values instead of 3. The fourth value 'A' stands for Alpha. CSS3's support for RGBA color values will make life way easier for web designers. However, we'll have to wait till browsers fully adopt CSS3 and users actually use those new versions of the browsers.
Friday, May 04, 2007
Semiconductor Chips Designed in Egypt!
Newport Media, based in California, USA, has decided to have an R&D facility in Egypt for designing semiconductor chips! Get to know more about this exciting news from May's article at Business Today Egypt magazine.
It's interesting that their presence in Cairo is at Masaken El Sheraton.
It's interesting that their presence in Cairo is at Masaken El Sheraton.
Wednesday, May 02, 2007
Semi-Finalists in Egypt Business Plan Competition
The semi-finalists for the Business Plan Competition of 2007 held in Egypt have been announced.
Tuesday, May 01, 2007
Linux and Windows XP on Dell Computers
It's interesting that after offering Windows Vista on its new computers, Dell is now offering new computers with Windows XP on them. Dell followed this by introducing new Dell desktops and laptops with Ubnutu, a popular Linux distro, installed on them instead of Windows. It seems Linux is starting to take over on mainstream computers. This is sure a hard time on Microsoft.
Microsoft Fights Back with Silverlight
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.
Now Microsoft is fighting back with Silverlight, 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.
Now Microsoft is fighting back with Silverlight, 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.
Google Spreadsheets Now Have Charts
At long last, Google has added charts functionality to Google Docs & Spreadsheets. The feature has been in high demand and now the wait is over. It is interesting that Google's addition of charts to its online spreadsheets application comes exactly one month after Google's acquisition of data visualization software from Gapminder.
Monday, April 23, 2007
PHPTriad Successor
In my early days with PHP, I used to love PHPTriad which installed and configured PHP, Apache and MySQL on my Windows 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 PHPTriad was a killer package back then.
As PHPTriad was ditched and not maintined, it was no longer an option, since it did not keep up with new versions of PHP, MySQL and Apache. Despite a recent renewed interest in the resurrection of PHPTriad under the new name of Sokkit, which is a commercial alternative, yet another free open source alternative seems to be on the rise.
XAMPP is the strong PHPTriad alternative, adequately replacing it and filling the gap. It is available for a number of different platforms.
As PHPTriad was ditched and not maintined, it was no longer an option, since it did not keep up with new versions of PHP, MySQL and Apache. Despite a recent renewed interest in the resurrection of PHPTriad under the new name of Sokkit, which is a commercial alternative, yet another free open source alternative seems to be on the rise.
XAMPP is the strong PHPTriad alternative, adequately replacing it and filling the gap. It is available for a number of different platforms.
Creating Site Search with PHP
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 PHP as this ONLamp article shows.
Nile University in Egypt
Nile University was established last year in the Smart Village. It's "Unlike existing universities in Egypt, it is intended to be ... specialized in graduate education and research." Currently it offers three masters programs.
Nile University is "dedicated primarily to excellence in technology-related fields with focus on business development and applied research."
Nile University is "dedicated primarily to excellence in technology-related fields with focus on business development and applied research."
Sunday, April 22, 2007
BambooINVOICE Built with CodeIgniter
BambooINVOICE is a simple open source invoicing web application built using CodeIgniter. The interesting thing is that you can download the code and see how a complete real-life web application is built with CodeIgniter as its framework.
Google Egypt Hiring QA Engineer
I was excited to know about the Software QA Engineer vacancy at Google Egypt. I hope that Google Egypt would follow this one day soon with positions for Software Developers as well.
Saturday, April 21, 2007
Google Video Talk
Google tried to downplay its acquisition of Marratech's video conferencing software saying that it "will enable from-the-desktop participation for Googlers in videoconferencing meetings wherever there's an Internet connection." Yet it sounds to me like Google is actually aiming at adding video chat features to Google Talk, a feature which has been present in both Yahoo! Messenger and MSN Messenger for quite a while.
Thursday, April 19, 2007
Measure Your Street Now!
It's amazing. You can actually grab a ruler and measure the length of your own street using Google Earth! I thought that feature was reserved for the Pro 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.
So have some fun, find your own street using Google Earth then use the ruler feature to measure how long it is. Amazing!
So have some fun, find your own street using Google Earth then use the ruler feature to measure how long it is. Amazing!
Wednesday, April 18, 2007
Yahoo Pipes
This is so exciting! Yahoo Pipes is a web based platform that enables anyone without even having any programming experience to create mashups in a really creative way . Here is an overview of pipes.
Video Tutorial - AJAX in PHP
Derek Allard made an interesting video tutorial on how to use AJAX within the CodeIgniter PHP framework to create a cool web application with AJAX flavored search capabilities. Derek makes use of Scriptaculous to incorporate AJAX capabilities into this tiny web application.
Google PowerPoint
30 days ago I've been asking if Google will be adding a presentation component to its Google Docs & Spreadsheets web application suit as a parallel application to Microsoft PowerPoint.. Google finally gives us the answer, yes they are.
Tuesday, April 17, 2007
Colorize Code
CodeIgniter offers a really cool and handy helper function called highlight_code(). It is a handy little function that allows you to pass it a string of text including HTML tags, PHP code ... etc and it returns a colorized version of that string highlighting the code and tags in distinct colors.
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.
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.
Word Inflection in CodeIgniter
I love the cool idea of providing inflection helper functions in CodeIgniter. They allow you to get the plural, singular, camel case ... etc of a word.
Monday, April 16, 2007
endforeach
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:
The alternative syntax I just knew about today is like this:foreach($list as $item)
{
echo $item;
}
foreach($list as $item):Quite cool. Other control statements as well can be closed in a similar manner. Check out the alternative syntax for control structures from the PHP manual.
echo $item;
endforeach
Sunday, April 15, 2007
OpenID Becoming a Reality
Was just trying out the free version of Highrise, a mini web based CRM from 37signals, when I found them offering me to register using an OpenID. I was really thrilled. I have heard about the idea of OpenID before, yet have never seen it in action. I thought it was just talk but would not really take off. Now 37signals, sponsors of Ruby on Rails, 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.
Saturday, April 14, 2007
Google HotJobs?
Looks like Google once again is going after Yahoo's share of online services. Google might be entering the online jobs market, competing with Yahoo! HotJobs.
Some time before Google launched its calendar service, there were reports of aggressive activity by Google bots chewing up ferociously on calendar sections found on people's web sites. I was startled two days ago when I found the googlebot repeatedly reading my resume at emurse. I believe that could be an indicator that Google is planning to enter into the online job market as has Yahoo!
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, Google's 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.
Some time before Google launched its calendar service, there were reports of aggressive activity by Google bots chewing up ferociously on calendar sections found on people's web sites. I was startled two days ago when I found the googlebot repeatedly reading my resume at emurse. I believe that could be an indicator that Google is planning to enter into the online job market as has Yahoo!
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, Google's 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.
Friday, April 13, 2007
Clean URLs and AJAX
I have been perplexed for a while when starting to develop 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 would help in SEO as well as make the application look cleaner and neater.
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.
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 system to display specific information 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.
I came across this interesting wiki about unique URLs 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.
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.
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 system to display specific information 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.
I came across this interesting wiki about unique URLs 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.
Thursday, April 12, 2007
Registration-Free User Log In
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 log in using their user name and password combination. So basically it's a two step process: first register (or sign up) then log in (or sign in).
With Yahoo!'s browser based authentication, you can relieve yourself from building a registration component for your web application and relieve 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 log in, without ever needing them to register at your web site.
With Yahoo!'s browser based authentication, you can relieve yourself from building a registration component for your web application and relieve 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 log in, without ever needing them to register at your web site.
Wednesday, April 11, 2007
PHP and Python Creators Working for Yahoo and Google
It's interesting that Rasmus Lerdorf, creator of PHP, has been employed by Yahoo! as an Infrastructure Architecture Engineer since September 2002.
It's more interesting that as of October 2005, Guido van Rossum, creator of Python, has been hired by Google and became a Google software engineer.
It's more interesting that as of October 2005, Guido van Rossum, creator of Python, has been hired by Google and became a Google software engineer.
Free Java Hosting
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. MyJavaServer offers free Java hosting for Java developers. Go ahead and try it.
Tuesday, April 10, 2007
MySQLi
For those still using the old MySQL functions of PHP, perhaps it is time to take a fresh look at an improved version of this old extension. MySQLi (MySQL improved) is the newer PHP extension that allows you to do prepared statements among many other cool things that the old MySQL extent ion does not offer.
Monday, April 09, 2007
Simple English Wikipedia
I've always been an avid fan of Wikipedia. I frequent it all the time checking whatever new concepts I happen not to know about. I have just recently discovered that a simplified edition of Wikipedia also exists! The Simple English Wikipedia is an attempt to provide an simplified edition of Wikipedia that introduced concepts in simple English words that are easy to understand by students and by people whose English language skills are not strong.
In my opinion, making things easy and clear makes things more popular. Just think how popular the For Dummies computer book series has been. I believe that the Simple English Wikipedia will gain more popularity with time and might even eclipse the main edition of Wikipedia itself.
In my opinion, making things easy and clear makes things more popular. Just think how popular the For Dummies computer book series has been. I believe that the Simple English Wikipedia will gain more popularity with time and might even eclipse the main edition of Wikipedia itself.
Saturday, April 07, 2007
PHP Creator is Against Frameworks
Rasmus Lerdorf, the creator of PHP, strikes a high note against PHP frameworks. I live this article written by him because it takes a lot of the hype away from the insane number of PHP frameworks that are sprouting by and creating a lot of confusion for newbies to PHP.
His article shows how to build a web application designed on the MVC pattern without having to use one of the popular PHP 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.
At the end of his article The no-framework PHP MVC framework, Lerdorf concludes that:
His article shows how to build a web application designed on the MVC pattern without having to use one of the popular PHP 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.
At the end of his article The no-framework PHP MVC framework, Lerdorf concludes that:
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 sacrificing flexibility and performance. ... Instead of starting by fixing the mistakes in some foreign framework and refactoring 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.Instead of relying on a canned framework, Lerdrof applies "an MVC approach with clean and simple views and still have all the goodness of fancy Web 2.0 features" using the following technologies:
Coding Standards
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 standards 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.
Here are some coding standards for PHP that have been set forth by the PEAR 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.
Here are some coding standards for PHP that have been set forth by the PEAR 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.
Clarity of Design
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. Emurse is one good examples of a clearly designed web page.
So what makes the above mentioned web page tick? I believe it is the presence of the following elements:
So what makes the above mentioned web page tick? I believe it is the presence of the following elements:
- The page is not cluttered with a lot of content.
- Three steps of action are clearly indicated: Creat, Send and Share.
- Background color of the three actions is distinct and clear.
- Simple navigation is kept at the bottom with a small font size.
- The funtion of the site is clearly spelled out: "emurse means resumes, improved."
- Sign in and sign up forms are clearly shown.
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.
CodeIgniter
CodeIgniter is a simple yet powerful PHP framework. What I like about it is its simplicity. There are other more sophisticated PHP frameworks that might be more powerful and offer a more rich set of features, yet CodeIgniter wins when it comes to simplifying things in a pretty way. Its learning curve is also not as steep as other frameworks.
Friday, April 06, 2007
Breadcrumbs in Navigation
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 breadcrumbs.
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 navigation was implemented using nested menus.
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 navigation was implemented using nested menus.
Thursday, April 05, 2007
Genena Mall on Google Maps!
If you search Google Maps for Genena Mall you will be taken to the Genena Mall location.
How does Google achieve this? Easy. I have created a small map including Genena Mall, Fatma El Zahraa Mosque and a small garden not far from them called Al Ferdaws Garden. I then put this map over at Google Maps. You will find blue rectangles that I have drawn around each of these three places.
But how have I managed to do this? Well, Google has just announced the ability to create your own maps very easily over at Google Maps. This new interesting feature makes it so easy to creat 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 Genena Mall. Here is how to use Google's exciting new My Maps feature.
How does Google achieve this? Easy. I have created a small map including Genena Mall, Fatma El Zahraa Mosque and a small garden not far from them called Al Ferdaws Garden. I then put this map over at Google Maps. You will find blue rectangles that I have drawn around each of these three places.
But how have I managed to do this? Well, Google has just announced the ability to create your own maps very easily over at Google Maps. This new interesting feature makes it so easy to creat 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 Genena Mall. Here is how to use Google's exciting new My Maps feature.
Speaking SQL
Speaking SQL looks like an interesting SQL tutorial that starts at the vry beginning yet goes deeper than many other SQL tutorials.
Wednesday, April 04, 2007
One Billion Web Pages Analyzed
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 enlightening web authoring statistics from Google.
ReactOS - A Microsoft Windows Alternative
Linux has been promoted as the free alternative to Microsoft Windows. 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.
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.
Enter ReactOS. ReactOS 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 freakingly 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 React.
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.
Enter ReactOS. ReactOS 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 freakingly 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 React.
Tuesday, April 03, 2007
Seaside - A Smalltalk Framework
Although I do not do any Smalltalk myself yet I was interested in knowing about Seaside which, according to the official website, is "a framework for developing sophisticated web applications in Smalltalk."
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.
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.
Cyclomatic Complexity
Cyclomatic Complexity 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.
Dreamweaver CS3 Announced
I was excited about the announcment of Adobe Dreamweaver CS3. I had been using Dreamewaver 8 for a while and before it used Dreamweaver MX 2004 and Dreamweaver MX. I've even used an earlier versions as well which I can't remember its name right now. I believe Dreamweaver is a really powerful product although it has a bit steeper learning curve than its competitors.
Labels:
Adobe,
Dreamweaver,
program,
web design,
web development
Vodafone Cash in Egypt
An ailing problem with ecommerce 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 Otlob has been the leader in.
Finally there is hope. Vodafine Egypt is introducing a new service in Egypt called Vodafone Cash. The service is basically a method for money transfer by which subscribers can transfer money, currently with an upper limit of 1000 LE, to one another. A subscriber can deposit money in his or her Vodafone Cash account and withdraw money from it via any 123 ATM machine. Depositing or withdrawing from one's account costs 2% of the amount.
With some money transfer services inside Cairo costing up to 7%, Vodafone Cash turns out to be an interesting and perhaps more convenient alternative. I believe such a move would dramatically nourish the budding ecommerce marketplace in Egypt.
UPDATE: Check out the Vodafone Cash FAQ at the bottom of the page.
Finally there is hope. Vodafine Egypt is introducing a new service in Egypt called Vodafone Cash. The service is basically a method for money transfer by which subscribers can transfer money, currently with an upper limit of 1000 LE, to one another. A subscriber can deposit money in his or her Vodafone Cash account and withdraw money from it via any 123 ATM machine. Depositing or withdrawing from one's account costs 2% of the amount.
With some money transfer services inside Cairo costing up to 7%, Vodafone Cash turns out to be an interesting and perhaps more convenient alternative. I believe such a move would dramatically nourish the budding ecommerce marketplace in Egypt.
UPDATE: Check out the Vodafone Cash FAQ at the bottom of the page.
Friday, March 30, 2007
Use SQLite not MySQL
When thinking of developing a new web site using PHP, it is a no brainer which database management system you will be using. MySQL 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 PostgreSQL due to its more complex features, yet MySQL still remains the king and a common denominator in most PHP web applications.
Although I have looked at SQLite with some interest in the past, yet I had never took it seriously as an option when creating a web application. Under "Situations Where SQLite Works Well" at the official SQLite web site, they mention the following:
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 SQLite then switch later on to MySQL when you need to scale. As Getting Real suggest, it is better to start with a simple solution and then scale later.
Although I have looked at SQLite with some interest in the past, yet I had never took it seriously as an option when creating a web application. Under "Situations Where SQLite Works Well" at the official SQLite web site, they mention the following:
SQLite usually will work great as the database engine for low to medium traffic websites ... . The amount of web traffic that SQLite 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 SQLite.Not bad. Not bad at all.
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 SQLite then switch later on to MySQL when you need to scale. As Getting Real suggest, it is better to start with a simple solution and then scale later.
Thursday, March 29, 2007
Google and Microsoft Fight for Egypt Students
Egypt's Business Today magazine has an interesting article this months titled Bit-by-Bit 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.
Wednesday, March 28, 2007
Reusability Redefined
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 Google Code Search 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!
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.
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.
Saturday, March 24, 2007
3D Character Creation Made Easy
iClone enables you to easily create animated 3D characters that can be used for creating 3D movies or for other purposes.
Google AdSense in Arabic
Google supports AdSense for Search in Arabic. I hope the day comes when Google finally starts to support AdSense for content 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 fraud and similar malicious abuse of the AdSense program.
Monday, March 19, 2007
Sending HTML Email with PHP
Here is an example showing how to send HTML email using the PHP mail function.
Sunday, March 18, 2007
Data Visualization from Google
With Google's latest acquisition, Google will be bring data visualization to a much "wider audience." Is that why Google Docs & Spreadsheets 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 arsenal of applications similar in a way to Microsoft PowerPoint?
Thursday, March 15, 2007
Egypt Business Plan Competition 2007
2 million LE in cash and services are the total prizes of the Business Plan Competition which is being held for its third 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.
Wednesday, March 14, 2007
Yahoo Releases its AJAX Library into Open Source
YUI or Yahoo! User Interface Library is an open source library provided by Yahoo! that offers a rich set of code elements enabling user interface manipulation with AJAX, JavaScript, DOM, DHTML and CSS. You can download YUI from Sourceforge.
Yahoo's user interface library is an attempt to answer back to Google's GWT or Google Web Tookit. Here is where you can download GWT.
Yahoo's user interface library is an attempt to answer back to Google's GWT or Google Web Tookit. Here is where you can download GWT.
Labels:
AJAX,
CSS,
games,
JavaScript,
open source,
web development,
Yahoo
Monday, March 12, 2007
Creating a PHP Login System
PHP Login System with Admin Features 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.
Saturday, March 10, 2007
Google Calendar Supports SMS Notification in Egypt
I was so excited when the sound of an SMS message arriving at my mobile phone jingled in my ears. The SMS was sent by Google to notify me of an event I had set in my Google Calendar. I have a Vodafone line in Egypt.
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 register your mobile phone with Google Calendar.
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 register your mobile phone with Google Calendar.
Borland and PHP
CodeGear, a Borland spinoff, has released Delphy for PHP. That's an interesting concept. Delphy has been known as a visual RAD tool for developing applications based on the Pascal programming language. As PHP's popularity is souring, CodeGear decided to catch part of the action by introducing PHP support in Delphy.
Thursday, March 08, 2007
Show Files in Directory using PHP
Sunday, March 04, 2007
Google Gives Machine Translation a Boost
I was once highly interested in the field of machine translation and even worked in that field at a software company in Egypt. I had written an introductory article about machine translation myself. I've always looked with interest on Google's attempts to provide automatic translation of web sites and text.
Now Google is taking a qualitatively different 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! Google's 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 Google's huge user base. Imagine all those people using Google Translate 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 Open Directory and the blogging community and fed 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 unrestricted text. I am highly excited about this move the the possibilities it would open.
Now Google is taking a qualitatively different 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! Google's 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 Google's huge user base. Imagine all those people using Google Translate 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 Open Directory and the blogging community and fed 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 unrestricted text. I am highly excited about this move the the possibilities it would open.
Thursday, March 01, 2007
"What's my Name?" Asks PHP
$_SERVER['PHP_SELF'] returns the PHP filename in which the script is running. It turns out to be handy at many occasions when you need to use the name of the PHP file in which the script is running.
Wednesday, February 28, 2007
Google Builds a Network of Partners
For a company to succeed well on the long run, it should make sure there are many who are benefiting from its existence 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 continued 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 Google partners that are offering services and solutions around Google Apps.
Tuesday, February 27, 2007
The Anchor Tag
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:
Let's say you have a section in your web page titled as follows:
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.
<a href="section-name">Some Link Text</a>I just by coincidence while scanning the W3C documentation for anchor tags discovered that there is another method which in my case proved to be easier and more compact.
Let's say you have a section in your web page titled as follows:
<h2>My Section</h2>If I wanted to link to such a section, I would modify it as follows:
<h2><a name="section-name">My Section</a>But I discovered that I can alternatively write it as follows:
<h2 id="section-name">My Section</h2>This has the exact same effect as the first method and looks neater and easier to write.
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.
Monday, February 26, 2007
Dell is Listening
Dell IdeaStorm is a web site launched by Dell to act as a place for users to give feedback on Dell's products and spell out their wishes for future products. 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.
Sunday, February 25, 2007
PHP Flavored Eclipse
The PDT Project is promising to offer a distinctive PHP flavor to the Eclipse IDE. the PDT is still in its infancy, yet as it matures, it might be a strong contender to other PHP development tools out there.
Tracking External Clicks
Google Analytics allows you to track traffic coming to your web site. It's an excellent too and its free.
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 coincidence that Google Analytics allows you to do this as well using a function called urchinTracker. 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.
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 coincidence that Google Analytics allows you to do this as well using a function called urchinTracker. 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.
IT Seminars in Egypt
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 Google TeckTalk 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 TeckTalk each time. Perhaps this can help fuel things up and encourage more software developers to act as a catalyst in technology transfer to Egypt.
Saturday, February 24, 2007
AJAX Chat
Chat on the web has been implemented mostly using Java applets. Another rudimentary web chat method was dong by automatically refreshing the web page. ActiveX was also an option for implementing chat on the web.
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 simple AJAX chat room created with PHP code.
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 simple AJAX chat room created with PHP code.
Thursday, February 22, 2007
Google Goes Beyond Ad Supported Services
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 business edition of Google Apps.
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 comparison between the two editions.
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 comparison between the two editions.
Wednesday, February 21, 2007
Microsoft Egypt is Hiring
Microsoft is launching its new CMIC, Cairo Microsoft Innovation Center, in the Smart Village. They are recruiting bright Egyptian software engineers in their CMIC. If you got what it takes to work at Microsoft, apply for a job at the Microsoft Egypt.
Monday, February 19, 2007
Mona Hired by Microsoft USA
Mona was among several FCIS Ain Shams 2005 graduates whom joined Microsoft in USA.
Python Tutorial
Python is an object oriented scripting language used for developing web applications. It is not as popular as PHP, yet it's code is neater and cleaner. Google uses Python extensively in its web applications. Here is a basic python tutorial for new comers to this cool scripting language.
PHP Reading List
I came across this interesting PHP reading list compiled by IBM. There is too much online material about PHP 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 road map of some of the materials about PHP that are worth reading. It also organizes things so that you can know where to go when you are looking for some specific thing.
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.
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.
Sunday, February 18, 2007
Introduction to Neural Networks
I came across this neural networks course. It looks interesting and can act as a good introducing to this interesting field of computer science.
Google SourceForge
SourceForge has by far been the most popular place to host open source project. Freshmeat is one other popular home for open source projects. It's interesting that Google itself is entering this field and offering a place to host open source projects as well.
Sure Google aims to pushing open source to the limits by doing so. I've had a look at Google's open source hosting service and found it to be very clear and clean. It is easy to use and I believe would be so convenient for hosting open source projects. I believe this would give a boost to the open source community. Unlike with SourceForge, 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 SourceForge 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.
Sure Google aims to pushing open source to the limits by doing so. I've had a look at Google's open source hosting service and found it to be very clear and clean. It is easy to use and I believe would be so convenient for hosting open source projects. I believe this would give a boost to the open source community. Unlike with SourceForge, 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 SourceForge 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.
Egyptian Students in Google Competition
I hope that starting from March, bright intelligent Egyptian computer science students would be joining Google Summer of Code 2007. It is an excellent opportunity 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 FCI, Cairo University and FCIS, Ain Shams University should look seriously at propelling their bright students through such an opportunity at Google Summer of Code 2007.
Labels:
competition,
Egypt,
Google,
open source,
programming
Saturday, February 17, 2007
Dojo - A JavaScript Toolkit
D0jo is a JavaScript toolkit that provides an impressive library packed with JavaScript functionality including AJAX and much more.
Amaya - W3C's Web Editor
Thursday, February 15, 2007
Database Migrations for Agile Web Development
I love the concept of migrations found in Ruby on Rails. 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.
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 PHP would have some similar easy way that supports migrations. That way going truly agile with PHP would be possible as is the case with Ruby on Rail.
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 PHP would have some similar easy way that supports migrations. That way going truly agile with PHP would be possible as is the case with Ruby on Rail.
Labels:
agile,
database,
open source,
PHP,
Ruby on Rails,
web development
Wednesday, February 14, 2007
Free PHP Book
Monday, February 12, 2007
Class Vs. ID in CSS
I've had this question in mind of several years by now. What is really the difference between using ID and using class in CSS. 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 CSS to for styling.
That was until I got, by chance, across the most clearly stated answer I have ever seen. Here is the difference between ID and class in CSS. Not only does this make clear the difference between them, but it also gives direction to when to use each.
That was until I got, by chance, across the most clearly stated answer I have ever seen. Here is the difference between ID and class in CSS. Not only does this make clear the difference between them, but it also gives direction to when to use each.
HSQL in OpenOffice
Base is part of OpenOffice.org. Think of it as the equivalent of Access in Microsoft Office. The interesting thing is that Base enables you to work with your own database created in any any of several database management system including MySQL.
Base uses the HSQL database engine to achieve its work. HSQL looks interesting. I wonder if it will expand and have more uses than just being the database core of the OpenOffice.org suit.
Base uses the HSQL database engine to achieve its work. HSQL looks interesting. I wonder if it will expand and have more uses than just being the database core of the OpenOffice.org suit.
Sunday, February 11, 2007
Yet Another Word Processor
I used to use Microsoft Word as my word processor. Later I toyed with the freely available open source OpenOffice for a while yet Microsoft Word felt more familiar so I stayed with it. Now that I've tasted Google Docs & Spreadsheets, there is no way I'll go back to Microsoft Word, OpenOffice 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.
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. AbiWord is it's name for those of you wh0 would still like to use an offline word processor and want a free alternative to OpenOffice.
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. AbiWord is it's name for those of you wh0 would still like to use an offline word processor and want a free alternative to OpenOffice.
Build your Own Social Networking Site
I've been looking with a lot of interest and admiration to the booming phenomenon of social networking web site. 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 PHP 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 Drupal, 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.
In the meantime, I just came across an interesting open source system that does open source. It is called Elgg. 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!
In the meantime, I just came across an interesting open source system that does open source. It is called Elgg. 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!
Saturday, February 10, 2007
What Makes an Excellent Tutorial?
I got across this CSS tutorial by chance while Googling around for a specific CSS question. The tutorial explains how to make a horizontal menu by styling an HTML list using CSS.
What I really 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. Googling through this tutorial was a peaceful 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.
What I really 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. Googling through this tutorial was a peaceful 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.
Friday, February 09, 2007
Association for Computing Machinery
ACM, the Association for Computing Machinery, is the world's first educational and scientific computing society.
Wednesday, February 07, 2007
Manage Email Traffic With Gmail Filters
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.
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.
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.
Now gmail's filter feature comes to the rescue. First of all, I have set up an auto forward 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 filter 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.
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.
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.
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.
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.
Now gmail's filter feature comes to the rescue. First of all, I have set up an auto forward 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 filter 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.
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.
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.
Tuesday, February 06, 2007
A Massive Database
Google Base might turn out to be the most massive database ever created containing structured data.
If Google Base allowed users to store their structured data there privately and access such data securely then maybe in the future no one will need to keep his own database any more, one can just use the massive Google Base to store his application's structured data! What a thought.
Before getting too excited though about this idea, I don't see any reason why Google might be interested in offering such ability to store their structured data privately in Google Base. However, if Google finds out a way to make this option available to users, then this will change the whole landscape of databases and applications that use databases extensively.
If Google Base allowed users to store their structured data there privately and access such data securely then maybe in the future no one will need to keep his own database any more, one can just use the massive Google Base to store his application's structured data! What a thought.
Before getting too excited though about this idea, I don't see any reason why Google might be interested in offering such ability to store their structured data privately in Google Base. However, if Google finds out a way to make this option available to users, then this will change the whole landscape of databases and applications that use databases extensively.
Dig For Code Easily
O'Reilly, the popular publisher of IT books, is releasing an interesting online code search tool that allows you to search for sample code found in the examples of nearly 700 of its books.
With Google Code Search around, one can very easily find a programming function that performs what he needs. I think that such ease of search might entice many computer science students into using it to help them out with their programming assignment. It's a brave new world, I believe it will change the way things are done in the software development world. Google is giving another massive push to open source which is qualitatively different from any other push open source had ever been given.
Refer to the Google Code Search FAQ for more info about its functionality.
With Google Code Search around, one can very easily find a programming function that performs what he needs. I think that such ease of search might entice many computer science students into using it to help them out with their programming assignment. It's a brave new world, I believe it will change the way things are done in the software development world. Google is giving another massive push to open source which is qualitatively different from any other push open source had ever been given.
Refer to the Google Code Search FAQ for more info about its functionality.
Sunday, February 04, 2007
Shared Hosting Challenged by Grid
Media Temple are offering an alternative to shared hosting which they claim is much better without the costs nor the risks of a dedicated server. Grid Server is the new hosting model they are promoting. They claim that grid is better than shared hosting.
The catch, however, is in their GPU (grid performance unit) which charges their customers extra monthly fees if they happen to use more CPU resources. Their model though sounds interesting and is nice to examine.
The catch, however, is in their GPU (grid performance unit) which charges their customers extra monthly fees if they happen to use more CPU resources. Their model though sounds interesting and is nice to examine.
Friday, February 02, 2007
Google Co-op and Yahoo My Web
As Jimmy Wales, founder of Wikipedia, along with Amazon aim to develop a new search engine challenging both Google and Yahoo, the two search giants are fighting back with innovations of their own.
Jimmy Wales' idea is to develop a search engine that relies heavily on users to refine the search results. Google introduced Co-op to do just that, using users as a source for search results. Yahoo aims at building the same network of users who are building search results through its My Web initiative. Both Yahoo My Web and Google Co-op are still in beta.
My personal opinion is that the push given by Amazon to Jimmy Wales' idea will still not be able to dethrone Google or Yahoo from their high thrones in the search engine kingdom. They will just fight back ferociously with the same idea of Jimmy Wales, using the knowledge of users in an online social networking setting to build and refine their search engine results. The good news is that the push by Jimmy Wales and Amazon however will make the move towards this take place sooner, which means a better search experience for users.
Have a look at Jimmy Wale's budding search engine.
Jimmy Wales' idea is to develop a search engine that relies heavily on users to refine the search results. Google introduced Co-op to do just that, using users as a source for search results. Yahoo aims at building the same network of users who are building search results through its My Web initiative. Both Yahoo My Web and Google Co-op are still in beta.
My personal opinion is that the push given by Amazon to Jimmy Wales' idea will still not be able to dethrone Google or Yahoo from their high thrones in the search engine kingdom. They will just fight back ferociously with the same idea of Jimmy Wales, using the knowledge of users in an online social networking setting to build and refine their search engine results. The good news is that the push by Jimmy Wales and Amazon however will make the move towards this take place sooner, which means a better search experience for users.
Have a look at Jimmy Wale's budding search engine.
ISO HTML
HTML is a web standard developed by the Word Wide Web Consortium. The ISO has taken HTML and made a neater standard out of it by removing deprecated HTML elements and bringing out a tighter edition of HTML. The ISO HTML standard is called ISO/IEC 15445:2000.
One of the interesting features for instance of ISO HTML is that if you use an <h1> tag you cannot use an <h3> tag directly after it, but you must follow the <h1> tag with an <h2> first then you may use an <h3> after that. I think this gives you the picture and a taste of what ISO HTML is all about. It tries to make HTML more neat by removing deprecated elements and adding some restrictions to come up with a tighter HTML than that of the W3C.
The question remains however on who will be using such a standard and whether it will ever gain popularity on the web. I personally believe it will not, yet still I find it interesting to use it.
One of the interesting features for instance of ISO HTML is that if you use an <h1> tag you cannot use an <h3> tag directly after it, but you must follow the <h1> tag with an <h2> first then you may use an <h3> after that. I think this gives you the picture and a taste of what ISO HTML is all about. It tries to make HTML more neat by removing deprecated elements and adding some restrictions to come up with a tighter HTML than that of the W3C.
The question remains however on who will be using such a standard and whether it will ever gain popularity on the web. I personally believe it will not, yet still I find it interesting to use it.
Thursday, February 01, 2007
The Resonance Effect in Google Video
An interesting phenomenon in Google Video is the resonance of popular videos. Once a video becomes popular it is show in the top 100 and there it has an even much larger chance of being seen by a large number of members which makes it even more and more popular. Due to this resonance effect many videos once they reach the top 100 tend to stick right there for long, not because they are actually better than new videos but because they have managed to reach the top 100 list and therefore get a boost in popularity just by being among the top 100 list. It's a circular and unfair thing.
Google seems to calculate the popularity of a video by counting the number of users who have clicked on it to view it. Perhaps they have a more complex algorithm for determining popularity including how many people viewed the video till the end as well as other criteria. Yet still the resonance effect dramatically accelerates some videos and keeps them at the top much longer than they deserve.
To counter this effect, Google introduced the Movers & Shakers video list which lists videos that are gaining popularity quickly even if their popularity has not reached a high level, but what counts here is speed of increase in popularity and not the popularity rank itself. This has helped a lot in reducing the resonance effect by giving a higher chance for new videos to climb up the popularity ladder and shake down old videos which had clung for long to the top 100 list due to the resonance effect.
Google then introduced yet another feature to help reduce the resonance effect. If a user is signed in with his Google account when visiting Google Video, his popular list is customized to reflect his own interests depending on his search and video viewing history. This again helped reduce the resonance effect.
The final push that Google has made till now to reduce the resonance effect even more was to introduce Recommendations which again rely on each users video search history yet rely less on the popularity of a video and more on the users own interests.
Although social networks and community driven content, which are said to be part of the buzz word Web 2.0, are expected to give even more democracy to the Internet by letting people decide what is good and what is bad, what is popular and what is not, yet it looks like Google should also work on developing a more robust algorithm to determine the popularity or the 'niceness' of a video on not just rely on simple calculations of how many users have viewed a video.
Perhaps Google should consider adding a feature similar to the fascinating interestingness feature found at Flickr which is able to automatically discover marvelous photos using a complex algorithm.
Google seems to calculate the popularity of a video by counting the number of users who have clicked on it to view it. Perhaps they have a more complex algorithm for determining popularity including how many people viewed the video till the end as well as other criteria. Yet still the resonance effect dramatically accelerates some videos and keeps them at the top much longer than they deserve.
To counter this effect, Google introduced the Movers & Shakers video list which lists videos that are gaining popularity quickly even if their popularity has not reached a high level, but what counts here is speed of increase in popularity and not the popularity rank itself. This has helped a lot in reducing the resonance effect by giving a higher chance for new videos to climb up the popularity ladder and shake down old videos which had clung for long to the top 100 list due to the resonance effect.
Google then introduced yet another feature to help reduce the resonance effect. If a user is signed in with his Google account when visiting Google Video, his popular list is customized to reflect his own interests depending on his search and video viewing history. This again helped reduce the resonance effect.
The final push that Google has made till now to reduce the resonance effect even more was to introduce Recommendations which again rely on each users video search history yet rely less on the popularity of a video and more on the users own interests.
Although social networks and community driven content, which are said to be part of the buzz word Web 2.0, are expected to give even more democracy to the Internet by letting people decide what is good and what is bad, what is popular and what is not, yet it looks like Google should also work on developing a more robust algorithm to determine the popularity or the 'niceness' of a video on not just rely on simple calculations of how many users have viewed a video.
Perhaps Google should consider adding a feature similar to the fascinating interestingness feature found at Flickr which is able to automatically discover marvelous photos using a complex algorithm.
Subscribe to:
Posts (Atom)