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:
<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.

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


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.

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.

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.

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.

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.

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

Amaya is an open source web editor hosted by the W3C themselves. Amaya supports HTML, CSS, XML, XHTML, MathML, SVG and other XML applications. The interesting thing is that Amaya is both a web editor and a web browser at the same time! A lovely concept promoted by the W3C.

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.

Wednesday, February 14, 2007

Free PHP Book

There is an interesting free PHP book that has been put in wiki form. It can be a good start for absolute beginners to PHP.

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.

HSQL in OpenOffice

Base is part of 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 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.

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!

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.

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 @ 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 @ 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.

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.

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.

Second Life 3D Viewer Goes Open Source

Second Life released its 3D viewer as open source.

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.


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.

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.

Creating Email Autoresponders in cPanel

This simple Flash video tutorial from Bluehost shows you how to create an autoresponder for your email from within cPanel.