Monday, July 6, 2009

Seven Lessons Learnt in Dark

Life is not a bed of roses is a statement that you might very often hear, but I wish I could make an addition to this statement by saying that,

Life is not a bed of roses and if it seems like a bed of roses then you are not living ;)

I know I sound a bit pessimistic by that statement, but I feel that dark periods in life can be a great learning curve and could be used in a positive way.

I had a period in life which I would undoubtedly call as the "darkest period" in my life up to now. The span of this period was not a day or two it was for nearly 3 to 4 years when I was personally feeling doomed and as a family shattered. A failure or two made me come to the conclusion that I was a loser. It was a period of life in denial and fear. Made me spend a lot of sleepless nights just rolling in the bed and then when the eyes closed due to tiredness one thought would come and shake me out of the sleep. Last thing I wanted to do was to meet people, due to the fear that I will be just asked about one bad thing or the other and might make fun out of it. Bitter experiences with a few people suggested that my side of the explanation will never be listened to as people were already with pre-conceived ideas. These were days where I wanted to be at a place all by myself to cry out loud. For brief period found refuge in visiting the temples, but then again after some time stopped it when I found that even the temple had too many people and my own room was a better refuge.


My Intention here is not to talk about the circumstances of that bad period, but instead discuss some good lessons I learnt during this time. My intended audience of this piece is for anyone who is going such a period in life (If ever this would be read by anyone). They might be able to take some points from here to help them come out of it. But believe me life cannot be applied in templates, my way of things might not be the solution to your problem and what I say might be totally incorrect when applied to you.


1. Make decision after minimizing the sentimental factors
When ever we become emotionally attached to things the decision we make too becomes subjective and biased. At times when bad things happen considering them to be “blessing in disguise” could help in keeping the morale up.

2. One of the easiest ways to solve problem is by thinking from the other person’s shoes
A thing we Sri Lankan’s seldom or never do. It can be at the level of family, friends or even between communities learning to think from the other person’s shoes at times gives the chance to realize the harsh realities around problems.

3. Stop perverting data in the way we like to see
Another thing at which we Sri Lankans are excellent at! But unfortunately by doing this we are lying to us and being hesitant to face reality, it can make the situation bad to worse and at times we might be sleeping in the grave that has been dug for us and still be twisting the story.

4. Time is a good healer
I learnt that for non – physical illnesses time was a good healer. Especially when good people have misunderstood me or my ways. At that point arguing or even standing on ones own head might not convince them, but with time as we live our life with a genuine intent they would realize the ultimate truth. So to make this happen, give enough time to heal the wounds in heart.

5. Mind is the greatest Asset invest in it
Training the mind and learning to keep it coherent can be one of the real factors influencing a complete turn around. Though I am no expert in this was at times impressed by the content written by Swami Vivekanada in this regard.

6. Learn to position things.
Positioning is an art. I try to analyze people and think how they are positioning stuff. I first learnt positioning stuff with my amma, after I went out shopping for her, usually I forget that I need to get the goodies back home and get occupied either watching people play or get myself involved in it. So usually I will get home about 2 to 3 hours late and now to ‘ice’ amma I need to position the reason. This was the first place I learnt to position stuff and I think knowing to position well can be a big blessing to solve problems. But the fine line between lying and positioning should not be misunderstood.

7. If you had hit the rock bottom - remember it can be converted in to an opportunity

When at the rock bottom it gives two choices, either live in denial for ever and accept suffering as a way of life, or consider it to be an opportunity. Since we will neither be in the spotlight and scrutiny of the society nor required to live any longer in the fear of failure. Seriously it was hard to think about alternatives and options at this sort of time but after sometime I felt much relieved to rebuild the life at a slow pace doing what I wish to do, instead of doing what the society wants.

Believing that the odds would change will keep us motivated to fight another day. It’s easily said here but going through and living it that way is a huge challenge, but having that thought that there would definitely be light at the end of the tunnel is very important.

TIPS for facing the CMMI Interview

The thought of CMMI interviews and audits are surely making some butterflies fly in some of our stomachs these days. I list down a few tips here which might
be helpful in preparing and facing the interview in a better way.

********************* Before the interview **************************

1. Check Artifacts
Before the interview go through the checklist and see if your project or process has all the relevant artifacts and check if they are at the mentioned common location.

2. Read the process documents.
Go to the Process Asset Library [PAL] and read the process document/s which is/are relevant to your role in the project.
If a Developer - Read the Software Engineering lifecycle document, Configuration Management, Decision analysis and resolution
BA - Requirement Management Process and Configuration Management
QA - Delivery Assurance and Configuration Management
But better if you can check all the process area docs.

3. Find the PIID document and check the questions and the artifacts listed under them.
Here you will come across the CMMI terminology and will get to know what is the artifact that you need to mention about when asked a specific question. If you are desperately out of time consider even memorizing the questions and the artifact in the PIID file, but better if you can understand it.


4. Have a story to tell
As the project team sit down and plan out a consistent story to tell. For example if the BA says he prepared the Requirement traceability then the others need to follow it up by mentioning about it when they answer questions. So plan and have a coherent thinking process to explain the flow of the project.


5. Make sure you know the following terms in CMMI context before you go to the audit,
Baseline, Commitment, PMP, PAL, Integration Testing, Check list, DAR, Configuration Management, Artifact, Work products, Process Documents, Process Templates

********************* At the interview *****************************

5. Remember that the auditor is an outsider.
Do not assume that he will be aware of all the things. Explain to him every artifact as if you would explain to a small kid. For example, Just because you know and use SVN everyday doesn’t mean he will know what it is, so tell him about it and explain how you base line code and how the integrity of the baseline code is maintained.


6. Make use of the first question.
Just like in one day cricket the first few over will be with fielding restrictions, rather to be more specific the auditor will usually throw a very simple question first up. Make use of it; elaborate a lot on the project flow using this question. If you mention most of the things he is looking for in this question, you will get lesser number of questions thereafter. But incase if you miss this opportunity you will end up getting a lot of questions which are really hard to understand with some strange terminology.


7. Ask if not clear
If you do not understand the question politely ask him to repeat it for you. It’s perfectly alright to do so.


8. Make sure you refer all the artifacts while answering the questions.
It’s an unpardonable sin if you miss out on mentioning all the artifacts in you process, so mention all the things, even small things like, xplanner, svn, checklists, review documents, bugzilla, project plan, dash board and so forth.


9. Do not try to innovate.
Remember that the auditor is not your customer and don’t try to impress him by trying to make up a story that you never practice at the organization. This can back fire a lot. Secondly do not try to show off what you had read in the process documents too much unless it has been made use of in the project.

Wednesday, June 24, 2009

Seven Questions I Hate to Answer

1. What are you doing now?
A very ordinary question but while at the University I used to hate answering it, since my usual answer will be "I am at the university", which would 90% of the time lead to a question "Engineering?" and then when I answer "No Science" the look on the face of the questioner would turn sacastic and lead to a general discussion on the future of doing a Science degree. Later on I found a better answer to the first question itself, "I am doing a Science degree, since I was not good enough to get into Engineering" (full stop)


2. Your ID says that you were born in Jaffna, has a Kandy address and now you are in Colombo, Explain?
I need to write an autobiography and give it to them if I am to answer this question...lol

3. Where are you?
A question asked with genuine concern , but when woken up from the deep slumber in the bus can be quiet annoying when you know that even if I look out of the window I will not be able to identify where the bus is currently traveling through.


4. Are you busy?
For god sake do not ask me this question, I feel embarrassed since usually I am jobless..lol


5. How was the paper?
When ever I finish an exam and come out I want to forget about it and get on with something else which is more fun and positive. This question reminds me of all the horrors. So my usual answer will be either "Printed on quality paper" or "Done, do we have anything else which is interesting"


6. Why are you coming here?
Outright a very rude question , I need to have been trespassing to deserve this question. If I had been bugging some one, then of course I deserve it. But funnily I had been asked this question a few times at the airport. Specially when this question is asked from me when I get down from a midnight flight I always think that I should give an answer like "you dumb idiot, check my passport, I am coming back to my own country after a very short stay overseas and I don't need answer this question like a foreigner"..... attitude attitude attitude of some of our government officials cannot even be changed in their tombs.


7. What is your confidence level?
Started to hear this question more recently. When asked I have a big problem in giving a value, since at most times I cannot find any rationale to answer this question. Personally when asked in isolation as part of making a decision I used to think that it was a very dumb question. At least if this is asked along with an opportuity for the reasoning of the confidence level I feel a bit better in answering.

Sunday, June 21, 2009

Look who is talking about responsibility

While traveling around each day I bounce in to different people. Today while taking the taxi to the Changi I met up with an interesting taxi driver. He was a tall, Chinese, middle aged man. As soon as I got into the Taxi I said "I want to go to Changi" and then he asked "what was the terminal?" I replied, “I think Terminal 1...but let me check the ticket and confirm", so while I was digging my bag to get the ticket out. He told me “Tell me the air line la, I might be able to tell the terminal", as soon I had found the ticket and told him, “its Emirates Airlines and Terminal 1”. Then this guy started to explain to me about the airlines and the terminal relationships. I never new anything like that, although I had been to Changi a few times.

Then he explained to me why he asked for the airline, I was utterly surprised by this explanation. He told me even if the passenger has mistakenly told him a wrong Terminal number; it was the RESPONSIBILITY as the taxi driver to use his knowledge in the best possible way to help the passenger to get to the right terminal. Now I thought for a moment and was thinking was it “an extended self imposed responsibility” that this guy was talking about. Then I was trying to map to my job. If customer gives me a wrong requirement which will be a hindrance to him and he cannot foresee, isn’t it my professional responsibility to go that extra mile to make the relevant suggestion with the best of my knowledge?, so for my profession I thought the answer was an yes, This led me to analyze my own thinking process. I was thinking at least for a few minutes why did consider this was unnecessary RESPONSIBILITY of a taxi driver. Then I realized that the mistake that I made was that I did not consider that the taxi driving was a professional occupation, within myself I felt ashamed, after seeing the infamous three wheel drivers around this place , I had grown up never thinking that this was a profession which has a set of ethics and RESPONSIBILITIES.

This was the point at which I realized why the Singapore Taxi drivers stood out. A level of service I had never found in any of the other countries I had been to, it’s not about luxury but a service known for its highest level of trust and discipline.

Then he inquired from me whether if I was reading the paper while I was here. I said I didn’t get to read any local Singapore news papers and was only checking the international news websites last few days. He then related to me the story of a taxi driver who “threw” out two ladies from the taxi in the middle of the night in a jungle. This sounded weird, in Singapore standards by a jungle; I think he might probably be refereeing to a patch of road with trees on both sides of it. Still he was really angry with his fellow taxi driver to have done this and bought discredit to his profession. He explained to me that the taxi driver, when in a position where he is unable to find the place to drop the passenger, he should have called a friend to get the location information or at least should have dropped the two ladies at a safer location at a highway or a mall.

He was so proud of his company, when he said the taxi company sacked the driver and his license was removed. He then told me if this was not done people will start to assume “he can do, I can do, and we can do” and it will spread like a virus and become an accepted practice”!!! Then he hit the nail on the head when he told a Chinese proverb and translated it to English which was something similar to “Kill one to stop hundred”. I usually hate to hear proverbs talking about killing but in this context I should confess that I liked it.

Monday, June 8, 2009

MySQL Development Best Practices

I strongly believe that MySQL programming best practices need to be known and followed by each developer, since practicing query optimization from day one make everyone's life much more easier. So I present here a very simple MySQL Development check list.


Check List for General Best Practices

1. Checking for indexing

1.1 All columns in the 'WHERE' clauses indexed?
  • [Eg. select * from student where StudentId = '7986'; then column StudentId need to be indexed]
1.2 All columns in the 'ORDER BY' indexed?
  • [Eg. select * from student ORDER BY dob; then column dob need to be indexed]

1.3 All columns in the 'GROUP BY' indexed?
  • [Eg. select * from student GROUP BY Class; then column Class need to be indexed]
1.4 All columns used for joins indexed?
  • [Eg. select country.Name, city.Name where country.Id = city.CountryId; both country.Id and City.CountryId are better to be indexed]

2. Checking for over indexing

2.1 No redundant indexes?
  • when having composite indexes remember that the left most indexes can serve as indexing and does not require separate indexes.
  • [Eg. select * from student where house = 'YELLOWS' and class = '3E';
  • if student table has the following indexes a. index(house,class) b. index(house)The index(house) is a redundant index hence not required and better be removed.
2.2 No indexes that has been created and never used within the 'WHERE'or ORDER BY or GROUP BY or for joins?

2.3 No simple indexes created on column which does not have unique values?
  • [Eg. A simple index on a 'sex' column with a data set with a distribution of 45% Males and 55% Females will not be usually used for result pruning]

3. Check for data types

3.1 Has the appropriate shortest data type been chosen for each column?
  • [Eg. If a column can be defined as TINYINT do not have it as BIGINT]
  • [Eg. If a column can be defined as varchar(10) do not define it as varchar(255)]
  • [Eg. If a column can be defined as enum do not define it either as varchar, char or int]
3.2 Has the integer columns not taking minus values defined as 'unsigned'?

3.3 Has the columns which could never have NULL values explicitly defined as NOT NULL?

4. INNODB Specific Checks

4.1 No char columns in INNODB tables?
  • [ Do not use char columns in INNODB always have VARCHAR]
4.2 Does All the INNODB tables have primary key?

4.3 Are the columns in the Primary key of the minimal possible length?

4.4 Has all the statements like, select count(*) from innodbTable; statements eliminated?
  • [Specially do not use on critical tables with a huge dataset. As an alternative to the select count(*) use summary tables]

* NOTE: I had avoided complicated practices and included only the most simple practices.

Tuesday, June 2, 2009

panorama pics






I had become sort of addicted to taking panorama pics while I travel around. If I am to confess the reason why I bought this camera [Kodak M853] its actually because of three things(mainly),
1. Suits my limited budget
2. Has capability for night photography and shake free.
3. The talent of the sales person by showing me the panorama mode.

Now I feel that I had slowly staring to master it and here are some panorama pics taken in Singapore.

Monday, May 18, 2009

Jealousy - Staring at Aish




It has been long time since I wrote any blogs. But today I was tempted to write about jealousy. A topic that could generate a lot of controversy. So instead of doing any writing I thought that I would let this picture do the talking.

Who said a picture is worth a thousand words? Its absolutely lot more than that...lol

*** Pic with make up