Friday, May 22, 2009

Software Development - A new series 1

A long ago, a friend of mine argued with me that Software development is like painting and developers are painters. As per his view, software development should be done by artists. I straight away disagreed and his argument was immature and naive. Painting and artist are gifted one, not everybody gets those and Software development is a professional job, so it doesn't always required some gifted person to develop it.

Lets take a example of construction field, it is heavy physical intensive work, it required some 250 lbs and 6 feet to perform the job but that is ideal. If a construction company wants to hire only 6 feet and 250 lbs, they can't hire enough employers to build a house and can't make profit. They want to hire any body physically fit for work and then divide work that heavy object lifting job goes to 250 lbs and some arranging, nailing job goes to other below 250 lbs. This is the system, this is how our society work, no body feels discrimination if 150 lbs not getting 50 lbs lifting job.

The same with software development, for a minimum level of coding one should have fundamental strong on the programming language, some working knowledge of database, a decent level of knowledge of Linux/Unix. The distinguish comes as form of expert level, which can be achieved with in 6-8 years of experience. There are 10 million software developers are here in U.S, all of them are not gifted and they are fit into this expert, medium and starter category. But other than that in Software there is one main aspect is attitude, the attitude is really important for developers. In fact attitude is important for any professional work, but i feel very strong about attitude and software development. Development required brain work and run through some analysis/processes in mind all the time hence good attitude required to develop quality software and within budget. More over attitude is really important for young industry like software development.

Why it is important? Again lets take construction field, construction is very old industry and all are well defined and well formed. Lets assume there are 100 people building a house, they may not even know their names each other, but the coordination and building process goes smoothly. All they want to know is what is their job today and when they have to finish it. But the young industry Software development, there was nothing defined, each day there are new development methodology, processes, each company has it's own processes and so on, nothing was integrated and everything working as it's own area. At end of the day, based on my 12 years of progressive development experience, each software developers attitude is making difference of successful completion of project particularly in IT industry.

Based on my experience, there are some main factors contributing good and bad attitudes, they are A. Context Switching B. Stress Management C. Ask other's help/ego.

Context Switching :
What i mean context switching, there are two types of context switching, first as soon as we start to work, we have to forget our personal and concentrate on professional one. second, with in work switch context between projects without losing temper. The first switch is something important and everybody should follow it, a successful career rely on how one separating personal issues with professional life.

[Contd]

Monday, May 18, 2009

Fallen Hero but after May, 21st 1991 Zero

Today is an emotional day in all over Tamil Nadu, Sri Lanka and many Tamil families all over the world. 30 Years of indefinitely fighting against majority Sinhala, finally comes to an end with nothing. There are 100,000 people killed during this civil war, mainly Tamil ethnic. Finally Vellupillai Prabhakaran the leader of Liberation Tiger of Tamil Eelam (LTTE) got killed with his shatter separate country dream.

During the beginning years, LTTE was considered as Civil Right Movement for minority Tamil people. Prabhakaran was considered as the leader for Tamils, but later on the organization was transform itself as a “Cult” like a movement. They want to kill anybody who are not supporting separate country demand and who are not willing to join LTTE organization. The relationship with mainland Tamil Nadu was fractured when LTTE killed India’s one last of hope for reforms Rajiv Gandhi for some lame reasons. LTTE killed Rajiv so do India’s ambitious dream of reforms, because of Rajiv’s murder, India’s reforms were delayed by at least a decade.

I hope now the onus on majority Sinhala government to protect minority Tamil people and slowly integrates them with main stream. It may take decades to achieve it but you just eliminated terrorists which was impossible for India still now even U.S.A couldn’t achieve the success yet. Nothing is impossible.

Source:
http://news.bbc.co.uk/2/hi/south_asia/8055015.stm

Saturday, May 16, 2009

Indian Election 2009 - Results

After i would say 2 decades, this is the clear sweep by a single coalition and Congress led Untied Progress Alliance (UPA) going to form government with no support from anti-globalization parties mainly Indian communists. This election was main and crucial to Indian economy, because we need a continuous, stable, globalization/progressive minded government to solidify the modern economical foundation. Now Indian people spoke the same language from Kashmir to Kanyakumari to give a clear and solid mandate to current ruling coalition UPA to continue their job mainly to improve infrastructure, abolish poverty for next 5 years.

The exit polls suggested that UPA or NDA wouldn't get simple majority and they need support from leftist parties, who are very narrow minded and anti-globalization. But real results went other way. We need a clear exit poll strategy, it is failing consistently for all over the world's election outcome. All over India vote counting started and results were announced with in 3-4 hours because now Indian election commission using electronic voting machine, early days the outcome of election took days.

Here are some highlights from India's Election 2009

1. Youth vote was the clear differentiator for this election, they want a stable government hence they choose UPA. It is clear indication that India's political power shifting from aged generation to younger generation.

2. No one can change democracy election outcome, even though here and there people voting based on caste, community and for money, the final outcome will be same from all over country.

3. 60%-65% people cast their vote for this election, which is not bad as per current democracy standard but everybody should vote and mainly urban people ditch their voting rights for various reason including lost hope with political parties and politicians. Political parties have to note this and work hard to win the trust again.

4. Glamorization and movie star connection to politics is old style. Nowadays one can't win people based on star value and attraction. For example, this time a mega movie star from state of Andhra Pradesh failed badly.

5. Political parties have to change their stance on several issues, if they are out of sync with people's day-by-day issues, future issues they will be kicked out. For example, a leading politician fighting hard for Sri Lanka's issue lost this election because he/his party didn't solve any issues for their constituencies. They forgot that Sri Lanka is out of India's map and the issue will be resolved by Indian central government, UN and other major country leaders.

Friday, May 08, 2009

Twitter Java API

In my opinion, after Apple's iPhone, iPod and Amazon's Kindle, Twitter is greatest innovation of this decade. The simple but powerful innovation allows us to share our thoughts, news, and opinion to 100K plus or even 1 million users within a single click. Amazing doesn't it? How will you share your opinion transparently within 140 chars? The twitter users also has amazing power, people sharing from all over globe by using a single entity is something powerful medium.

I was drawn into Twitter world like a year ago, so far my experience with Twitter is excellent. But every things has it is own drawback, in twitter world there are some a-holes try to deceive us by following us and make us to follow them and then silently unfollow us. I want to develop a small piece of code to find this mischief. But i found an excellent site www.refollow.com to do the same thing efficiently, i recommend all to use the refollow.com to find this rogues. But anyways i did this code to understand various APIs for Twitter. One of the great and fastest Java API for Twitter is from Google but there is no good documentation. Here is step by step guide to integrate with Google java-twitter.

1. Go to http://code.google.com/p/java-twitter/

2. Download Java-Twitter-*-SNAPSHOT.jar. Java-Twitter-*-SNAPSHOT.jar depends on following JARS

commons-beanutils-1.6

commons-codec-1.2

commons-collections-3.1

commons-httpclient

commons-lang-2.4

commons-logging-1.1.1

ezmorph-1.0.6

google-collect-1.0-rc1

httpcore-4.0

httpcore-nio-4.0

joda-time-1.6

json-lib-2.2.3-jdk15

3. Here is the complicated Google's Protocol Buffers. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats. Our job is to download bunch of C++ code and convert it to Java and jar it.

4. Download protobuf*.zip and protobuf*win32.zip.

5. Unzip protobuf*.zip and proto*win32.zip, and find a proto.exe from protobuf*win32.zip.

6. Copy the file to protobuf/src/ folder.

7. Go to protobuf/java and find README.txt for step by step guide to create protobuf-java-2.0.3.jar file.

8. After adding all the above JAR files, the code development is easy and refer http://java-twitter.googlecode.com/svn/site/apidocs/index.html

9. Make sure to install Java 1.6 and set JAVA_HOME variable correctly.

Here is code to find friendship exists call.

Saturday, May 02, 2009

When positive thoughts replaced with….


Time to time I deeply dive into this “positive thoughts” and what make them disappear for some for some point of time or prolong period of time. I mean, when we watch great leader’s talks, most of time they speak on high positive note but for some time they speak on otherwise. Actually we should not always be positive on all the time, sometimes we need to think about other angle. Overly positive thoughts leads to self-illusion and overly faith based leads to always negative. So what is balanced approach?


Actually when we born, we are all positive thinkers, kids always want to explore new things and they never say I don’t want to go to some place or I don’t want to do some things. But after some time they express some kind of fear, 98% kids learn how to ride bicycle but 2% of afraid of learning the same. When age grows the positive Vs negative ratio heightened. The point is sometime environmental causing this flip side. What is it? And how not to fell into the trap? How to be positive?


When I was in California, we (I and 3 other friends) had a road trip to Las Vegas. As usual, everybody talked about money and gambling. One question was asked, how much money you need in order to fulfill your dream? Person A said 100 Million, Person B 50 Million, and Person C $300 for now (because that’s the budget for Las Vegas trip). I thought A and B are high positive thought guys, because they can think a high number and want to win that much money. After spent time there, when returning person C was very positive mood and A, B are negative mood because A and B couldn’t win 100 and 50 million or lost some money, C was made $200 and he was happy. So setting a small, realistic goals/targets always keep us positive and unrealistic goals leads to negative. I think so, it is something to do with our day by day expectation management.


I think we want to be always positive thinkers, even though it has some drawbacks. Be always positive actually yields better results. As a common average human, we all need positive thoughts, to achieve some greater results in our day by day life. It goes like this, a mistake/error committed by positive thinkers will be corrected within desirable time limit, but a mistake/error committed by negative thinkers required positive thinkers to correct it. So think always positive after all safeguards are considered and placed.