Wednesday, July 22, 2009

About Apollo 11 Moon Landing

I read an article about the aftermark of the event at http://www.crn.com/government/218600158;jsessionid=UMI42HAWWTY3MQSNDLPCKHSCJUNN2JVN

And I found some of the comments are brilliant, as highlighted in green below.

Apollo 11 Moon Landing Delivered 40 Years Of Spin-Off Tech

By Damon Poeter, ChannelWeb
2:28 PM EDT Wed. Jul. 22, 2009
Who says government can't ever do anything right? As the world celebrates the 40th anniversary of the Apollo 11 moon landing this week, we're also commemorating the entire NASA-led project to send Neil Armstrong and Buzz Aldrin on their historic space mission -- a massive, ambitious undertaking that has paid dividends far beyond the planting of the American flag on Luna.

And no, we're not talking about Tang.

The sugary drink is actually one of the few products associated with the Apollo missions that NASA didn't have a hand in developing. But the host of NASA's technology "spin-offs" -- conveniently documented in the space agency's annual publication of the same name -- is legion.

From memory foam to freeze-dried food, the list of technologies and products that came directly out of our space exploits and found markets in the private sector is impressive. Perhaps none so much as the computer-based advances that resulted from the particular requirements of space exploration -- including such developments as integrated inventory and process management systems for the complex process of building a rocket capable of reaching the moon, improvements to computer-assisted manufacturing of complicated space machines and compact, powerful processing power for the spacecraft's own navigation systems.

When President John F. Kennedy gave voice to our lunar ambitions way back in 1961, few people knew that we also were embarking on a computing revolution. In just eight short years, the United States had landed two astronauts in the Sea of Tranquility -- and to get there, huge technological innovations such as the Apollo Guidance Computer played a major part.

It's safe to say that today's high-tech industry owes a debt to those early days of space exploration. No doubt the computing revolution would have happened without the Apollo Program's six successful landings on the moon -- but those missions sure helped kick-start Silicon Valley and the market for IT products.

Sorry, but apparently you are unable to read and understand the English language. How you manage to type coherent sentences is beyond me. Where in there do I complain about the benefits?

What I am complaining about is how people continue to praise to high heaven the round about way we got them. There are many other paths one can imagine to all this technology they trot out and say, "This is from space research, isn't it wonderful." that might have been more productive and cheaper.

You honestly believe we wouldn't have computers except for the space program? Sorry, but we already did. Depending on how you define what you mean, we had them 20 years before the space program or even 100 years before the space program.

Freeze dried food? Come on, there are so many people in the past up to the present day doing research on food processing from the guy who won the prize from Napoleon for canning to the papers I looked at recently on new ways to dry grapes to make raisins and so many reasons for people doing so unrelated to space in any way.

SCUBA gear? Geeze, concepts and real devices from Leonardo on up.

Let me put it another way. So far as I can tell, the reason for the Apollo program was *not* to generate new technology for you and me, so to bring it out and present it as a wonderful justification is suspect.

Oops! Posted a message as a reply to another poster instead of to the article itself.

I think it seems quite common that research, innovation and discovery do not have the main effect intended for them. Edison thought the chief value of recording would be for wills. Almost all new media technologies pay off first in pornography.

The space race was, indeed, touched off by the cold war and naysayers spoke of what a waste it was. Now we use satellite communication every day to instantly transmit news reports around the world. I remember when the wedding of the Queen of England was filmed, hustled onto jet fighters, flown across the Atlantic and, with the assistance of later time zones, displayed to the public within "hours" of its occurrence. Does anyone want to imagine life without satellites now?

The space program also created needs that contributed to the development of faster, smaller, better computers of all kinds. I would be surprised if there were not benefits to commercial air travel.

Finally, it is in the nature of mankind to learn, explore, invent, build and, unfortunately, compete to the point of violence. While not purely a blessing, I think it is pointless to resist the drive to learn.

War is not the only motivator. Entertainment seems to drive technology development quite furiously. Medical treatment seems to pull technology along at an amazing pace.

From my childhood, there have been three simultaneous and continuous explosions. One is information. Another is computer processing and storage. The third is communication. I remember when every phone call was operator assisted. I remember the first commercial electronic calculator. Last week, I watched and listened to my heart pumping and squishing in real time.

It has been an amazing ride. I have a friend of 93, 26 years older than I am, who says life is so interesting he really wants to stick around to see what is coming next.

I was wildly excited when Neill Armstrong stepped onto the surface of the moon. It would have been even better with on a hi def digital colour, giant TV.

We need to smarten up a lot about we use technology but stopping research and exploration are not, I think, a useful option.

The moon landings were faked. Cold War propaganda. Come on folks... We're supposed to be the tech experts here.

Someone said "Two people can keep a secret -- if one of them is dead."

Erasing the memories of the 11,000 co-conspirators at NASA, the contractors, politicians and bureaucrats was my real and best technological achievement.

Keep the faith!

Thursday, August 7, 2008

Herbert George Wells on the World Encyclopaedia (1936)

The following excerpts are from a lecture by H.G. Wells given at the Royal Institution of Great Britain on November 20th, 1936 (“World Encyclopaedia”).

The World Brain

“We want a reconditioned and more powerful Public Opinion. In a universal organization and clarification of knowledge and ideas, in a closer synthesis of university and educational activities, in the evocation, that is, of what I have here called a World Brain, operating by an enhanced educational system through the whole body of mankind, a World Brain which will replace our multitude of unco-ordinated ganglia, our powerless miscellany of universities, research institutions, literatures with a purpose, national education systems and the like”

“We do not want dictators, we do not want oligarchic parties or class rule, we want a widespread world intelligence conscious of itself.”

Assembling specialists

“A distinguished specialist is precious because of his cultivated gift. It does not follow at all that by the standards of all-round necessity he is a superior person. Indeed by the very fact of his specialization he may be less practised and competent than the average man.”

“I think we should get the very gist of this problem if we could compare twelve miscellaneous men of science and special skill, with twelve unspecialized men taken – let us say – from the head clerk’s morning train to the city. We should probably find that for commonplace team-work and the ordinary demands and sudden urgencies of life, the second dozen was individually quite as good as, if not better than, the first dozen. In a burning hotel or cast away on a desert island they would probably do quite as well. And yet collectively they would be ill-informed and limited men; the whole dozen of them would have nothing much more to tell you than any one of them.”

“On the other hand our dozen specialists would each have something distinctive to tell you ... The more you got them together the more they would signify.”

The World Encyclopaedia

“I want to suggest that something – a new social organ, a new institution – which for a time I shall call World Encyclopaedia, is the means whereby we can solve the problem of that jig-saw puzzle and bring all the scattered and ineffective mental wealth of our world into something like a common understanding”

“I will take it first from the point of view of the ordinary educated citizen ... From his point of view the World Encyclopaedia would be a row of volumes in his own home or in some neighbouring house or in a convenient public library or in any school or college, and in this row of volumes he would, without any great toil or difficulty, find in clear understandable language, and kept up to date, the ruling concepts of our social order, the outlines and main particulars in all fields of knowledge, an exact and reasonably detailed picture of our universe, a general history of the world, and if by any chance he wanted to pursue a question into its ultimate detail, a trustworthy and complete system of reference to primary sources of knowledge. In fields where wide varieties of method and opinion existed, he would find, not casual summaries of opinions, but very carefully chosen and correlated statements and arguments.”

“The modern World Encyclopaedia should consist of selections, extracts, quotations, very carefully assembled with the approval of outstanding authorities in each subject, carefully collated and edited and critically presented. It would not be a miscellany, but a concentration, a clarification and a synthesis.”

The role of the World Encyclopaedia

“Every fresh mind should be brought into contact with its standing editorial organization. And on the other hand its content would be the standard source of material for the instructional side of school and college work, for the verification of facts and the testing of statements – everywhere in the world.”

“It would do just what our scattered and disoriented intellectual organizations of today fall short of doing. It would hold the world together mentally.”

Dealing with conflicting opinions

“How often do we see men misrepresenting each other in order to exaggerate a difference and secure the gratification of an argumentative victory! A World Encyclopaedia as I conceive it would bring together into close juxtaposition and under critical scrutiny many apparently conflicting systems of statement. It might act not merely as an assembly of fact and statement, but as an organ of adjustment and adjudication, a clearing house of misunderstandings; it would be deliberately a synthesis, and so act as a flux and a filter for a very great quantity of human misapprehension. It would compel men to come to terms with one another.”

Amendments

“And next let us take this World Encyclopaedia from the point of view of the specialist and the super-intellectual ... On the assumptions that the World Encyclopaedia is based on a world-wide organization he will be ... a corresponding associate of the Encyclopaedia organization. He will be able to criticize the presentation of his subject, to suggest amendments and re-statements. For a World Encyclopaedia that was kept alive and up to date by the frequent re-issue of its volumes, could be made the basis of much fundamental discussion and controversy.”

The Encyclopaedia Society

“How can it be set going? How can it be organized and paid for?”

“We want, shall I call it, an Encyclopaedia Society to ask for an Encyclopaedia and get as many people as possible asking for an Encyclopaedia. Directly that Society asks for an Encyclopaedia it will probably have to resort to precautionary measures against any enterprising publisher who may see in that demand a chance for selling some sort of vamped-up miscellany as the thing required”

Citing is preferred over original writing

“I must repeat that for the purposes of a World Encyclopaedia probably we would not want much original writing. If a thing has been stated clearly and compactly once for all, why paraphrase it or ask some inferior hand to restate it? Our job may be rather to secure the use of copyrights, and induce leading exponents of this or that field of science or criticism to co-operate in the selection, condensation, expansion or simplification of what they have already said so well.”

A world monopoly

“[T]his World Encyclopaedia as I conceive it, if only because it will have roped in the larger part of the original sources of exposition, discussion and information, will be in effect a world monopoly, and it will be able to levy and distribute direct and indirect revenue, on a scale quite beyond the resources of any private publishing enterprise.”

Dangers of buying the movement

“[O]f course from the very start, various opinionated cults and propagandists will be doing their best to capture or buy the movement. Well, we mustn’t be captured or bought, and in particular our silence must not be bought or captured.”

Dangers of gang forming

“And there will be a constant danger that some of the early promoters may feel and attempt to realize a sort of proprietorship in the organization, to make a group or a gang of it. But to recognize that danger is half-way to averting it.”

The Encyclopaedia’s language

“I think that the main text should be in one single language, from which translations in whole or part could be made ... I do not think I am giving way to any patriotic bias when I suggest that unless we contemplate a polyglot publication ... English because it has a wider range than German, a greater abundance and greater subtlety of expression than French and more precision than Russian, is the language in which the original text of a World Encyclopaedia ought to stand.”

Spreading like a nervous network

“You see how such an Encyclopaedia organization could spread like a nervous network, a system of mental control about the globe, knitting all the intellectual workers of the world through a common interest and a common medium of expression into a more and more conscious co-operating unity and a growing sense of their own dignity, informing without pressure or propaganda, directing without tyranny.”

“I believe that in some such way as I have sketched ... the mental forces now largely and regrettably scattered and immobilized in the universities, the learned societies, research institutions and technical workers of the world could be drawn together in a real directive world intelligence, and by that mere linking and implementing of what is known, human life as a whole could be made much surer, stronger, bolder and happier than it has ever been up to the present time.”

The only hope

“Let me be very clear upon one point.”

“I am not saying that a World Encyclopaedia in itself solve any single one of the vast problems that must be solved if man is to escape from his present dangers and distresses and enter upon a more hopeful phase of history: what I am saying – and saying with the utmost conviction – is this, that without a World Encyclopaedia to hold men’s minds together in something like a common interpretation of reality, there is no hope whatever of anything but an accidental and transitory alleviation of any of our world troubles.”

“Our species may yet end its strange eventful history as just the last, the cleverest of the great apes. The great ape that was clever – but not clever enough. It could escape from most things but not from its own mental confusion.”



I admire this lecture by Herbert George.

When reading through this post, things come to my mind: the Internet, Wikipedia (and other wiki things), blog, Google search (page rank), G-Brain (?) and Social etc.

We have been getting closer and closer to Herbert George's vision formed in 1936.

The only thing I disagree with H.G. is about Encyclopaedia’s language. HG suggested an one-way street from English to others.

Firstly, language is not so important in such vision, English is just a de facto standard of international communication, just like Latin in academic field 2000 years ago; secondly and more importantly, there are load of culture issues that can not be represented by foreign languages. Unless we want to have a unify culture of all mankind, and destroy diversification of cultures, language usage in this world brain is not going to be an one-way street.



When communications and interactions between individual in a society are getting richer and richer, the whole society is becoming more like a brain, and individuals are just like brain cells.

Electronic communication and computing have speed up such processes.

Make it simple

Google's guidelines of Web design are good for both machine and human reading.

Remember, Google's business is based on collective intelligence. Only when a human reader can read your web site well, the machine can collect the intelligence. Overuses of javascript, flash and keywords surely confuse human and machine, and the content will be worthless to intelligence.

Make it simple, make it navigable, and make it relevant.

Am I a SEO expert? no, I barely create web pages through FrontPage and Expression, and rarely use Java script and never use Flash. My pages of index.htm mostly appear in the first page of respective search results among 500,000 to 2000,000 items returned.

Thursday, July 17, 2008

Missing link in making Social Graph popular

The usefulness of social graph depends on how many people would
publish their relationships with others. I observed XFN around 2 years
ago, and nowadays XFN or open social still haven't yet got spotlight
of popularity.

If you would publish some of your relationships to the web, what would
you do? hand-craft some XFN codes or go to http://gmpg.org/xfn/creator
?

Look a bit redundant.

You already have your contact info stored in your address books on PC,
Web, or mobile phone, why should you key-in the info again?

Most address book programs in PC and Web support category/group, and
some of the categories may represent relationships between you and the
contacts. So basically you may have categories like:
Colleague
Friend
Relative
Acquaintance
Business

Obviously, it is a bit overkill to create categories like:
Parent
Spouse
Children

But you may put the contact info of your parent and children into
category Relative.

It is logical to create XFN tags from contact info of your address
book.

So the next step is to map categories into XFN profiles as defined at
http://gmpg.org/xfn/11. For example, Colleague -> colleague, Friend-
>friend, Relative -> kin, Acquaintance and Business -> acquaintance.

And the next question is, does your favorite support such feature?

MS Outlook? no, Gmail Contacts? no, Yahoo Address Book? no.

Open Contacts? yes.

Open Contacts does not really have a built-in function for such
feature. However, because Open Contacts can export selected contacts
with info of categories into XML, it is straightforward to transform
the XML into XFN tags using XSLT. And this XSLT was developed. Please
check
http://www.fonlow.com/opencontacts/Developer/publish_selected_contacts_to_xfn.htm

You may either use the offline XFN creator or your favorite XML tool
to do transformation. By the way, as you might have different settings
of categories, you might need to edit the XSLT file to change the
mapping between categories and XFN profiles.

If you want to publish selected contacts stored in MS Outlook, Outlook
Express, Eudora, Mozilla Thunderbird and Vista Contacts etc., you may
import/sync the contacts into Open Contacts first.

References:

Thursday, July 10, 2008

Wikipedia Chinese Search in Firefox

After installing Firefox, there is a search box at the top right corner wired to different search engines such as Google, eBay and Wikipedia en etc.

Firefox add-on for Wikipedia-en search has around 15 thousands weekly downloads. Surely searching directly in the search box of Firefox rather than in the Wikipedia home page is very popular.

As I need to search Chinese as well, I wished to have a shortcut in the search box for Chinese.

It was fairly easy to find out how the search plug-in was implemented. In the program folder of Firefox, there's a subdirectory called "searchplugins". There are XML files each of which defines meta info of a search engine. And the default one for Wikipedia is "wikipedia.xml".

So the rest of implementing the plug-in for Wikipedia Chinese is quite straightforward: simply replace all references to Wikipedia English (en) with ones to Wikipedia Chinese (zh); and save the XML file as "wikipediazh.xml".

Put "wikipediazh.xml" inside directory "searchplugins" (e.g. C:\Program Files\Mozilla Firefox\searchplugins). After restarting Firefox, you will get a shortucut in the search box for Wikipedia Chinese.

I have made the XML here.

Aftermark

I would say developing a new plug-in through studying "wikipedia.xml" is like hacking, and expecting the users to download the XML and copy to the Program Files directory is not so appropriate for many users who only know how to use a Web browser, without any literate skills of exploring the file systems of Windows. So, I would study the technical specification at
  • http://developer.mozilla.org/en/docs/Creating_OpenSearch_plugins_for_Firefox
  • http://developer.mozilla.org/en/docs/Creating_MozSearch_plugins

An one-click installation is made here.

Monday, June 16, 2008

Defend Delphi or Leave It Sadly

Among current and former Delphi programmers, there were a lot discussions and bitter debates about Delphi's future. As a long time Delphi programmer from the age of Turbo Pascal/Borland C++, I would share a few viewpoints, but not to replicate some great views from the others as listed below:


Though since two years ago, I started most new projects using Visual Studio C#, I would still say a few good words about Delphi. Of course, this doesn't mean I would got back to Delphi unless CodeGear will make some breakthroughs or the software project is very small, say less than 2,000 lines.

I would quote Harry Betamax's comment here:
"Whatever you do, talking about system project development. is based on your logic domain.. not based on Delphi or Visual Studio. Delphi / VB / just like weapon for hero... and the advantages from this weapon just should be effective on the right hand.. "

Not to defense Delphi or C#, but to illustrate the deep reasons of different view points of Delphi programmers.

Language features
Some praised great language features of C#, and claimed old Delphi syntax is not so convenient. If you even did commercial programmings in more than 2 languages in last 5 years, you will see language feature is not so critical in medium projects larger than 50,000 lines of codes. With quality design, Delphi, C++, VB or C# can deliver quality products.

Some said that in Delphi you have to declare a function header twice, once in the prototype section, and twice in the implementation section, and the IDE shortcut to generate implementation section is just a hack. I would consider this is an advantage, rather than burden of code navigation. Because this forced me to think about design carefully and design the interface (function headers and properties) in advance without considering the implementation in detail. If you always want to jump to the detail of implementation, this would of course be a burden. After all, as modern IDEs have provided structural view of classes, this prototyping of interface is not so significant anymore.

Price

Yes, indeed, Borland's development products have been more expensive than MS products. However, what should concern you should be how fast you can deliver reliable products to customers, and the total cost of long term maintenance. For certain kinds of projects, if Delphi can assist you to deliver products sooner, then you get paid back sooner. Time is money. If the money you gained could not support you to afford expensive Delphi, you should review your business model.

By the way, sometimes whether to buy Delphi or VS is not decided by developers, but by the the customer. In some software development projects, the customers will own the source code and may have internal programmers to maintain the code after deployment, so the customers may need to own the development tools. From the point of view of the eagle eyes of cooperate accountants, VS will surely be more appealing, because VS is often free with MSDN subscription.

Bugs in Delphi
The long standing and famous ones are COM and Printing etc. Thousands of programmers complained about them in last 10 years, Borland had refused to fix them. This is really disappointing. Lack of Unicode support can be consider as a bug, more exactly, architectural bug.

There are many bugs which could have workaround through using 3rd components like Jedi VCL or TurboPower etc. However, adding coupling to 3rd party product for replacing existing functions in VCL is clearly not desirable, though I did without much frustration.

A workmate called Leo is a long standing guru of Windows programming and .NET programming. He alway criticized Borland for its attitude to improve conformation to Windows API conventions. He's indeed unsatisfied by the fact that most Delphi programmers have very little knowledges of Windows API and messaging, and he claimed these programmers were not doing Windows programming. However, the point is, the purpose of Delphi was to release programmers from remembering tons of Windows API calls and writing massive codes of doing simple things. The wisdom of Delphi was RAD, to allow programmers to focus on building business logics and UI. Those bugs were not so significant in small and medium cooperate environments where every workstations run as power user, as these work stations need to run many other legacy programs which do not conform to Windows security models. In a team, you do need one or two guys like Leon who have in-depth knowledge of Windows and take care of critical technical details, and other guys focus on building business models and UI.

But, of course, not conforming to Windows API conventions has downgraded Delphi from the legacy frame of world class product, moved itself out of Windows upgrading path which cooperates always followed. Delphi programs could now only be sitting in the ash of legacy products running in small and medium cooperates.


Development Life Cycle

Even many Delphi critics in MS camp admitted that Delphi was well ahead of time in early days. In development life cycle, its elegant IDE design provided great supports for code navigation and debugging. However, as the focus of development was shifted more to planning, designing and testings, VS has been becoming more superior since VS 2003.

Personally I hate debugging, not like many other technicians treating debugging as technical challenges. I preferred more testings in advance, as I considered debugging is passive and negative, and testing is proactive and positive to productivities.

VS provided much more and better means of organizing source codes, resources, testings and analysis. Such advantages become more significant in large projects involving team works.


Defensive Attitude of Die-hard Delphi Programmers
I considered myself one of the die-hard Delphi programmers, though with less defensive attitude. I understand that many long time Delphi programmers enjoyed the good old days of Delphi programming, while Borland had consistently provided smooth migration path. And in many projects of similar size, Delphi programmers often delivered solutions sooner than VC and VB programmers could, in addition, with less gray hairs. Such privilege, I enjoyed too.

Love can often make people be blind. In a defense statement made by a commentator in The Future of Delphi, a guy cried out for the fate of CodeGear: "You failed to mention the deal that CodeGear just signed with the Russian Education Agency for a MILLION licenses for CodeGear RAD Studio."

What's the point?

Will Russian universities produced more Delphi programmers? Maybe. Will cooperates use Delphi because of great availability of Russian Delphi programmers? Not likely. The good old experience of Borland in 1980s won't be easily replicated in 2000s.

My Shallow Experience with VS C#
I started first commercial programming with VS C# 2003 in 2004, writing some ASP.NET components -- business models only. I took the job with great reluctance, as I considered the UI of VS 2003 was poor (I know Leon the guru of Windows programming would bitterly disagree) and the .NET library was lack of many basic classes I enjoyed in Delphi VCL, and the database access was poor. I even had a conclusion that VS.NET was only good for developing server side applications like ASP.NET, because .NET was designed to strengthen MS position on the server side.

I understand now my feeling at that time was partly close to the fact of the truth. My mindset of using IDE was trained by Delphi. However, Visual Studio 2005 with .NET 2 has broken my resistance against using VS products. C# language, IDE and the library had all gain great improvements, and I could find almost whatever I wanted and wished.

The father of Delphi, Anders, knew how to gain the hearts of Delphi programmers. I could see many of such changes were designed toward Delphi programmers.

Delphi may be dying, however, the spirit of Delphi lives through VS C#. Thanks, Anders.

Sunday, June 15, 2008

Birthday Reminder Programs

You may have a handful of buddies for whom birthdays you would celebrate yearly through sending gifts or greetings. If you use computer often, you would immediately want to get assistant from computer programs. So, there are actually quite a load of such programs around, free or commercial, they could be found easily through searching "Birthday Reminder" in Google search.

They fall into two categories:
1. Web service.
2. Desktop program running on PC, Mac, PDA or mobile phone.

Here's a list of popular programs of birthday reminder:

There are so many of them, you would ask which one to choose.

First, you are going to ask yourself what you want and need.
  • Do you use computer programs only for reminding you about your buddies' birthdays, not anything else such as appointments?
  • Are you often online?
  • Do you have a cell phone?
  • Do you want to be reminded through popup, Emal or SMS?
  • Do you mind paying a small fee?
  • Do you use computer to store contact information?
Actually, any calendar program can take care of the job of birthday reminding. A birthday reminder can be simply a whole day event plus an alarm in advance. However, if you don't use any calendar program to remind you about appointments and meetings etc., and just want to be reminded about birthday, a dedicated birthday reminder program might be more appealing to you.

If you are often online, obviously an online service can be helpful in timely manner. In addition to alarms of popup, Email or SMS, some online services can even do gift sending for you. However, there might be some catches which I will discuss later.

If you have a cell phone, SMS is very handy to notify you. Such service generally can only be provided by an online service, such as Google Calendar and BirthdayAlarm.com.

If you have already used computer (PC, PDA or online address book) to store contact info, it will be good that the birthday reminder program may get the birthday info from the address book program to save you from redundant keyboarding.

Have you make up your mind for which ones to choose?

...?




If not, I would pick up a few apparently popular ones to evaluate (excluding those on PDA and mobile phones).

MS Outlook
Pros:
  • Popular in Windows, de facto standard of personal information manager, available in most cooperate Windows PCs and at home.
  • The calendar function is very good.
  • Great sync features with PDA and cell phones.
  • There might be add-on programs that can generate birthday events from Contacts. I haven't found out.
Cons
  • Searching calendar is poor.
Mozilla Sunbird

Pros:
  • Fast
  • The UI is elegant, though less luxury than MS Outlook's UI.
  • Available in Windows, Linux and Mac etc.
  • Portable through portable drives such as USB flash disk, with Portable Sunbird.
  • Searching calendar is excellent.

Cons:
  • If you consider close integration between address book and calendar is critical, Sunbird won't be a candidate.
BirthdayAlarm.com
This long standing online service is popular in North America.

Pros:
  • Alarm through Email and SMS. (SMS is a paid service with an annual fee)
  • Gift sending.

Cons:
  • Need to spam to buddies for inputting birthday info for you, and implicit invitation for joining the BirthdayAlarm.com.
  • Does not support iCalendar import which should be the basic feature of any calendar program.
  • If your friend was born on 1984-02-29, BirthdayAlarm considers the birthday is on the 1st of March in a normal year. If you consider 28th is a more reasonable day to celebrate, you get a catch.
Birthday Calendar::Facebook App
It was claimed there was 2 millions subscribers within the first month.

Pros:
  • Close integration with Facebook, thus birthday info of your Facebook buddies will be available for reminding you.
  • Gift sending

Cons:
  • If your social circle is not limited to Facebook community, this Facebook app is not so appealing.
  • Though the app may import CSV from MS Outlook contacts, but if the day format is not US date format, the program will fail to recognize the date info of the birthday field. And because the CSV has to be in DOS CSV format, non-English characters will be screwed up. You don't want your Spanish friends to get greetings from you with wrong spelling of their names.

Google Calendar

Pros:
  • Elegant UI and fast, among the best online calendar programs.
  • Alarm through popup, Email and SMS. Best of all, the SMS notification service is basically FREE, as long as Google provides such service in your country.

Cons:
  • The searching calendar function is not so stable, sometimes it endless keeps retrieving info from the web. I am not sure whether this is a temp bug, or long standing problem.



The winners are:

  • Mozilla Sunbird
  • MS Outlook
  • Google Calendar

Companion Tools :

GCALDaemon offers two-way synchronization between Google Calendar and various iCalendar compatible calendar applications. GCALDaemon is primarily designed as a calendar synchronizer but it can also be used as a Gmail notifier, Address Book importer, Gmail terminal and RSS feed converter.

Sunbird Addon for Google Calendar

Google Calendar Sync for MS Outlook