Search This Blog

Monday, August 24, 2009

Commitment and Ideas on India

Commitment
So, I've started going to the gym (again!). I should thank two aspects that I have incorporated in my routine for this renewed interest in my health - putting my gym dress on as soon as I get back home and TED.

The first idea was borrowed from David Allen's book - Getting things done. When talking about writing down a list of 'to do' items to better organize your schedule, David emphasizes that it is not just enough to write things down, but you should also commit to what you wrote down by taking a first step on actionable items. As an example, he says that whenever he gets back home, he puts on his gym dress, a first step to going to the gym, as a commitment to the act. I thought it was an interesting concept, and frankly, it is. Every time I put on my gym dress as soon as I got home, I've been to the gym, which brings me to my second aspect - TED.

As I had blogged earlier, I am a fan of TED and try to listen as and when possible. Since watching the video, even if only 20 minutes long, is fairly difficult either at work or after coming home, I downloaded interesting videos to my phone and have started watching/listening to them while at the treadmill - which works great!

Ideas on India
One such video that I watched today was Ideas on India's future by Nandan Nilekani. Nandan classifies ideas into four categories and provides key ideas on each category for a developing nation like India. Here's a quick list:
  • Ideas that have arrived (accepted and implemented)

    • People: from being a burden to engines of growth
    • Entrepreneurs: from villains to role models
    • English: from the language of colonizers to language of jobs
    • Technology: from man vs. machine to man and machine
    • Globalization: from Bombay plan to Bombay house
    • Deepening of democracy: from one party rule to 13 party rule
  • Ideas in progress (accepted but not implemented)

    • Education: universal access to primary schools
    • Infrastructure: connecting the nation
    • Cities: engines of growth
    • Single market: smooth, seamless flow of goods across states
  • Ideas in conflict (not yet accepted)

    • Conflicting political ideologies: policy making gridlock
    • Labor reforms: job protection hampering job creation
    • Higher education: state control or private funding?
  • Ideas in anticipation

    • E-governance: Democracy, technology, efficiency, and transparency
    • Health: avoiding diseases of prosperity
    • Pensions and entitlement: Taking care of the future
    • Environment: Can India's growth be clean?
    • Energy: Driving growth around a new energy model
I think he makes some very compelling and valid points, except some nuances here and there.

While I agree deepening democracy has led to better prosperity, I believe the multi-party system in India is holding India from surging forward as well. In a coalition government like what India has witnessed in the last decade or two, progress literally stalled because political parties were busy fighting among themselves on who can have more power than working together for the betterment of the country. This has even been witnessed in US when one party is the ruling party while the other has the majority in the congress. While I agree that a single party rule is not the alternate answer as it has its own share of problems (especially monopoly), there has to be a middle-ground somewhere.

Similarly, while I agree that cities are engines of growth, I don't think putting more emphasis on the cities than villages is a sustainable solution. With a country having such a huge population as India, the cities rely on the sources from the villages for sustenance. By making cities more important than villages, it's only going to encourage villagers to move to cities, which in turn can reduce the food production, increase dependence on exports, and increase slums in the cities (not all who come to the city realize their dreams, unfortunately). I believe the right balance has to be struck by revamping the agricultural sector by having a more transparent commodity market and by encouraging shared cultivation (encouraging farmers to pool resources and work together so that they can use more advanced technologies for cultivation due to the increased land mass).

I think our 'old' culture, which may be the source of some problems, also holds keys to implementing some of the yet-unimplemented ideas.

The concept of compulsory primary education has been embedded in Indian culture in all its castes by means of Gurukulam (studying by staying at the teacher's - or Guru's - residence and learning till graduation) and apprenticeship (be it warfare, trade, or craft). The problem arose due to the implementation of a western system of schooling without its background. While it may not be practical to enforce the older concepts back (as we have started developing the western background over the years), what might be more effective would be to take some of the aspects of the earlier concepts and applying them appropriately and thereby revamping the educational system in India.

We can also learn a lot from our culture in terms of environment and energy. Indian culture has strong examples on recycling and using biodegradable elements - from 'matkas' (mud pots) used to store and purify water, to 'dhonnai' (cups made of leaf) to serve food. I am sure if we look with a renewed focus, we can find enough and more examples that can be adopted to the new age, while still preserving its fundamentals.

Finally, we don't have to look far on how to avoid diseases of prosperity. At a time when the Western world has taken a new interest in Yoga, India only needs to look inward to ensure a healthy life, while implementing tried and tested Western medicines to eradicate the fundamental diseases.

In all, I'd strongly recommend that you see the video. As Nandan says at the end, it's not just important for India, but for any developing nation and for every developed nation - and this brings me back to my previous title - a strong commitment from the government and its people is needed to help realize these ideas.

Sunday, August 23, 2009

Lord Ganesha and the Super Brain Yoga


Today is Ganesh Chaturthi - the birthday of 'elephant-God' Ganesha, worshipped by followers of the Hindu religion (myself being one of them). Hindu religious festivals are mostly based on the lunar calendar. This one is no different in that the festival is celebrated on the 4th day - (sukla) chaturthi in Sanskrit is 4th day of the (waxing) moon - of the Bhadrapada masa (which is the 6th month in the lunar calendar), which roughly comes mid-August - mid-September in the Julian calendar.

While I tend to be religiously neutral, I cannot but help appreciate and admire the various intricacies and profundity embedded in various religions. Hinduism, probably due to its age, contains numerous nuggets that, when looked with a skeptical (but not cynical) eye, holds a lot of treasures that are relevant even today. It is sad that such important lessons are lost today because most of these symbolisms are taken literally.

Ganesh Chaturthi is one such festival in the Hindu religion that holds a number of interesting symbolisms that are relevant today. Here are a few to my knowledge:

Eco-worshipping
Ancient Indian practices have been amazingly eco-friendly (possibly because plastic hadn't been invented yet!) In temples, food used to be served in containers made of leaf and other plant products, which are biodegradable. In Ganesh Chaturthi, eco-friendliness is taken to another level, where Ganesha being worshiped is made of clay and then dissolved in water once the festival is over, leaving no harmful residue.

The other beauty of this is that anyone with a little bit of clay can create the image quickly and worship Ganesha (Ganesha, by the way, is one of the easiest Gods to draw or sculpt!). This notion brings a level of equality that is seldom seen in other festivals or practices.

Unfortunately, over the years, both these symbolisms seem to have been lost or at least diluted. Nowadays, the size of Ganesha idol constructed and worshiped during the festival has become a status symbol, especially with political parties vying to have a big statue to show their party's affinity to the God. The eco-friendliness has also lost its meaning over the years, with Ganesha being painted in potentially harmful paints that may be water soluble, but not necessarily bio-degradable.

Super brain yoga
Recently, one of my friends forwarded a video in YouTube called Super Brain Yoga. Supposedly based on the works of Chinese accupuncturist Choa Kok Sui, the video shows how a certain action can potentially increase memory and brain power.

What is interesting is that this pose (or exercise), has been associated with Ganesha for hundreds of years. We have been taught as children to perform this 'exercise' a minimum of 9 times whenever we pray to Ganesha. Alternately, this has also been associated with Indian schools as a form of punishment!

While it is sad that neither the video nor Sui's website mentions Ganesha, there are some stronger symbolisms that I could not help but notice.

Ganesha has been associated with education in Hinduism. Moreover, Ganesha has an elephant form. Elephants, as we know, have an extremely strong memory. While I am not jumping to conclusions here, it is interesting that an exercise form supposedly proven to increase brain/memory power is associated with a God who is associated with education/learning and is symbolized as an animal that has strong memory!

I wonder how many other such interesting aspects are there embedded in every religion that has since been diluted or outright dismissed as superstition or blind-faith.

Saturday, August 22, 2009

The inspiration that is TED

Probably around a year back, I was introduced to the website TED (Technology, Entertainment, and Design) via the Presentation Zen blog. I have been hooked ever since. TED is a non-profit initiative whose intention is to disseminate "Ideas worth spreading". They host conferences and make all their talks available for free. The talks also come from other similar conferences as well.



The great thing about TED is the format - each talk is just 20 minutes long (sometimes even less), which is an easily-digestible format in today's world. The talks are given by experts in their area and in many cases, accomplished authors.

I have seen and heard some absolutely inspiring and fascinating talks here and strongly encourage you to take a look as well. It's definitely worth your time. The best way I found to listen to the talks is to download the videos to my phone and then listen to them while at the gym.

You can also subscribe to their RSS.

To get you started, here are my top 5 favorites:
  1. Sugata Mitra - How kids teach themselves. Sugata talks about his experiment where he found that kids can self-learn without much of an external help. This experiment is apparently the inspiration for the book Q&A by Vikas Swarup, which then went on to be made as Danny Boyle's film, Slumdog Millionaire.
  2. Pattie Maes - Sixth Sense. This is an amazing demo (only 8 minutes) where the head of MIT media lab shows her team member, Pranav Mistry's invention that takes social networking technology to an entirely different level. I can see this becoming a reality in the next few years.
  3. Hans Rosling - New insights on poverty. Hans shows how statistics can be inspiring, shocking, and definitely not boring. His passion is extremely contagious. Next time when you generate a report to your boss, think of Hans and how you can make the real statistic pop-out.
  4. Dan Ariely - Buggy moral code. An interesting perspective on why we do what we do. He is also the author of the book Predictably Irrational. He's quite funny and definitely thought-provoking.
  5. Elizabeth Gilbert - Nurturing Creativity. This is slightly different from the other talks. While some may find that her reasoning borders more on the intangible, I tend to agree with her theory, as I've found myself caught in the 'wave' numerous times. A few times, I have missed ideas without realizing that I was in the wave - hopefully I'll be better equipped going forward!
I am amazed at the breadth of the areas discussed and the depth of the expertise of the speakers. It is my hope and wish that one day I will be able to give a talk worthy of TED.

Monday, August 17, 2009

The developer's blame hierarchy

Having worked on a reasonable number of software projects, I come to realize that a sizable chunk of productivity loss is due to inappropriate placement of blame. In a team setting, it is natural to have confrontations and consequently, the mentality to be defensive, even if everyone is working towards the same common goal.

As a result, I developed a blame hierarchy that I normally mandate to my team before the start of a project and ask them to follow the hierarchy before raising the issue further. While it's true that there are some exceptions where the hierarchy fails, it works more often than not.

As per the hierarchy, if a developer finds an issue, the blame should be placed at a step only after clearing all the previous steps.
  1. Your module
  2. Your automated tests (especially if you didn't update the tests when the logic changed)
  3. Your team mate's module
  4. Stable custom framework
  5. 3rd party framework
  6. 3rd party libraries
  7. Network connectivity/Firewall rules
  8. Database
  9. JVM / Virtual Machine
  10. Operating System
  11. Infrastructure / Environment
Failure to follow this hierarchy, mostly because of "My code cannot be wrong" mentality, will result in significant loss of productivity, not to mention irritation, annoyance, and outright anger.

Also note that the hierarchy should be followed only after due diligence has been performed, such as checking logs and looking for error messages.

Saturday, August 15, 2009

How Sun could have made money off Java

I started out my career as a Java developer. While I have branched out to Microsoft SharePoint recently, I still do a lot of architecture and development in Java and consider it to be quite handy.
I have always wondered why Sun could not make money off Java after having come up with such a cool and now ubiquitous software. True, they tried their luck with optimizing their servers for Java and so on, but none ever stuck and they have ultimately got themselves acquired by Oracle.
Recently, I started working on a project that essentially is a desktop application (Swing components) with Webstart as the deployment mechanism. I have used JGoodies intermittently for creating rich layouts before and got a chance to use it more thoroughly this time around. As a quick aside, JGoodies is an extremely well-written library and makes your screens look a lot nicer. Combined with a professional tool like JFormDesigner for visually editing the screens, I was able to cut down my design time from roughly 2 hours to 10 minutes!
While I was developing the application, I was able to think of two ways in which Sun could have really leveraged its expertise and thought leadership around Java without irking the open-source community that it has come to rely on so much.
Meta-libraries
First way in which Sun could've made quite a bit of money is by developing a set of higher-level libraries and selling them commercially at a moderate price. For example, developing database applications and managing objects in Java was cumbersome at best until Hibernate and Spring frameworks came into the picture. Sun could've come up with such high-level libraries on top of the core language and sold them commercially. Even now, Swing is relatively bare bones in nature and you have to do a lot of plumbing before anything meaningful is accomplished.
Ideally, if Sun had created such meta-libraries around various scenarios (such as database, desktop, web, etc.) and had developer and commercial licenses (say, $10-$20 for developers and $100-$200 for enterprise deployment), it could have formed a great revenue stream. Optionally they could have milked some more money for any major upgrades (say, from Java 5 to Java 6). I think these price-points would've been more than acceptable for both developers and companies. The core libraries and JVM themselves would still be free and available for all those who want to start from scratch.
Marketing via App Store
Recently Sun released the Java App Store taking cue from Apple and after sitting idle for almost a decade. The App Store is based on the Java WebStart technology, a core component of the Java Runtime Environment that has been around pretty much since the beginning (around 1999, I believe). WebStart is probably the most under-appreciated concept within Java, thanks in part due to the Internet boom that happened soon after its release.
Essentially, WebStart allows you to deploy Java applications via Internet on to your system without needing any .EXE files. Better, applications deployed via WebStart are Java applications that are handled and run by the JRE in the client computer and hence, can be run on almost all platforms that have JRE (which is pretty much every OS out there).
Sun could have used this technology to build an eco-system around the Java technology while marketing the virtues of the language more successfully. Eventually they could've built premium services around the app store creating another revenue stream.
Oh, well!

Transformation complete - Windows on Ubuntu

As I had blogged a couple of months back, I installed Ubuntu 9.04 on my server and have been quite happy since. The system is very stable, I get all the applications I need for free and don't have to worry about updating them (Ubuntu shows me updates periodically for all applications installed through its package manager - like Windows Updates) and have no dearth of functionality.
However, I still had my Windows installation on another partition - just in case - because, much as Ubuntu is cool, there are still a few applications that need Windows, and my wife hasn't warmed up completely to Ubuntu due to occasional hardware glitches (mouse stuttering for example).
Today I was generally browsing through the applications available via the "Add/Remove..." option in Ubuntu and came across a little piece of heaven called VirtualBox from Sun.
In the Windows world, the one application that I used fairly often was Microsoft Virtual PC. I believe it's one of the better products from M$ and more importantly, it was free. With Virtual PC, you can install any other OS to run 'virtually' on Windows, such as Ubuntu (although it had its issues).
VirtualBox is essentially Virtual PC for Ubuntu, only an even better version. It installed in less then a minute. Then I created a simple Virtual Machine and a Virtual Hard Disk using a fairly familiar user interface, pointed it to my Windows ISO image, and lo and behold, I had a Windows XP running on my Ubuntu in less than 20 minutes. Ironically, I felt XP installed faster on VirtualBox than even on Virtual PC - and the start-up time is roughly 10 seconds!
With this, I think my transformation to Ubuntu is finally complete, with the last piece of the puzzle tightly in place. Now, I can have Ubuntu and Windows harmoniously running. Even better, with Ubuntu's multiple desktop feature, I can simply full-screen Windows XP on another desktop. With that, all I have to do is to flick my mouse to go back and forth between the two OS.
Now, that's what I call comfort!

Friday, August 14, 2009

Hybrid Government

Here's an open-source idea that I am more than willing to donate to anyone who wants to implement it.

Of late there has been a lot of interest in renewable energy sources, more due to the sudden spike in gas (or petrol, as it's called in India), than due to any major concern about the environment.

Coming from India, pollution has been a part and parcel of my life, and so was fresh, clean air when I was young. When I went back to India from US for the first time (after 3 years), Bangalore and Madras suddenly seemed way more polluted and Bangalore more than Madras. I guess it's probably due to the sudden IT boom, resulting in elevating a number of folks to the upper-middle class sector, and consequently increasing their spending on vehicles that consume gas.

While politicians wax eloquently about how citizens should mind their carbon footprint and help the world, they seem to have ignored a carbon giant that they can control - the mass transit system (which includes taxis and buses).

To me, a citizen-based carbon-footprint is good, but is not necessarily the best solution for the following reasons:
  1. Normal usage of personal transportation is much smaller in a day compared to a mass transit system, which typically runs for almost the whole day.
  2. People tend to take better care of their own vehicles, such as constant maintenance, better gas mileage, etc. while the care is relatively less for a government-owned vehicle.
  3. People, while they tend to travel mostly near their locality, occasionally take a longer trip that needs more speed and significant refueling.
  4. Not all individuals can afford the relatively higher costs of owning a hybrid vehicle (at least not now)
On the other hand, a government-owned, sponsored, or subsidized mass transit system is a more controllable entity that can do with a lot of improvement.

I would argue that you can save quite a bit of the environment if the taxis in New York or the autos (kind-of like 3-wheeler coupes in India) are fitted with a hybrid engine, as they satisfy all the criteria above.

If you want to start a company, here's an idea: Create a hybrid engine that can be easily retro-fitted to existing taxis or autos at a reasonably affordable price. The resultant product can potentially be sold to multiple cities and hence can generate a reasonable revenue stream. If the government can be convinced, then you can always hope for some subsidy and even a portion of the initial investment - provided the government is interested and willing. Probably there-in lies the key.

Tuesday, August 04, 2009

Traffic Sniglets

On my way to office, I was stuck in traffic and was going slow. My mind started wandering around and landed up on Sniglets. Sniglets, a word coined by American comedian Rich Hall, means a word that does not appear in the dictionary, but should. My uncle (more like my cousin) showed me a book when I was probably in my 8th grade or so and I found it to be extremely fascinating.

While the intent of sniglets is mostly humor and dry wit, I think there is a lot of truth in it also - why do most of the actions/mannerisms we experience in the day-today world not present in a dictionary? Goes to show that there is a lot of scope in a language still!

Here are some samples I pulled from the Internet:

  • Bleemus (blee' mus) - n. The disgusting film on the top of soups and cocoa that sit out for too long.
  • Crummox (noun) - The amount of cereal leftover in the box that is too little to eat and too much to throw away
  • Laminites (lam' in itz) - n. Those strange people who show up in the photo section of brand-new wallets.
  • Phistel (fis' tul) - n. The brake pedal on the passenger side of the car that you wish existed when you're riding with a lunatic (or wife!).
Back to traffic, here are some I thought of, while waiting for the traffic to ease.
  • Blancoslug (blanko slug) - n. The big car/van that goes slowly in front just when you get into a lane with solid lines (so you can't cross)
  • Biggaslug (bigga slug) - Bigger the size of the car, slower it goes in the left lane (and does not move to the right).
  • Rubbaslugger (rubba slugger) - Person who slows down due to an accident on the other side of the road, even if he can do nothing about it, but congesting the traffic on his own side as a result.
As you can see, the running theme is drivers slowing down for apparently no reason!

Indexing Traffic and Transportation

Here's one more Index card (inspired by Jessica Hagy's Indexed).

I think the trend is mainly due to the following reasons:
  • In US, rules are more strictly adhered to, especially by truckers and hence they tend to stick to the speed limit (mostly). In India, while all the rules are there, enforcement is less, and more importantly, the punishment for violation is minimal.
  • Tata Nano is (as of now) purchased by middle-aged, middle-class folks who can finally afford a car. Hence, they tend to be more conservative in driving.
  • Hyundai Santro and the like are the preferred choice for BPO/IT folks, who tend to by 20/30 somethings and hence the speed is more.
The beauty is that all the three points (and more) can be simply expressed in the diagram - that's the power of visual thinking.

Here's another one.