Wednesday, November 18, 2009

New Home on Web

Am moving my homepage to Google sites.

http://sites.google.com/site/rkvsraman/
will be my new web address. See you there.

Monday, November 16, 2009

Bringing in the Daughter-in-law

In Indian homes, unlike Western societies, a lot of guys (read sons) live with their parents even after they have married and have got kids of their own. This phenomena can be seen across most of the ethnic and linguistic groups in India. It is almost an unwritten law that sons have to support their aging parents. In such a scenario, the guy's mother (MIL) decides the rules and practice of the house and more than often when the son gets married, the daughter-in-law (DIL) comes to stay at their in-laws place than at her husband's place. Naturally she comes into a fortress where already systems and workflows are in place. This is where interesting cat and mouse stories start. DIL comes in with her own set of aspirations and dreams about 'her own' house and MIL stays with an assertion that this house will run as per her laid down guidelines. Given the strength of each of these actors, the tussle can have various magnitudes.

The conflicts are pretty obvious. From MIL's point of view (POV) it is the authority and comfort of known practices, while from DIL's POV it is the bringing in of the practices that she has been used to at her parent's place and things that she wanted to do new at her husband's place. In both the cases it is the inertia to change and adopt which causes a lot of friction. It is perhaps because of this reason too, that mother's don't prefer their sons to marry outside her community much. The fear is that you might be forced to bring in some changes to established routines. This fear casts its shadow on every action of DIL who does not belong to same community and she is seen with suspicion constantly and any minor flaw is accentuated.

In contrast to it, a DIL from same community is welcomed with much more forgiving disposition. Because MIL is sure that the processes will not change drastically cos the upbringing will be of similar nature and thus there is more comfort level. So from that perspective, a relatively immature DIL from same community is any day more preferred than a trendy, mature modern one from a different community. Funny.

In such a scenario the best strategy for a DIL from a different community, for getting along amenably in the new house seems to be, to start aping the practices of new house. Do it the way MIL does. Slowly bring in subtle changes to process. In this way MIL is also sure that nothing much has changed and things are still to her preference. Inertia is not confronted with.


Now there are wonderful insights that this MIL-DIL dynamics can provide to the migration from Windows to Linux that we as FOSS workers face when trying to convince our customers to use Linux. Users can be seen as mothers-in-law and the operating systems as daughters-in-law. Now users get used to a certain way of working on their computer over a period of time. Whenever we try to replace the existing Windows UI to one from Linux Environment like GNOME or KDE , there is an immediate resistance to it from Users. Where are my shortcuts ? Why does the icon look like this? This is all small crib like the ones from MILs. Cooked rice does not go into freezer. Eggplant needs to be more burnt. All small crib. But could lead creating great friction.

If you had noticed people more easily migrate to from XP to Vista or Windows 7 than to BOSS or Ubuntu cos somehow the 'community' remains the same in case of XP and Vista while when it comes to GNOME or KDE there is a change in the look and feel. Though how advanced and easy KDE or GNOME might be, the change in look and feel sometimes act as the biggest barrier to welcoming Linux systems.

This leads me to wonder if having a Windowmanager which looks and behaves like Windows XP or Vista would help increase the adoption of Linux. The window manager need not stop at aping XP but can also slowly morph into a much better GNOME over a period of time.This will help reassuring the user that nothing much has changed from the past and yet at the same time daughter-in-law slowly and surely brings in newer and better systems in place. For some people who do get convinced with my idea, XpGnome is a good place to start.











Links added with LinkIt

Saturday, October 31, 2009

How many you have?




OK, this is the team showing off its fastrack collection. How many yo have?

Tuesday, October 20, 2009

Relevance and Reference

Teacher: The mark and sweep algorithm of the JVM's garbage collector starts from the root objects in the JVM and mark all object that are referenced in the chain. The garbage collector then removes all objects that are not referenced from memory

Student: Why should an object that is not referenced, be removed?

Teacher: Very simple. Cos it has lost its relevance to the program and so it is no longer needed. If it was needed, it would be referenced by some other object.

Student: Then should it be also fair to remove all those people who have lost relevance. Those who are no longer beneficial to society. Should it be fair to legalise euthanasia?


Teaching Java and Object Oriented Programming can sometimes bring up interesting analogies and discussions. But to do that it first needs to be taught in an interesting way. I have found students struggle with the concept of references in Java as I have found them struggle with the concept of pointers in C/C++. Concept of references almost always draw a blank in majority of the audience gang. Some who do understand also struggle with its application in most of the scenarios. Finally most end up making extensive use of global variables and thus defeat the purpose.

In most of my java discussions, I start with comparing primitive data types like int , char and double with the elements of nature like earth, air, water and fire. It makes sense in comparing like that because all other classes and object are composed of primitive data types like all man made things are made up of these natural elements . Once this simple premise is established, you would be surprised as to how the complex topics like objects and references can be neatly explained.

Taking a philosophical detour in the discussion, it is enlightening to notice that in a sense, basic elements in nature do not have an ownership or an address because they are omnipresent. It is only when human being acts on the basic elements to create derived forms, they get name, address, ownership and other aspects. So while iron in raw form is still iron, it becomes a bridge after human intervention and becomes a Mumbai bridge or a San Francisco one .


Strikingly, human relationships and interactions provide good pieces of comparisons for teaching 'references'. For example a person cannot have a meaningful existence without being related to the society. For any human being to have fruitful life it is necessary that other human being know her/him, benefit him and benefit from him. In a way the purpose of a human being is to interact with the society in some way or the other. Similarly an object does not have any purpose in a JVM unless it is referenced and used by some other object. And object continually change their internal state and external behavior based on the interactions with other objects just like human change their behavior based on experience. So the same person is a daughter, a sister, a friend, a soul mate to different people (ahaaa ... now is that polymorphism ?).

Suprisingly the inventor of Java did away with the delete construct that existed in C/C++ and thus gave the JVM the God status by giving the power to destroy. Destruction of objects can be done only by JVM. Other objects in the JVM can only delink the reference by using null . This is similar to a person being forgotten and thus becoming irrelevant.

And all this brings us to a big realization that nothing in isolation is useful. Things are relevant only when they are referenced by other things, interact with other things and used by/use other things. Else they can be destroyed/recycled. Same principle seems to have been applied for mark and sweep algorithm.

Now don't apply it to Euthanasia. That is altogether a different issue. The social system isn't stable and sane enuf to legalize it yet. Let us not mix up its discussion with Java and OOP. :-)








Links added with LinkIt

Saturday, October 10, 2009

Preferences, Luck, Embarrassments and Relief

Sixth pay commission had definitely disturbed my blissful state of existence. I was at peace with my job, my office accommodation and the daily pick-up and drop that office bus provided. And then sixth pay commission happened. The Basic pay did not increase much in the revised scheme of things, but there was a huge increase in the allowances that Government paid to people who did not avail office transport or accommodation.

Suddenly staying in office accommodation or using office transport seemed economically foolish. Adding insult to injury, both me and Savs were losing out home rent allowance due to a convoluted government rule which says that couples working in same government organizations and living in the same office accommodation will both tend to lose their house rent allowance. And thus we were losing more. Now there were only 2 options. Either me and Savs get divorced and start to live-in instead, so that the office accommodation affects only a single person's paycheck or both leave the office accommodation and search for a new place. The first option was a non-starter. And any which way my state of blissful existence was disturbed.

The issue of not using office transport was resolved fast. We got a new car. And sooner than I expected, I took a liking to it and I realized that my self-imagined issues of not being able to drive well were in fact non-issues.

The issue of finding a new place to live was a big one. And we did not want to move to a new place on rent. So we decided that we will go for a purchase of a new apartment.

And I realized that finding a new house for purchase was uncannily like finding a partner for yourself. Just about every apartment you see, you start wondering if you could own one. Just about the same way as you check out people when you are hunting for a partner. Both are driven by nearly same parameters, taste and affordability.

Some apartments are quite to your liking but unaffordable and some are quite affordable but not to your taste. And some apartments like some people are taken up by others by the time you gather interest in them. And some are just not approachable or thinkable. And some, you will agree, start feeling unacceptable as you get nearer to them.

And after sometime you enter a zone of compromises. You give up on some of your preferences and thus increase affordability. And after many rounds of such give and takes between preferences and price, you finally arrive to a final option.

Many a times luck plays a big role and you get a huge bonus. That happened to me both in terms of partner and recently, with house. You sometimes land up with an option which is your dream choice and yet is totally affordable. Once you get your dream choice, different things happen to different people.

In some cases people stop looking for any further option. You no longer are interested in finding the price of any apartment cos your needs have been met and you now look at other priorities in life.

For some people like me, getting their dream choice brings a wave of relief and embarassment. After my marriage to Savs, I have quite often wondered what would have happened to me if I had ended up with some other woman that I was considering for a partner. All the people i 'browsed' seem so 'not for me' now. Sometimes getting the right person, makes you feel ashamed of not knowing yourself and your own nature well. Sometimes you feel embarrassed for getting interested in 'not so right choice' for you because you had no other option at that point of time. Such embarrassments haunt me till date. Luckily it comes with a relief that in the final outcome, you have not been subjected to a wrong decision and are better off than what it could have been otherwise.


So ladies and gentlemen, yet again I have been lucky in getting my dream choice, this time a flat in Mantri Woodlands. Me and Savs will be moving in into C-001, Mantri Woodlands in a couple of weeks. Look for this name plate when you are visiting us.

Happy Diwali !!



Wednesday, September 30, 2009

Questions people ask about open source software

I am just back from almost an all India Tour. I was part of this "Opensource Demystified" Workshop Series organised by BOSS Linux Team for government offcials. We did this roadshow in all the major cities in India including Bangalore, NOIDA, Mohali, Hyderabad, Kolkata, Trivandrum, Delhi, Mumbai and Chennai.

The workshop was aimed at senior Government officials who wanted to know more about open source software and how it could help them. At each venue about 100-150 ppl attended the one day workshop which covered introduction to FOSS, Linux, Applications, Migration path and Case studies.

Needless to say, when you are introducing open source software to non IT people like senior officers and directors of departments like transport and agriculture, you have to start from basics and explain to people everything right from what is piracy and what is proprietary software.

It was a great learning exercise in trying to share with them advantages of open source software. In the process we invented a lot of analogies to explain the FOSS concepts. I am sharing in this post the way I explained some of the FOSS related queries.

1) What is open source philosophy?


Yeah... in such workshops we really start from start, like this question; What is open source philosophy? For a start we compared it to wisdom for explaining. You could say that wisdom or a good advice is something that you give to people and then they pass it on to others with modification and thus it grows richer and is applied to varied fields. We had used this cliched blah umpteen times and i got bored of it.

I invented a new one. Suppose you and your partner go to a restaurant and like a particular item that was served. What you would immediately wonder is how that dish was prepared. You either ask the chef or try to look up the internet for the recipe. Once you get it, you try it out at home and then also modify it to suit more to your taste. You enjoy it and you also pass it on to your neighbors who pass it on to others with their own modifications and additions.

Open source software philosophy can be compared to such evolution of recipes.

People found this comparison more amusing than the wisdom one.



2) Why do we need the source code?


Most of the common computer users do not appreciate the need of availability of source code of an application. To explain to them why availability of source code is an important deal can be really tricky.

To explain this aspect, I asked my audience why aren't they generally happy with government processes. Almost all of them say that it is due to the non-transparent behavior of some of the government officials. I used that response against them. If they expect accountability & transparency from the government cos they are tax payers, why can't they expect the source code from the software vendors to know how their software works when they are paying for it? This stumps most of the people. Suddenly I see that nod of agreement in most of the people. And by the time they can think of any arguments to that, I would have already moved on to next slide ;-)

3) How does one earn from open source?


Yet another big question. And the cliched response to that is "Open source software guys earn thru services and support". I realised that, people are just not able to understand that concept. They start arguing that if i know how to operate a software and know how it works (cos of availability of source code), why would i need service and support?

For this, i generally ask the audience if they know the basic housekeeping jobs like sweeping, washing clothes, dusting etc. Almost all of them respond with a 'yes'. Then I ask them how many of them have house maids? Majority of them raise their hands. Their question gets answered. Sometime we do outsource things that we know how to do because that saves our time which we can use to do more productive work. Services and support are like that, so that we don't have to invest our time into things for which there are specialised people.

4) Is there an anti-virus for Linux?

Almost everywhere people ask this question. And i tried explaining to them that Linux is highly virus resistant and the architecture consisting of user level permissions, lack of registry files, no Internet Explorer and centrally managed repository makes it virtually impossible for viruses and spywares to creep in. But somehow i noticed that people did not get amply convinced. At Kolkata, an officer from Indian Navy walked upto me in the tea break and patronizingly said, "Raman, though i appreciate your effort in explaining that Linux in virus resistant, the general Windows user has got so much used to Antivirus softwares that s/he cannot feel secure working on a system without it." I changed my slides. I still explain to them Linux is virus resistant but add that if they still need one for additional protection, they have CLAM AV. People are happier now.

5) How can open source software be more secure?

This is another question that people get baffled with. I was reminded of it cos of Jaytirth's comment. Normal people associate security with locking up things like their cash. jewels, bonds etc. To them, it would seem that open source is 'less' secure cos it is available in open.

To them you need to explain that what is available in the open as source code is the material with which you build your 'secure safe'. So you need to have full access to the raw material to see if there are any defects to it. That's where I bring in the thousand eyeballs concept by telling that it is easier for 100 ppl in the room to find a lost clip than for a single or a handful of people to do. Same is the case with finding bugs and vulnerabilities in a software. Open source enables more people to have a closer, critical look at the software. One important reason why there are less viruses and spywares over here.




6) Why are open standards important?

Open standards is tough to explain to guys who have their souls sold to Microsoft Office and think that DOC, XLS and PPT are standard document formats. Bringing ODF into their thought process is a nightmare.

I used my Bajaj Scooter as an example. Bajaj stopped making the most famous Chetak model sometime back. Thousands of people own that model of scooter in India and I was sure that atleast 30% of my audience would own it. I asked them what do they do if the clutch handle breaks or the spark plug needs replacement. "We get it from any spare parts manufacturer" comes the reply. That helps me explain the concept of standards based document formats. I ask them to imagine if Microsoft goes out of business or decides to hike the price of its office suite so much that it becomes unaffordable. That's when documents created in formats which are open are of help because you no longer are dependent on a certain vendor. New softwares can be developed to read those documents. That wins me a lot of new users for OpenOffice.org which is ODF compliant.

7) How do we migrate to Linux?


At the end we get this question. Sitaram Chamarty from TCS had a nice answer to it. The best way to migrate was by first creating an inventory of systems in the organization. Identify and classify them into categories. The categories could be

i) General Office users
ii) Specialized application users

and i add the third one

iii) Pirated Windows users.

If you see any normal office space, most of the people would fall in (i) and (iii). People falling in third category need to migrated first cos they can cause damage to the data and reputation of the organization. Then people falling in second category. Applications which run on both platforms like Firefox , OpenOffice.org , Thunderbird and Sunbird can be installed first so that migration shock and resistance can be avoided.


These were some of the major questions that we tried to address in our workshops.

There were also questions like "How do I become important in a FOSS community?" and some others like "Isn't FOSS killing service oriented software industry in India?"

Each one of them need a separate post. Maybe sometime later.







Links added with LinkIt

Labels: , ,

Friday, September 04, 2009

Looking past the immediate emotion.

Have a look at this movie clip from A Beautiful Mind before you read further.


Did you see it? Though some may find the conversation a little objectionable, i am sure at the end you would find it amusing.

I found what John Nash (Russell Crowe) says in the scene very profound from a totally different aspect.

It goes something like this. Many a times in our lives, we get cheated, people fail us, we get used, people steal from us and things sometimes just take too long or things sometimes just don't work.

S*** happens in just about everybody's lives. And what are our immediate emotions? Anger, Frustration, Violence and Depression. Look at them. All are destructive, they destroy your peace, integrity and harmony.

More than often it is your blood pressure, heart rate, stress and temper that hit the rooftop.

More than often it is you who loses more, commits more blunders, get more negative vibes than the person who cheats you or fails you.

And the funny part is quite often you actually know and feel your emotions taking over you. You willingly submit to it because you think it is a natural thing to do. Get animatedly angry/frustrated at the person/situation who/which wrongs you.

And that's where what John Nash says can be applied to this aspect.

When such a situation comes when things/people don't go the way you want them to, or they cheat you, fail you or make you a fool, instead of performing your normal ritual of shouting, blowing your top/crying etc, assume all that is done and look beyond, like he asks the lady to assume that he has done whatever necessary to court her.

Assume that you have blurted out, shouted , called people names . cried and all that without actually doing it. And thus look beyond those violent expressions of anger, step outside of that scene and view it objectively. Most of the times you will notice that things could have gone only that way

Sometimes you might also notice that things are not yet that bad and you can correct the situation before it becomes worse.


In this way either it dawns on you that things have happened the way they have cos of your actions/mistakes or you have that controlled productive anger which you can use to give back a more cold and clinical response to the person/situation.

And you know what, restraint in expression of negative emotion always puts your opponent on a back foot.

Don't you agree?









Links added with LinkIt

Saturday, August 15, 2009

Accessor methods with side-effects

Teaching Object Oriented Programming can be a lot of fun. I believe that learning happens best when some real life examples are given to explain concepts in programming and software technology. I have tried to do that in my lectures here and there with encouraging amount of success.

In that respect teaching OO Programming is much more easier cos OO paradigm was evolved to ease the abstraction of real life object in terms of computational objects. OO paradigm helps model real world entities in terms of Classes and Objects. Classes being the templates of types of objects (Human, Car, Bridges etc) and Objects being instances of those classes (Albert Einstein, BMW, Mumbai Bridge etc).


In OO Programming, objects are supposed to have attributes and behavior.The attributes of an object are the values of the various aspects of the object like the color of a car being red or grey and number of gears being 4 or 5. The behavior of an object is the way the object conveys its own state to other objects or allows other objects to change its internal state. Like turning the ignition is the way to start the car engine. The attributes of the objects are modeled as member fields while behaviors of the object are modeled as member functions (a.k.a methods).

It is agreed upon by most that it is a good practice in OO programming to avoid direct manipulation of member fields by other objects. This is also known as Data Hiding. The idea is that allowing the direct access to member fields of an object for manipulation can sometimes break the integrity of the object. It is more like trying to drive a car without the controls. You might still be able to do it but the car will kaput before you move too far. It is always recommended that data fields are manipulated using the member methods which can take care of the integrity of the object.


When we talk about member methods, there are 2 kinds of it, accessor methods and mutator methods. The methods which give out the information of a state of the object to other object are called as accessor methods. This is like somebody asking your name. You just tell them your name. Nothing changes in you when you tell your name to others. Like that. So generally accessor methods do not have any parameters passed to them. A signature of an accessor method would look like

public String getName();

Methods that change the state of the object are called as Mutator methods. It is like someone else telling you their name. Since it is information entering into your system, your state is permanently changed. You now know the person also by her name and so the information that you have now is updated/modified/added etc. Mutator methods receive information from other object by parameters. A signature of a mutator method would look like

public void conveyName(String name);

And there came a third kind. Accessor methods with a side-effect. These methods were supposed to give out the information of a state of the object to other objects but at the same time also alter the internal state of the object in some way. Explaining this concept was a bit difficult. How could some method change the state of the object while just conveying its state? I tried explaining it through Heisenberg's Uncertainty principle which says that position and momemtum of sub atomic particles cannot be accurately determined simultaneously without changing one of them. But i realised many students are not keen about quantum physics. I had to look at something more interesting.

And then i cooked up this one from my personal experiences. Suppose you have a girlfriend. And after you have been with her for a sufficient amount of time, you get really fond of her and want to take the relationship to next level. You propose to her. Now this is an accessor method. You just want information from her if she loves you or not. And you might express it in this form

public boolean doYouLoveMe();

See the method, a pure accessor method with no parameters. But the response to that is going to permanently change the way the she thinks and feels about you for the rest of her lifetime no matter the response is a yes or a no. In all probabilities your relationships might never be the same again. And this is what is called as an accessor method with side effects. The one that changes the internal state of the object while giving out information.

Do you get the concept now? Do I see you nodding?


















Links added with LinkIt

Friday, July 24, 2009

Amazing Abilities

Look at this video




Can you believe these 2 kids cannot see at all? Amazing!!

Thursday, July 23, 2009

"Reduce the Guilt" Syndrome

I wonder if humans inherently live in constant paranoia. Constant fear of something going wrong, something going worse. How many times have I seen people telling that they are happy and then touching wood or doing something of that kind. A constant fear that prevents them from expressing their happiness more freely. A constant fear that if things are bad, they could become worse and if things are good, they could become bad.

And then we see defense mechanisms. Superstitions, faith and rituals are the escape route. Savs tweeted about somebody and though I was amused at first, I could understand the logic behind it. You do not want something to haunt you when things go wrong. When Appa died, somebody in the family during the mourning told me that according to my horoscope, my time had come to do last rites for my Dad. And so even though according to dad's horoscope he was supposed to live till 76, he had to pack up early cos my time had come to send him off. Rationally an utter nonsense thing to believe or say. But that left me in slight unexplainable guilt for a couple of days. As if I was responsible for his demise.

I wonder if society evolves ways to see that a person does not live happily by herself/himself. Invents ways to blame the people for things that go wrong in their lives. Society sees to it that chanciness and interplay of so many events that affect your lives do not leave you guilt free. If a person dies in a house, people try to see all kinds of things that don't exist. The Vaastu of the house, the poojas you did and all things. And if you have not done any things that could have been done, you are in for trouble cos nobody is gonna miss an opportunity to tell you how big a price you are paying for that small thing that you decided not to do.

And thus we spend a sizable amount of our lifetime engaging in "Reduce the Guilt" activities. Performing rituals, touching wood, avoiding black cats and so on. Just to be less blamed when you are not getting married even at the age of 35. Wrong things, bad things still continue to happen. But atleast you can now blame the fate and not something that you avoided to do or did something that you shouldn't have.

"Reduce the Guilt" syndrome is only way I can explain the things we do but cant explain. And we would keep doing it cos of our own fear and our hope that something supernatural has the power to make our cholestrol vanish by uttering some sounds and save us from heart attack.

Funny people us.





Links added with LinkIt

Wednesday, July 22, 2009

An optical illusion

Look at this photo below.




At first sight you might get a feeling that this is a picture of a tall tree and the photo shows a part of the stem with branches around it. Well if you do, it is an optical illusion.

Scroll down for the actual photo.




















































Here is the picture.



It is a photo taken by yours truly near the banks of backwaters of Dal lake

More photos from Srinagar trip are here.










Links added with LinkIt

Saturday, July 04, 2009

There goes your lower berth!!

You know what's very weird about one's name. It is the most coveted possession of yours and yet it is others who use it more than you. I wonder if same kind of weirdness can be attached to the lower berths in trains in India. I have observed that people who are in the age-group of 20-45 and more so if they are men, they automatically forfeit their right to lower berths even if Indian railways allots them one. I have been an victim and an observer to others getting victimised many a times to this unwritten law. The law that young men (and some women) are hereby ordered to give up their lower berths to any person who demands for it.

Let me list some people who assume that they can ask anybody for lower berths.

1) Old and not so actually old (but visibly old) people (people above age of fifty).

2) Fat women even in their early forties (Should i be the victim of their uncontrolled diet and other reasons).

3) Diabetics (why can't they just get down each time. That exercise will do them good).

4) Old men with cute daughters (You become a victim of your own chivalry). Its gone the moment you see the girl.

5) Young woman with infant (Small sacrifice that you do for the next generation). The husband looks at you as if it is your duty to help him raise his kid. No wonder somebody said, "It takes a village to raise a kid". In this case it is the train compartment cos the whole compartment is going to suffer the high-pitched midnight celebrations of the infant.

6) This one is a personal experience. Recently an Indian couple with an American lady came and sat next to me. I had a lower berth. The Indian host said, "She is from America and has never travelled in crowded Indian trains. We should be good hosts to our guests. Can you give up your lower berth?" WTF nearly popped out of my mouth. I managed to give a sarcastic smile, nodded negatively and looked away. And the whole journey that fellow was looking at me as if I am enjoying a privilege that is nearly criminal.


Do you have any similar anecdote?


Links added with LinkIt

Monday, June 08, 2009

Gaps and Vacuums

There used to be a time when I used to take the Hosur Road to reach office if i was driving on my scooter. That was the only road available and used to be a crowded one at that (it still is). I used to find it fun to drive on that road. Although I don't fashion myself as an aggressive driver, being on a 2-wheeler, you could always sneak in between 2 cars and get ahead. Because of the smaller size of your vehicle, you could easily get ahead of bigger vehicles. And it was fun cos, you could get that feeling of getting ahead of somebody whenever you wanted it. You could close the gaps between your current position and the vehicle ahead of you by pushing that extra bit. You could "Race on Demand".

And then Hosur Road Elevated Highway construction started and it became too dusty a road to ride on. We found an alternate route which we call as the Bettadaspura route. This route was a totally unexplored one. It was a 2 lane road, with vast undeveloped areas in between. The 14 km drive on this road would actually give you a feeling of travelling through a country side with vast open lands and very less development. There were hardly many vehicles you would meet. And at times, if you are driving after dark, you start feeling eerily lonely. A total contrast to Hosur road where you would find vehicle and road side shops open well beyond midnight too. This new route would be deserted by 7 in the evening. On that road, you had nobody to race with. No getting ahead of anybody and sometimes you don't even get the feeling of moving ahead cos the terrain is so uniform. It would be like moving in a vacuum. And on this road with my 15 year old scooter, it was a bit of a risk too. If anything went wrong with me or my vehicle on that road, it would take some time before i could expect any help. This would play on your mind and your motive would be to get home, ASAP.

Recently I got to drive on Hosur Road again on my scooter. I found that road horrible too. There were just too many vehicles around. You just could not have a space for yourself. Somebody is always honking from behind and somebody was getting dangerously close to you. And there was the conflict. I now found both roads uncomfortable to drive on.


And then it changed. We got a car.

We still travel on the same Bettadaspura road but now 'we' travel rather than 'I'. Nowadays we car pool. Me, Savs and Selva sir come together. So it is one of us driving, while others look around. And suddenly it is so much more fun to travel on this new route. From the comfort of your car and more faith on its performance, you no longer are very tentative about the sparse traffic. You now have the guts to look around, find new routes and take new ways. You suddenly move out of that 'reach home' attitude to a more exploring one. You are no longer afraid of long drives. In fact vacuums gave you an opportunity to explore laterally too. At the same time even city traffic like Hosur Road is undaunting cos with a car, you know you have your space in the cabin of your car and no other biker is gonna step on your feet when he stops next to you at a signal.

And as I turn 36, I am changing my perception about my profession on similar lines. I realise that I have been indulging more in using my professional skills in 'city traffic' areas and closing the gaps. Most of my and my team's efforts have gone into filling up the current requirements of the market and the people. We thought it to be of more value to fill the current gaps and not look at vacuums. And not that the efforts that we put in were not fulfilling. In fact some of the visibility we have had were all cos of the work that some would term as "low hanging fruit". And I am not complaining. Those activities at that phase were partly required for survival as a group and partly as a skillset building exercise.

But I guess time has come to change.

While talking to Dr Mudur once, I heard him say "We at NCST, never wanted to do things that companies like TCS or Satyam or Infosys could do. We never wanted to be that Panwala (Petty shop) software developer. We wanted to do work which differentiated us from others. Not the regular GIGO work." Those words sometime hurt and sometimes were an inspiration. And now reporting to a boss like Dr Sasikumar gives me an opportunity to try to do things that this place is/was made for. Can we look beyond? Can we look at vacuums? Can we explore some bigger problems in computer science? Can we look at going vertical and deep rather than horizontal and relatively shallow? Some questions that the team is giving positive vibes to now.


So are we gonna stop closing gaps? Not at all. Driving thru city traffic is still a skill that we need cos thats where ATMs and Malls are. We need money for the group and we need to do projects that fund us. Sometimes these projects are more development oriented with little or no 'research'. But thats OK. That forms part of our bread and butter. Thats where the team members have an opportunity to get individual visibility. But thats not the only thing we will do henceforth. Each member in the team will be part of a group that will dig deep in a selected area. And we will venture into open lands. Our aim in that activity will not be to reach, but to create landmarks on the way. To collaborate with the few whom we meet and ask directions and talk about the road behind and road ahead. To share and not to compete. That will be a wonderful journey too if you could balance it nicely with the rat race.


I turned 36 now and I am just starting. It is a new journey. Wish me luck.











Links added with LinkIt

Friday, May 29, 2009

You can GXLiterate on OpenOffice.org now




GXLiterate is a Google Transliteration Service based transliterator for OpenOffice.org.

It currently supports transliteration from English to Hindi, Bengali, Gujarati, Kannada, Tamil, Telugu and Malayalam.

You can download it from here.

If you are interested in developing your own transliterator, you can use it as a framework.

Download the source from here.

Happy GXLiterating!!




Links added with LinkIt

Sunday, May 17, 2009

The picture says it all...





Me and Savs are happy owners of our first car Hyundai Santro Xing GLS.







Links added with LinkIt

Monday, May 11, 2009

Exploring OpenOffice.org API through MindMaps

Started this pet activity over the weekend.

I am building XMind Mindmaps for select OpenOffice.org service APIs.

Visit this new blog.





Links added with LinkIt

Monday, May 04, 2009

Indic Scripts and Jasper Reports - An Interesting episode in Open Source Development

This post explains our efforts in providing Indic Script Support in PDF Export of JasperReports. The whole sequence of searching for the solution was very enlightening, entertaining and engrossing. We hope it to be a good case study in how open source solutions are developed using various on line resources like Forums and Mailing Lists.

About 2 months ago, one day i receive a call from Mr M R Rajagopalan, Director of CDAC Chennai and Head of the BOSS Linux Project. "Raman, do you know why Jasper reports does not support Indic Scripts in its PDF Export while it supports Arabic?" I had no clue. "NIC guys need it yaar, can you do something? I heard it is based on Pango". Pango was familiar technology. I said "It shouldn't be an issue if it is based on Pango. Will look into it."

And there I could sense the start of yet another activity. Looked around. Laxminarayana from my team was the best suited for this activity. The fellow had intelligence, enthusiasm and huge amount of gumption. I asked him if he would like some activity which involved a bit of 'search' and 'research'. He looked excited. Gave him the job.

In a couple of days he came back with his first finding. JasperReports was not based on Pango. It was based on iText. Ouch. Wrong start. Had no clue of how iText works. We downloaded the source, built it and tested it for Arabic scripts. It worked. We tested it for Devanagari and Tamil. It royally goofed up. Look at this output (see Hindi and Tamil rendering).

I use to believe that except for the script direction, there were lot of similarities between Arabic and Devanagari as far as Font Rendering was concerned. Both scripts heavily used ligatures and in both scripts, the visual representation for a character could change based on its position in the word. When we tested for Arabic, all these joins and ligatures were perfect. And it looked so sore with Devanagari. Naively i sent my first mail to iText mailing list.

We got no response. We looked into the code. We found a Java file called ArabicLigaturizer.java. Had read about a discussion on Ligaturizers on the iText Mailing Lists. Looked through the code. Couldn't understand its usage. So dropped yet another mail. Still no response.

At the same time Laxminarayana realised that the code had no reordering logic. Reordering is very inherent to complex scripts. In complex scripts like Devanagari , the characters change their order of visual appearance which is unlike Latin scripts in which characters are strictly left to right in order of appearance. In complex scripts 2 or 3 characters combine to form a totally different shape (what we call as glyph). And surprisingly no such ligaturization or reordering code was visible in iText source.

This led to an enlightenment. Arabic script needs no ligaturization, only substitution. The Unicode standard had created character representation for all possible Arabic glyphs. While Indic Scripts like Devnagari were grossly underrepresented. So no reordering logic was needed in rendering Arabic while Indic scripts relied heavily on opentype tables and rendering engines like ICU or Pango for representing the complex text layouts.

The next step was to get the reordering code into iText. I sent a mail substantiating my request with our findings. The conversation with the original developers was interesting. Finally found out that the solution was not going to be a trivial one. iText had no provision in its current state to support Indic Scripts.

The capability had to be built ground up and was not a job to be over by the weekend. And i could not invest longer duration into it since it was not an activity that I could account in my mainstream work. Maximum we could invest was a couple of months and that was already spent unearthing these findings. Had to look somewhere else. Was it end of road? Thankfully not.

Maybe it is due to our association with OpenOffice.org or maybe not, but, whenever I had thought about creating PDF files, OpenOffice.org was the only thing that came to my mind. For a long time, ability to export to PDF was one of the major features of OpenOffice.org. I knew OpenOffice.org rendered Indic scripts well and that it was based on ICU's rendering logic. We tried exporting PDF from OpenOffice.org for a document in Hindi and it did well.

We saw a light. We got an idea. An idea fundamental to open source development. Why re-invent the wheel? Why couldn't we just use the capability of OpenOffice.org to export Jasper report to PDF. Our involvement in developing couple of extensions for OpenOffice.org made it comfortable for us to explore the OOo SDK. The idea gripped us. We found 3 resources.

1) Ability to export Jasper files to ODF format
2) API and code to export OpenOffice files to PDF format
3) Ability to write OpenOffice files to an OutputStream

Got it into the JasperReports code and voila, the system's ready. And we did achieve it in a relatively short time, something that seemed as a huge task. We could now support scripts like those of Devanagari, Tamil, Thai and Sinhalese in PDF export for JasperReports. And in true open source fashion we release the code today.

Go get it from here and incorporate it in your projects if you need support for these kind of languages in JasperReport's PDF export. Would be happy if you drop us a line or mention about it on your web page.







Links added with LinkIt

Labels: , , , , , , ,

Sunday, April 19, 2009

Normalize your notions

There is a saying in Tamil, which roughly means that "the people who are near and dear express with concern and others express with mockery". Same thing happened even when I developed a paunch sometime last year. My mom and Savs starting insisting that i start taking my shape seriously, while others would mock that I was now slowly slipping into that middle age sedentary lifestyle and that now I have "settled down".

Nevertheless the message was that I should now start exercising. I am a person who was in good shape for a long time and have a high esteem about my fitness levels. I used to work in a workshop before and was quite confident about my physical strength and stamina. And thus when I started preparing myself to get into this new habit of walking in the mornings, in that half asleep, half awake state early in the morning, I used to dream that I am sprinting between my apartments and Meenakshi temple which is about 1.5 Kms away. In the dreams I found sprinting a distance of 3 Kms a very easy and simple thing to do. I found it easy because I had read Srinivas's accounts of his running 12 Kms and 10 Kms in marathons. I thought running 3 Kms a day is a cakewalk. Then I actually started it. I started walking 3.5 Kms a day and after a while started running portions of it. Thats when it dawned.

It dawned that my stamina levels aren't as great as they used to be. I could hardly run for 100-200 meters before I would start panting and puffing. The guy running 3 Kms a day wasn't going to be me. I recalibrated my dreams. I could be sure that I can briskly walk for 4 Kms a day but sprinting wasn't gonna happen by any stretch of imagination. This has been going on for last 1 year. I have been more or less regular in my habit of walking and thus I have got back into that habit of exercising. I now notice that my stamina levels are improved. I can now actually jog a couple of laps before I start gasping for air. And now when I look at that dream of mine about sprinting to Meenakshi temple, I am still not upto it, but i definitely know that I am much better off than where I was, last year same time.

Similar thing about what i thought about driving cars. I have seen so many of my friends and colleagues drive so effortlessly that I thought that even I would be able to drive car very easily. And the day came when I first sat in the driver's seat. I realised that it was nowhere near to what I had imagined. The controls were all different from my scooter and I nearly went into a roadside trench. I was devastated. My self esteem took a drubbing. Before that day I used to actually imagine that I would drive as effortlessly as my friends or as those stars in the movies. And that day I realised that it wasn't gonna happen that way. I joined a driving school. Couple of days at school and I found out that i had to unlearn a lot of things from my 2 wheeler experience. Things are not as easy as they seem. And now, a fortnight after my driving classes, I know that I can now drive. I am still nowhere near that comfort level that my friends have but I am sure that I can take a car out of the parking space and get it on road. That's what i have recalibrated my driving abilities to. Today I am sure that with enough practice it is not gonna be long before I might drive with ease that I had taken myself granted for.

Thats the chautauqua for the day. Its very easy for us to assume that we will be able to do what others do, because when we see others doing it, it seems very natural. What we don't see is the subconscious coordination that happens between their efforts, thoughts, judgement and actions. That coordination comes after a lot of experience and practice. We simply choose to discount it at first. Then when we start attempting same set of tasks we realise the hardships and our inabilities surface. But at the same we also realise that given enough time to it, even we are not far behind. Time and our efforts are the only factors. If we too put the kind of time and efforts people have put on certain tasks, we would perhaps will be able to do as good as even better than what others do.

But if that's not possible, it is better to normalize your notions. Have a great day.





Links added with LinkIt

Thursday, April 02, 2009

Couple of cases of comforting calmness

Long back when we used to live in Mumbai (at Vasai), my uncle (Mama, mother's brother) used to live in a nearby apartments. My Grandma used to live with him. On one of the evenings, my aunt (Mami) was out with kids and Grandma was alone at home. She finished the work and came out of the flat to get some evening breeze. Usually she would see that the door does not close by itself, by putting the stopper. That day she forgot and as luck would have it, the breeze from the balcony pushed the door to close and lock. When Grandma came back she found the door closed on her. Panic gripped her. Mama had warned her at times that these doors lock by themselves and there is no other way to get in except to break open one of the windows. She got nervous and started cursing herself for being so careless. What would my son say? Shudnt I be more careful? All questions tormented her. About an hour later Mama returned from work. Grandma told what happened. Mama promptly asked her not to worry and went to a neighbor and arranged for a screw driver. He went around, unscrewed one of the windows and entered through it. He opened the door for Grandma. Instantly Mama became a hero to my Grandma. Not cos he arranged to opened the locked door, but cos he did not utter a single word of annoyance or disappointment at Granny. Umpteen times I have heard her say in the later years "The door locked by my mistake and he did not say a single word."

True, it is so easy to get mad at people. And it is our tendency to get mad at those who are near to us. But in most cases it does not help. If somebody has done a mistake, by all probabilities people would feel guilty about it. Your expression of annoyance or disappointment by shouting or blurting is only gonna make the person feel more defensive making her/him justify being 'not wrong'. The chances that they will realize/admit their mistake is far reduced and thus is their chance of being careful in the future. The best strategy is to keep calm when you see that the person who has done the mistake is already feeling guilty. You can become a hero just like that.


Another incident that comes to my mind is when me, my yet another uncle (Periappa, Dad's brother) and aunt (click on the Who link on this page to know about them) were going in a car. Uncle was driving it and we stopped at a traffic junction in the middle lane of the road. Since it was gonna be a long before it turned green, uncle switched off the engine. The traffic lights turned green after a while and uncle tried to turn the car on. It would not start. Instantly the cars behind started to honk and Aunt got nervous. She yelled at Uncle, "Raja, do something, start the car, people are getting impatient". Uncle coolly replied, "What do I do Jaani (sweetheart), the car would not start?". That did it. I could not help laugh and Aunt too cooled down instantly. Uncle tried again and engine purred to life.

Sometimes being aware of the situation you are in and acknowledgment of your relative helplessness alleviates the tension a lot. Try laughing at the problem and notice how the gravity of impact is instantly reduced. Solutions become visible and situation is much more under control.

So next time in a pressure cooker situation, take a chance, be calm.






Links added with LinkIt

Sunday, March 22, 2009

The door is open, but please knock.

"Standing at the door syndrome" was one of the terms that fascinated me and Savs quite a lot after our marriage. We found the term very profound and used it in multiple contexts. It was applicable to any context where we would hesitate in exercising any right over each other. Be it in asking for any help, or permission to commit something on behalf of both of us or, to that extent do anything that we thought would annoy our partner.

And the hesitation was for obvious reasons. Both wanted to reassure each other that we hadn't made the wrong decision of choosing incompatible partners of different wavelength and frequency.

One of the areas where the syndrome was very visible was when each of us had to take some decision pertaining to our own personal matter be it career, studies, financial or any thing related to one's friends etc. Since both of us had lived our lives as an individual away from parents for a considerable amount of time, both had developed a high sense of need for personal space. And both of us respected each other's personal space. So we would restrain ourselves from giving our opinion or advice to each other in what we perceived as one's 'personal' matter. In a way we would leave each other to resolve their issues themselves until explicit help was asked.

But again since we were that kind of people who had highly developed sense of individualism, we would hardly ask each other for help since we thought we could handle it ourselves. But slowly we also started to realize that our partners who have also been in similar situations and have also had their own share of mistakes and right decisions in life can offer some insights on the current issue that we are facing. Slowly we realized that our partner was standing at the door silently to be invited with her/his opinion.

And it turned out that we did have good insights and pieces of advice that would help each other. And thus we started asking each other their views on whatever the issue may be. Slowly we got used to asking each other about anything and everything.

And this took a logical turn. We started assuming that "The door will be open always". In fact we reassured each other sometimes even explicitly that "The door will be open always" It was a good feeling to start with. It gave a satisfaction of being wanted and being listened to. Both actually started believing that this lead to better bonding. We felt very free "To trespass" into everything.

Maybe the society around us also had a role to play in making us believe that "To trespass" lead to better bonding.

But that is actually not correct.

Slowly we realized that we actually abhored an opinion on all things. Sometimes we did want to take our own decisions all by ourselves. We definitely did not want to put our relationship on a backseat but we did not want to find ourselves asking and listening to our partner for just about every small thing and sometimes things that involved our partner only remotely.

Slowly we felt the need "to close the door again." But we did want to close it entirely cos we valued each other's opinion a lot. We left the door slightly open, latched with the door chain. We now made it mandatory to knock. Now we did not have to stand at the door waiting to be invited, we could knock. But to entertain us or not was left to our partner now. Most of the times our opinions would be welcome through the door, but we reserved the right to sometimes give our partner's opinion a 'delivery boy' treatment (settle at the door itself) and sometimes, though very rarely, slam on an unwelcome opinion.

This works well. What do you say?






Links added with LinkIt