Archive for July 26th, 2007

Young Bill Gates Coding

This is the summary of speech Given by Alex Stepenov (Principal Scientist, Adobe Systems) at Adobe India on 30 Nov 2004.

1. Study , Study and Study
– Never ever think that you have acquired all or most of the knowledge which exists in the world. Almost everybody in US at age of 14 and everybody in India at age of 24 starts thinking that he has acquired all the wisdom and knowledge that he needs. This should be strictly avoided.

– You should be habituated to studies…exactly in the same way as you are habituated to brushing teeth and taking bath every morning. The habit of study must become a ‘part of your blood’. And the study should be from both the areas: CS, since it is your profession, and something from non-CS…Something which doesnot relate to your work. This would expand your knowledge in other field too. A regular study, everyday, is extremely essential. It doesnot matter whether you study of 20 minutes of 2 hours, but consistency is a must.

– You should always study basics and fundamentals. There is no point in going for advanced topics. When I was at the age of 24, I wanted to do PhD in program verification, though I was not able to understand anything from that. The basic reason was that my fundamental concepts were not clear. Studying ‘Algebraic Geometry’ is useless if you donot understand basics in Algebra and Geometry. Also, you should always go back and re-read and re-iterate over the fundamental concepts.

What is the exact definition of ‘fundamental’? The stuff which is around for a while and which forms basic part of the concepts can be regarded as more fundamental. Of course, everybody understands what a fundamental means.

2. Learn Professional Ethics
– As a CS Professional, you are morally obliged to do a good job. What this means is that you are supposed to do your job not for your manager but for yourself. This is already told in Bhagwatgeeta : Doing duties of your life.

– The direct implication of this is: never ever write a bad code. You don’t need to be fastest and run after shipping dates; rather you need to write quality code. Never write junk code. Rewrite it till it is good. Thoroughly test every piece of code that you write. Donot write codes which are “sort of allright”. You might not achieve perfection, but atleast your code should be of good quality.

– Let me quote my own example in this context. You might have heard about STL, The Standard Template Library that ships in with C++ compilers. I wrote it 10 years ago, in 1994. While implementing one of the routines in the STL, namely the “search routine”, I was a bit lazy and instead of writing a good linear order implementation of KMP which was
difficult to code, I wrote a best quadratic implementation. I knew that I could make the search faster by writing a linear-order implementation, but I was lazy and I did not do that. And, after 10 years of my writing STL, exactly the same implementation is still used inside STL and STL ships with an inefficient quadratic implementation of search routine even today!! You might ask me: why can’t you rewrite that? Well…I cannot, because that code is no more my property!! Further, nobody today will be interested in a standalone efficient STL …people would prefer one which automatically ships out with the compiler itself.

4. Follow your culture [MUST READ]

I have seen the tradition that whatever junk is created in US, it rapidly spreads up in the rest of the world, and India is not an exception for this.This cultural change creates a very strong impact on everybody’s life.

Habits of watching spicy Bollywood or Hollywood movies and listening to pop songs and all such stupid stuff gets very easily cultivated in people of your age…but believe me, there is nothing great in that. This all just makes you run away from your culture.

And there is no wisdom in running away from your culture. Indian culture, which has great Vedas and stories like Mahabharata and Bhagwatgeeta is really great and even Donald Knuth enjoys reading that.

You should understand that fundamental things in Indian culture teach you a lot and you should never forget them.
Finally, I would like to conclude by saying that it’s your life…do not waste it on stupid things…develop your tests, and start the fight.

[Download PDF]


Read Full Post »


The open-source movement is quickly gaining ground and replacing proprietary technology – if you believe the hype. As with anything that excites the market, vendors are not slow to jump on the bandwagon, although their commitment is sometimes less than total and their offerings often owe more to PowerPoint than time spent on R&D.

When switching your business to open source software, you lose the licensing fees but may pick up other costs.

When businesses hear the term “open source” software, it often translates into another word: free. And while open source code technically is just that — free for all to use — it doesn’t mean that there are never any costs associated with deploying open source.

“The philosophy of open source is more about freedom — to look at the code, modify it, and that there’s no copyright,” says Michael Goulde, senior analyst for Forrester Research, of Cambridge, Mass. “Companies can save money on their expenses, especially if they don’t need all the bells and whistles that a commercial software package has. An open source package might have all they need.” Still, he warns that there are hidden costs of open source and small and mid-size businesses “can get in over their heads really quickly.”

Many businesses say cost is not even a factor when moving to open source. They simply pick the best technology for the job. But companies should consider the following before committing:

No. 1: Packaged open source comes with a price

No. 2: Support isn’t always free

No. 3: Consultants can cost you


The people promoting open source are keen to talk about cost. So let’s look at cost as it relates to one piece of technology heavily promoted by the open-source movement, MySQL.

MySQL has almost singlehandedly reignited interest in the database market. But the first thing to note is that open source does not equal free in this case. A professional licence from MySQL costs $495.

Entry-level technical support costs $1,500. That’s scotched the idea of anything about it being free.

Jeremy Zawodny, who is described as a MySQL database expert at Yahoo. This is what he has to say:

” One doesn’t need weeks of expensive training and a shelf full of manuals to make MySQL work well. Also the MySQL support is truly outstanding. “

There we are. Cost again. If it’s so easy to use and it is reliable (one assumes it’s reliable since apparently Nasa is using it to run missioncritical applications, although that would put me off becoming an astronaut), why am I asked to shell out $1,500 for entry-level support? And support costs can go as high as $62,400 – hardly a cheap option.

The fact that MySQL comes from an open-source background does not make it anything special. It is using open source as a tagline to gain attention, as are many other IT vendors, large and small. MySQL is a commercial database marketed on the back of interest in open source. source

Read Full Post »