Thursday, October 13, 2011

RCB Demolished

For a while now, I’ve been pestering my nephews to put their cricketing thoughts on (virtual) paper. I was finally able to corral my younger nephew and get him to write this post.

The Champions League T20 finals RCB VS MI was approached by all with a lot of pomp and hype. Here we were with two sides: the first, a weakened side without its captain and other stars which had made it to the finals fighting all through; the second, sailing through to the finals  chasing 200+ scores on consecutive occasions. Who did you expect would win? A MI team without Sachin Tendulkar or a in-form RCB side with Chris Gayle and Virat Kohli going really strong? I  thought RCB…but RCB didn’t win, did it? Why ?? Below are the reasons:

1. Overconfidence,  having chased down 200 and more on two occasions against better bowling attacks.

2. Maniac team selection by Dr. Vijay Mallya who choose to pay 7.5 crores for a lad who hasn’t even played 50 games for his country but wasn’t willing to pay 5.5 crores for the world’s greatest all-rounder who had performed brilliantly in the previous seasons.

3.Lack of quality cricketers: Being a professional cricketer who plays 5th division for Swastik Union, it disappoints me that I know batsmen who are only 16 and 17 who have greater talent and technique than Saurabh Tiwary and Mohd Kaif. Kaif’s  batting grip locks the wrist which disables the best shots such as the drives.  Saurabh Tiwary didn’t know he had to get onto the front foot to block a yorker. Further, any cricketer worth his name knows that the safest and the best way to score fast runs is by playing straight, i.e. in the “V”.  Chris Gayle and Virat kohli are exponents of playing straight, something that should’ve been a lesson in the nets for Tiwary and Kaif, amongst others. Effectively, RCB went into an international tournament fielding a side without a technically sound middle order!

4. To be able to slog a spinner more often than not you have to get onto the front foot to  hit him with ease. One is expected to take his left foot as sensibly close as possible to the pitch of the ball in order to gain balance, power, and control over the shot. Sadly, Mayank Agarwal got out twice trying to slog a spinner with his feet pointing in exactly the opposite direction of the pitch of the ball.

5. Lack of match practice: On most occasions, the middle order and the lower middle order hardly got to bat as Gayle and Kohli were splendid; therefore  the already useless middle order of RCB lacked the match practice as well. The complacent RCBians  didn’t play practice games so that they could strike some sort of form. Net Practice can never be a substitute for match practice.

6. Bad Captaincy : After Virat, Gayle and Dilshan, the most accomplished batsman in the team is Vettori himself. The moment Gayle and Dilshan were out, Vettori himself should have come out to bat, as on any day he is a proven better batsman than the Tiwarys of the side.

The above reasons contributed to the miserable failure of RCB in the CLT 20 finals. I hope they wont be repeated and will play better cricket in the near future.

Sunday, September 04, 2011

Soothsaying and the Congress party

If recent events have shown something, it is that the Congress party is a soothsayer’s dream subject. If you want to know what the party’s response will be to any situation, you only need to go back in time a few decades and you’ll get the answer.

Let me explain. In 1977, the Congress party was out of power and the Janata party came into power. But they squabbled amongst themselves, and what did Indira Gandhi do? She encouraged Charan Singh to split away, supported him for a while, and then pulled the rug under his feet, which led to elections. Now move the clock to 1989. Rajiv Gandhi lost power, VP Singh and Chandrashekhar squabbled, and Rajiv Gandhi encouraged Chandrashekar to split, supported his government for a few months, and then withdrew support. And the same repeated in 1996.

Similarly, when faced with an upsurge of public antagonism, Indira Gandhi’s first response was to invoke the “Foreign Hand”. Rajiv Gandhi talked about vicious forces that were out to destabilize India when the Bofors scam hit. And today, Rashid Alvi accused a foreign hand (of course, those in the know, know that it is an Italian one) of trying to destabilize India. Indira Gandhi imposed the emergency and foisted all kinds of cases on the opposition; and while the India of 1985-86 wouldn’t let Rajiv Gandhi impose the emergency, he tried his best to muzzle the media by introducing the “defamation bill”. Lo and behold, today we have the “Group of Morons” who are trying to bring in a bill to regulate the media. (Maybe they’ll serve a privilege notice against me as well?)

And while the faces of the henchmen, the a**lickers and the hangers on have changed, their attitudes and languages haven’t changed one bit. See the abuses showered on team Anna if you want proof.

What I’m trying to outline is that despite its dubious claims of having introduced the green revolution, the IT revolution and globalization in India, the Congress party remains a party stuck in the discourse of the 70s. What is further shameful is that the great white hope of the party doesn’t have a single original thought to offer and his family friends (what a TV channel calls ‘Young Turks’) are no better either.

There is no future for the country as long as the Congress is in power. Sadly there is no viable alternative in sight.

(Postscript: To my regular readers: thank you for your enquiries, and I promise I’ll post more regularly in the coming weeks. )

Sunday, April 24, 2011

More on freedom

If my blog were to stand for a single topic, that topic would be "Freedom". I've blogged earlier about the futility of banning skirts, jeans, music, books and so on. Over time, the bans have become more and more ridiculous - women entering a bar, or teachers being forced to wear sarees and so on. But some recent events take the cake.

For instance, Christ College (now Christ University) in Bangalore has banned a chocolate stick. Mahavir Jain college has banned male and female students from using the same set of stairs. Another college has banned standing on campus. What's hilarious is the twisted reasons one hears on why these bans are justified - the staircase ban is ostensibly because the girls' toilet is on the right side of the building and the boys' toilet on the left. Now one wonders - do students climb stairs only to go to the toilets? Or is it the college administration whose heads are in the toilet?

And we have more. The World Badminton Federation has banned women from wearing anything but mini-skirts on the court, ostensibly to popularize the sport. Don't worry about all those women who might be discouraged for the same reason! They can all go and take up knitting.

At least the WBF is honest about why they are doing it, unlike the worthies in Bangalore colleges.

Losers, all.

The joys of testing

Years ago, in the group discussion round of my first campus interview, my group was given the topic "The role of testing in the career of a software professional". I went first, making a strong case for testing professionals. I spoke about the inevitability of bugs, the economic cost, user impact and how testing was essential to maintain software sanity. I think I made a good case, becuase I was eventually hired for the job, but I knew I didn't believe a single word of what I'd said. In fact, days after the interviews, I was scared by the thought that my passionate case for testing might actually convince the company to put me in a testing role!

Over the years, I've understood the importance of sound testing. I've also realized how much of an intellectual challenge testing really is. Here you are given a piece of software - sometimes you know the code, and sometimes you don't. Sometimes it has a spec, sometimes you create the spec as you go. The software you are testing might be new or it might be tens of years old, will typically have millions of paths through the code and hundreds of thousands of states (with many thousands that could be wrong). How can you figure out how to make the software fail? How can you unearth the hidden assumptions the developer made? How can you write software so that it can be tested easily? How much of your testing effort can you automate? How do you measure the quality of your testing? How do you know you are done?

I was once the member of an interview panel, and we rejected a candidate for the developer's post. One of the managers in the company turned around and asked us "Is s(he) at least good for testing?". I didn't see how ludicrous this statement was then, but I see it now.

We live and learn.

Saturday, January 22, 2011

How the UPA is educating the public

The UPA government has done a lot for education in the country. From the landmark RTE act, which transferred onto included the private sector, responsibility of educating the poor, to the pointless landmark universities bill and continued tampering with guidance for the institutes of excellence, the UPA has been in the education sector. Of course, these pale in significance to the personal initiatives taken by UPA ministers.

First, the home minister gives us an English lesson, telling us that a consensus does not mean agreement of all concerned, but a majority of all concerned. Since the UPA is under the impression that it is ruling by the consensus of a billion people, how can you blame him?

Next, Kapil Sibal, our effervescent minister for all seasons comes in to give the people a math lesson. He has a new branch of math - let' s call it Sonia math for the lack of a better name. Here, the value of an equation depends on the side of the equation that the reader is in! According to Prof. Sibal, the total loss to the country from the 2G scam is zero! Truly, he occupies a universe of thought much different from our own.

Watch this space for more on UPA history, science and biology. But if you want to see something nice, go here: http://www.digitalnarratives.net/ and send me your comments!

Sunday, November 28, 2010

More Indian sport

I love posts where I can say “I told you so”. After the 2008 Olympics, I wondered if this was a new dawn in Indian sport. The events of the 2010 asian games have strengthened my belief that it is indeed so. True, the shooters haven’t lived up to their potential, and the archers didn’t do as well as they did in the commonwealth games, but take one look at the details of the medal tally, and you’ll see what I am talking about.

A 1-2 finish in the women’s 10k race. A 2-3 finish in the 5k race. Gold in the steeplechase event. Gold in the women’s 400m hurdles after 24 years. Gold in the men’s 400m for the first time ever (unless Milkha Singh won it in his time). Gold in rowing. First time medals in skating and gymnastics. Golds in boxing. This games have been quite good for India.

What is also heartening is the manner in which these medals were won. Take for instance, Joseph Abraham’s last minute push to get the gold or Sudha Singh’s desperate lunge to finish first – how many times in the past have we seen Indian athletes overcome their opposition when placed in such situations?

Rest assured, things will improve. These heroes will now encourage more sportsmen and women in the country to come forward. With government support and strong private sector participation, not to mention rising confidence in Indian abilities, the future looks bright. Of course, the 2012 olympics will tell us how far we have come, but I’m more confident than ever that we have crossed one, if not all the hurdles in the way of sporting success.

Sunday, October 17, 2010

The ‘developer’ high

Most of us in the software profession agree that it is probably one of the few honest professions that will pay you a decent monthly allowance for doing something you love to do. But have you wondered why software development is such fun?

Well, as you expected, I have a theory. I think the reason development is such fun is because of the recurring, never-decreasing highs that one gets. Created a cool, extensible design? You have a high. Found a cool way to randomize a list with just one line of LINQ code? You have a high. Debugged a crazy bug that has haunted you for days? You have a high. Positive customer feedback? Another high. Why, even seeing a “all-green” status on your unit test run – even that can give you a high.

And the best thing about the highs is that their intensity is not dulled by repetition – something a good alcoholic smoker friend of mine certified :)

This is probably a key factor that keeps developers glued to their IDEs.

Putting on my trench man hat, I think this is another aspect that differentiates developers from researchers. Researcher highs are fewer and far-inbetween. You publish maybe 3-5 papers every year. Generating new, workable, and innovative ideas that are different from those in the ‘market’ is gut-wrenching work, and new leads probably occur a few times a year. The situation is even worse for managers who have to wait for a product to ship to feel the high.

There is a flip-side to this. It is easy for developers to fall into the addiction trap – sometimes sacrificing long term health of true innovation at the altar of the regular dosage of customer appreciation highs. Managers and researchers can keep their sights on the bigger prize for longer because their work and training (particularly for the researchers) trains them to think longer-term.

Again, let me add my usual disclaimers about this being a generalization and like all generalizations, not applicable to all people and situations! :)

What do you think?

Sunday, September 19, 2010

The biggest threat to India

Ramachandra Guha of “India after Gandhi” fame once visited our lab and gave a talk in our “Kaleidoscope” series. He outlined nine threats to Indian security – Maoists, majority communalism, the divide between the rich and the poor, and so on. Unfortunately, he missed out on three others: the so called liberals and human rights activists, the communists and the UPA.

The common thread to these three threats is that they represent the left in its different colours and flavours. There is the hard-left – the Maoists who are determined to undermine the state militarily, the soft-left, comprising of the activists and the leftists who want to it by sleight of hand, and the UPA who wants to do it by inaction.

Let me elaborate. For long, it has been thought that Muslim and Hindu fundamentalism feeds each other. The most common example is the the Shah bano case and allowing Shilanyas at the disputed site in Ayodhya. One set of fundamentalists got the law amended to undermine women’s rights, and the other got the opportunity to start a ‘communal’ movement. However, what is forgotten in these discourses is the role of the “secularists”, “progressives”, and the “leftists”. While there was widespread condemnation of the Shilanyas and the subsequent yatra, condemnation of the parliamentary amendment was muted. And this is a pattern that is familiar. Secularists who condemn the attack on M.F. Hussain, are suddenly silent when a professor in Kerala has his arms chopped and is suspended from service. ‘Progressives’ who come on to the streets against the burkha ban somewhere in France, don’t venture out when the popular front of Kerala threatens a woman for refusing to wear the veil. Our own Manmoron Singh, who spent sleepless nights at the thought of Dr. Haneef in spending time in jail, had a sound, silent sleep when tens of innocent students (mostly Hindus and Sikhs) were beaten and killed in Australia. In the latest incident, I saw a human-rights activist talk about the suffering of the Kashmiri Muslims without a single nod of acknowledgement towards the suffering of the Pandits, which was one of the worst incidents of ethnic cleansing in the country. The same person went on to call the Panun Kashmir a communal organization – Syed Shah Geelani, a two-state theorist is secular, while an organization founded to safeguard the interests of displaced Pandits is communal!

It is this perverted logic of the leftists, human rights activists, ‘liberals’ and ‘secularists’ that incites majority communalism. It is this logic that clouds reality, and forces governments into taking illogical decisions. See the debate on the AFSPA for instance. There is not a single shot that has been fired by the Army, yet there is all the hullaballoo about withdrawing special powers to it!

Wonder why the “left” acts this way? The answer is simple – leftism needs victims to survive. Leftism needs to oppose. And leftism hates stability. I can go on about this – but I’ll defer that to a later post.

Java is not a good first language

I’ve found that the only way to get back to blogging is by writing some random posts. After a hiatus, it somehow becomes very difficult to write cohesive posts on a single topic. The words don’t come out as easily, the sentences don’t seem right, and I spend inordinate amounts of time trying to come up with enough material for my post. Finally, unable to come up with something I like, I abandon the post and add it to an ever-growing list of drafts that I never re-visit.

Anyhoo, for today’s random post, I talk about the threat posed by Java schools to the software profession and the threats that human rights activists, perverse secularists, and the UPA pose to this country.

First, Java schools. While there is long on-going debate in sociology on whether language determines thought (what is called the “linguistic relativity” principle, or the Sapir-Whorf hypothesis), that question in Computer Science is settled. In the world of programming, language does determine thought. Which is why Stroustrup had put in warnings for C programmers to think object-orientedly. Which is why most imperative programmers take refuge in the := and ! operators of SML when they first encounter functional programming. The language you program in makes you think a certain way. The trouble with teaching Java as the first language is that there is no way teachers can teach the way to think in Java (the object-oriented way) without the students undergoing a course in procedural languages. As a result, students end up thinking in way totally unsuited to the language – a class becomes something you create because the language forces you to, and a place where you dump everything that your program needs. Objects become mechanisms to get at the members without the notion of what it means to instantiate something. Access control mechanisms become a unnecessary distraction – if you want a class to access a member in a different class, make the member public. The signature of “main” - “public static void main (string [] args) introduces problems of its own that have been detailed in ACM papers here and here. Beyond these problems, Java abstracts away some of the most critical concepts in Computer science – pointers, memory management, the idea that resources are finite, and the dilemmas programmers face in using and implementing data structures.

The trigger for this rant is a bunch of interviews that my teammates and I are conducting to hire summer interns. Our target pool are the students from the IITs, most with very high GPAs (think 8.8+/10) and two years into their B.Tech courses. All of them have done 3-4 academic projects, and some of them, internships in places like Adobe. Due to their relative immaturity, what we look for are programming basics – choosing data structures, programming recursive algorithms, and some Computer science fundamentals in areas like networking, OSes, or OOAD (depending on the students’ coursework). To our surprise, we found that while most of the students knew the commonly used data structures, very few could choose the appropriate one for the problem at hand. Still fewer got the implementations right, and most wrote code as though they were in programmer utopia – infinite memory, infinite resources, and nothing bad ever happening in the environment. The bigger problem was that not one bloke I interviewed was able to find and debug problems in their code.

There also seems to be this idea gaining ground, particularly amongst the Phd-types that teach courses at the IITs, that programming is secondary to Computer Science, and what matters is “researchy” topics, like IR, machine learning, large scale algorithms or such. At the same time, there is tremendous pressure on the IITs to evolve from being teaching institutions into research institutions. Because they cannot attract talent at the graduate level, it seems professors are taking the route to make the undergraduate program a research program. Good programming techniques and sound concepts of software engineering become “implementation detail”. And writing good code, tests, and having the ability to debug programs is lost on a whole generation of Computer science undergraduates.

Or maybe I’m just being paranoid.

[Postscript: I realized rather late, that this post had become too huge for me to add my second rant. I’ll be posting it separately.]

Sunday, April 25, 2010

A trenchman’s view of the ivory tower

For some time now, I’ve avoided talking about my current job – in fact, I’ve tried to avoid all job-specific posts on this blog. However, ever since I took my current position, too many people have asked me the precise nature of my work  - “Research SDE” isn’t a very common job title. Further, for the past few months, as I’ve had my head down in work, my blogging suffered and I realized that writing about work might be the only way to get some content in a Windows Live Writer window.

I underwent eleven rounds of interviews before MSR India offered me my current position. These were conducted on two separate days with a very eventful fortnight in between. Some of interviews went well, and some went poorly, but the one that challenged my entire graduate thesis was the one with a research manager, who is probably the most accomplished researcher in the field of static analysis. And I faced the most enjoyable enquiry I’d faced on my thesis – even better than my thesis defence!  Towards the end, he told me (and I paraphrase very liberally): “Sometimes, researchers sit in ivory towers and lose sense of the trenches and make unreasonable demands of developers. Can you describe an instance when you faced a demand you thought was unreasonable, and pushed back?”

At that time, I thought he was talking about hypothetical situations. Why would people who were more technically accomplished than most developers make unreasonable demands of them? It just didn’t make sense. I answered what ever I could forgot about it for quite some time.

Now, four years, half-a-dozen projects and with a bunch of successes and failures behind me, I realize that he was pointing to a fundamental difference in perspective between the two groups in the lab – developers (and I include PMs and dev managers in this group) and researchers. I also realize now that as both an insider in the lab, and an outsider in research, I have a unique perspective (which may be right or wrong). Hence this series. Here, I intend to write about research from a developer’s perspective, and of the life of a developer in a research lab. Please note however, that everything I say here, like elsewhere on my blog, is strictly my opinion, and has nothing to do with my current, past or future employers.

First we introduce our actors. Researchers are starters. They love starting new projects, coming up with new ideas, and working on new problems. Researchers thrive in uncertain situations, love unclearly defined problems, and generally are fond of exploration. Failures are acceptable as long as there is a lesson that is learnt. Theoretical soundness is more important than fit and finish – it is OK to have a solution for a problem that ignores the “corner cases” - provided the problem is unique and challenging enough.

Developers are finishers. We like conclusions, we like definite schedules, and we like knowing that what we are doing will be used directly by our audiences. We prefer certainty and while we do explore, we will almost never put our exploration ahead of our project commitments. Shipping is everything and the user is king (well, most of the time :)). Polish matters – a feature is worth nothing if it doesn’t work on a particular browser or a supported platform. In fact, I remember from my previous companies, exercising our code through automated test-cases on eleven different platforms before getting a green signal to ship.

Of course, these are generalizations. And like all generalizations, they have many exceptions. It does happen that a researcher puts on  a developer’s hat for a year or two simply because (s)he is committed to a project/idea. Developers do take technical uncertainty in their stride when required. However, what I’ve outlined is the basic nature of the two species – the starters and the finishers.

In future posts, I’ll narrate some incidents, describe some of the insights I learnt, including working with those beings known as interns, and attempt to paint an honest picture of the life of a trench soldier who was invited to the ivory tower.

Saturday, December 12, 2009

Outsiders

One word that has rung in my ears all this year has been ‘outsider’. Google trends agrees. The last few months have seen an increase in the number of occurrences of this word in news references. And of course, you don’t need a fancy algorithm to tell you that. If you have been even barely alive to the world around you, you’d have heard this yourself.

North Indians are outsiders in Maharashtra. UP folks are outsiders in MP. ‘Indians’ are outsiders in the north-east. Jeans-wearing, pub-hopping women are outsiders in Karnataka. Rich, bratty software engineers who are causing real-estate prices to rise, brides to reject grooms in other professions,  and causing moral degradation with their lifestyles are of course, outsiders everywhere. A cricketer, who is the pride of the nation, is an outsider in his home state. Muslims are outsiders for the VHP and its cohorts. Sensible economics is an outsider for the Communists, and the communists are outsiders according to  Mamata. Maoists consider industrialists outsiders, as do politicians when the industrialists are supporting a rival party.

We’ve been divided on caste, creed, religion, language, ethnicity, geography – name it. But nothing compares to the weird nature of the Telangana divide.

What the TRS and KCR are asking is a redrawing of boundaries that were first created by a vile Nizam. They want to turn back history and rule like the Nizam did – see KCR’s insistence that all Hyderabad has, was built by the Nizam! He went on to emphasize the division while making the claim for Hyderabad – 5% people of Andhra versus 95% people of Telangana – never mind that they have the same language, same culture, same spicy cuisine, same horrible weather, same TV channels, same film stars, same five letter initials with at least one ‘Venkata’ in their names…and so on. So, ladies and gentlemen, we have a new divide – coastal v/s inland – the ‘ruthless’ Andhraite v/s the ‘meek’ Telangana-walla. Next we can look forward to a pant v/s dhoti divide, or a boxers v/s briefs divide, or maybe even a oily hair v/s dry hair divide. (Note that the  sari-jeans divide is already present.)

Who knows, then one might become an outsider for being a left-hander. Right-handers can then protest on being deprived of the ability to write with both hands. They could ask for a state where only right-handers prevailed. Of course, the left-handers could also ask for the same. Maybe then we’ll come to our senses. 

Never mind that the real outsiders are having a field day in our open borders, planning and executing attacks with impunity. Never mind the real outsiders who suck the living blood out of the state by their corrupt means. Never mind the fence of law that eats (or rather grabs) the land it is supposed to protect.

Welcome to India!

Sunday, November 22, 2009

On the Mumbai attacks

The news channels are all saturated with remembrance of the Mumbai terror attacks. As I watched the tributes to the martyrs of the day, I couldn’t help but wonder how little things had changed since those three terror-filled days.

The Mumbai attacks were supposed to be our wakeup call. The moment when middle-class India threw off its coat of indifference and embraced the task of nation-building. The time when the nation sunk its differences and came together to fight as one. The clarion call for more professionalism in our police, and indeed, in our government.

Unfortunately, all those hopes have been belied. Six months after the candle-light vigils at the Gateway of India, the middle-class voted overwhelmingly at 40%. If anything, the last two elections have proved that Mumbaikars, (or Bombay-ites, if I may, with deference to the MNS) like their other city counterparts, prefer a vacation over a vote. We are still as divided, on language (witness the Hindi oath taking controversy), on religion (the Vande mataram controversy), and on political lines. We are as intolerant as ever, as unprofessional as ever, and continue to ignore those who try to protect us from such terror. The one terrorist who was caught is still alive, and the ones who messed up during the attacks are back in power, along with the cynicism of appointing the same person who was fired over the Mumbai attacks back as Home minister.

Before I end though, I do want to add a note about the media adulation of the three cops who were martyred that day. If you dispassionately analyze the scene, you’ll realize that these cops charged in without thinking, without examining the situation, and ignoring all their training. You could also ask why Hemant Karkare did nothing about the crappy bullet-proof jacket he was given. Or why three senior officers of the Bombay police were together in one car during such a moment. Or why they underestimated the opponent and were martyred, I presume, without firing a single bullet?

The true police hero of the Mumbai attacks is Tukaram Omble, someone our channels have almost forgotten. Not caring for his life, or the fact that he was unarmed, he fought a deadly terrorist armed with an AK-47, who pumped bullets into him even as he held on, giving the other cops an opportunity to capture him alive. Alive. Think about how strong India’s case against Pakistan has become because Kasab was captured, not killed.

May their martyrdom not go to waste.

Friday, November 06, 2009

HR talk

Isn’t it funny the way HR folks speak? I mean, they typically say a lot without actually saying (revealing) anything. They never commit, never say no, and always talk as though they have your best interests at heart while ignoring the import of your words.

Do they speak the same way with their families? What if they did? Here is a possible scenario:

Child: [Mommy/Daddy] I want a bicycle

HR Parent: In the current recessionary economy, it will be highly irresponsible to expense recreation items that do not have long lasting value.

Child: Does that mean no?

HR Parent: We will consider the request at the first opportunity of economic revival and revenue growth in the family.

Child: But all my friends have them!

HR Parent: As a family, we aim to be in the top 65-th percentile of “having” things. We believe that our commitment to our children’s growth, our healthy living environment and wonderful family culture contribute to a scenario…

Child (Interrupting): ARRGH! I hate you!

HR Parent: Such strong emotions are uncalled for. We believe that we have taken the right actions given the economic environment. Further…

[Child storms out.]

[Disclaimer: These views are personal, do not reflect the opinions of my employer and are not based on any specific person or institution, living or dead.]

Thursday, September 24, 2009

Poor coding and paper.

Every now and then, when I have time to spare, I take out my laptop and read some of the code I'd written in the past. This includes projects I did during my Bachelors degree, some code snippets of projects I did for my Masters course, and some others, from previous employment. (Of course, I don't have entire projects from previous companies - just a few files that I'd worked on from my home computer. So, don't ask!) Every time I read the code, I cringe. I can't believe I'd written code which was that bad! I see new bugs, violations of coding practices, poor design, and even misuse of language constructs. And I know for a fact that when I was writing all of that code, I not only thought I knew what I was doing, I knew that I knew what I was doing. (Wow - too many I's in this paragraph.) For some time now, this has bothered me, because I have the same feeling of knowing what I'm doing as I write code today. Why would I be correct now? Maybe, in some later year, I or someone else would look at my code and realize how bad it is (was)? Does this happen to others? Have you ever read code you'd written earlier and cringed? If so, use the comments link to send your experience.

I'd earlier mentioned a paper I'd submitted (with some colleagues) that was nominated for the best paper award at FSE 2009. We didn't win, but here is a copy:
http://research.microsoft.com/en-us/groups/adp/debugadvisorfse09.pdf
.

Enjoy.


Sunday, August 16, 2009

Free thoughts on Independence day

I was watching the movie “Gandhi” on Sony Pix and one thing about the Mahatma struck me.

Not only was the Mahatma a great saint and leader, he was a brilliant political strategist.

Consider, his use of non-violence as the principal weapon against the British. By doing so, not only did the Mahatma seize the moral high ground, but he also changed the battle-field, which went from one of ships and guns to that of prayer and lathis. What the Mahatma recognized was that there was no way any Indian army could defeat the British. What could defeat them was an unequal battle that would render their superiority useless. Gandhiji also understood the deep moralistic element of British colonialism – the British never considered themselves as conquerors, they always considered themselves to be on civilizing missions. How could you explain a civilizing mission that beat up and shot people for making salt? Gandhiji exploited this loophole in the British consciousness brilliantly.

The Mahatma also knew the importance of holding the moral high ground, not unlike the high ground that the Indian army fights to hold in Siachen. His suspension of the non-cooperation movement after the Chauri-Chaura incident was one instance, where he took the risk of losing the cause to uphold the principle, and by corollary, the moral high ground.

He was also a brilliant popular leader, one who knew the importance of symbolism in the Indian psyche. Gandhiji knew what moved the people, how he could connect to the people, and had a finger on the collective pulse of the people. Be it the salt satyagraha, or the prayer meetings, or burning western clothes, Gandhiji always selected symbols that he knew would move the people.

Finally, it was the Mahatma who recognized the dilemma of the 1920s Congress. That it was a movement of the elite that the  commoners had no use for, and that as long as the 300 million Indians didn’t want independence, the British would have no motivation to leave. It was the Mahatma who transformed the Congress from a debating club to a mass movement, transforming the face of India and the world in the process.

Friday, July 17, 2009

Our education problems.

So, we finally have a HRD minister who is more interested in education than (de-)saffronisation, a government that understands the seriousness of our education problem, and a bunch of reports that tell the government what to do. Why then, am I putting my skeptic hat on as I write this post?

Because there is nothing to suggest that the government, the minister, or even the reports have moved beyond the command/control mode of operation. Take the Yashpal committee report for instance. It recognizes that the current system of regulators, consisting of the UGC, AICTE, and the MCI amongst others hasn't worked. There is endemic corruption, the latest being this case against the AICTE chiarman and a senior member, inefficiency, and a lackadaisical attitude. But look at what the committee has recommended: a uber-regulator that encompasses all these! How, in the lord's good world is this going to solve the problem? Not only that, the report suggests that this uber-regulator will also solve the problem of multi-disciplinary education! Sixty years after independence, and eighteen years after liberalization, we still haven't understood the fundamental difference between regulation, and control. Our administrators, and report-makers don't get the fact that the best regulation is the market and full disclosure. For instance, instead of having corrupt bureaucrats decide which institute should function and which one shouldn't, have full disclosure of every institute - the intake, the aggregate scores that the students got, the placements that they got, and the types of companies they got placed into, the numbers who went to higher studies, the number of working computers, the facilities in the lab, whether the hostels have enough clean toilets - disclose disclose and disclose. Then let parents and students decide which institutes should survive and which ones shouldn't. Let foreign universities in, set stiff criteria that these institutes should satisfy, but let them teach what they want to. Let every institute pay what it wants to, charge what it wants to, maybe subject to a range that the government can specify. Let there be merit-based salaries for teachers, and scholarships for those students who cannot afford high fees. Let go, but keep a watchful eye.

I can give three instances of why my prescription will work. Today, PESIT is probably the best engineering college in Bangalore. Management and NRI seats in this institute are auctioned off, with waiting lists spanning a few years. Few people know that just ten years ago, few people joined this institute. In fact, at that time, the institute offered to pay the fees of any student below rank 1000 who joined it! The dedication of the founders has led to this institute becoming the top institute in Bangalore. They poached professors from other institutes, got people from abroad to join it, and of course, made a lot of money in the process. But what the city got was a good institute.

My next example is DAIICT, an institute from where my team has recruited many interns. A large number of them have been fantastic and have gone on (or will be going on) to graduate programs in UCB, UWash, and other universities. Our experience has been that students from this institute were really well-rounded, however, I was told recently that the AICTE had refused to recognize the Info. and Comm program that these students had graduated from!

Then, ISB. The International School of Business in Hyderabad has the most expensive MBA programs in India. It wasn't recognized by the AICTE, whose diktats it couldn't live by. However, as this news article points out, it was the only Indian B-school to be in the FT top 20 B-schools in the world.

To conclude, I want to bring in Game theory, of course in a very unscientific way. When you have two competing players each one making a decision knowing fully well the other's strengths and weakness, you usually reach an equillibrium that may not be the best for either player individually, but is a good bet overall. This is what the parent/student v/s institute game would do. On the other hand, cartels break this equillibrium in favour of one party - which is what the nexus between institutes and our current regulators is.

Sunday, June 21, 2009

I told you so! :)

Some time ago, I’d predicted that Google’s next step towards world domination would be to produce a free OS for PCs. And as I predicted, they first made the mobile OS and now, they have the same running on PCs produced by Acer.

PS: This post, like the rest of the blog, only reflects my opinions and has NOTHING to do with my past, present or future employer(s).

Sunday, June 14, 2009

Nixon-Kissinger II

If you are a student of contemporary Indian history, you'd be familiar with the Nixon-Kissinger duo, and their attitudes towards India. While a lot of water has flown down the Mississippi and the Ganges since then, it looks like the wheel of time has come full circle again, giving us Nixon-Kissinger Part 2, also known as Obama-Clinton.


First, some history. Nixon and Kissinger, with no little help from Indira Gandhi, took Indo-US relations to their nadir. In their quest to get China on their side, against the Soviets, the duo looked the other side when Pakistan committed some of the worst abuses of human rights in the sub-continent, in what was then East-Pakistan. They formalized the US policy of preferring dictatorships over democracies, even when those dictatorships brutally supressed the mandate of democratic elections. In fact, Nixon offered to send the "Seventh fleet" carrier group into the Indian Ocean to pressurize India which intervened on the side of democracy. So bad was the deterioration in relations that the leaders of the countries couldn't even talk to each other without one calling the other a b***h.

The intervening years, the Kargil war, India's economic recovery and the Dubya-presidency had all contributed to healing the rift, but it looks like this is one wound the great black healer is going to rip open in his quest to heal other wounds.

Now, it is not wrong that the US has its own national interests in mind. But Obama in his nearly 6-month presidency hasn't made a single serious comment (and I'm ignoring platitudes like the praise he heaped on Moron) towards furthering Indo-US relations. He's made noises about getting India to sign the NPT and CTBT, has completely ignored the nuclear deal, brought back the hyphen between India and Pakistan, put pressure on India to start talking with Pakistan, made Bangalore the enemy in the outsourcing debate and in the latest of his antagonising statements, has opened the Kashmir bogey again. Not since the Nixon-Kissinger era have we seen such 'attacks'.

Will the relationship survive the Obama-Clinton foreign policy administration? I doubt it.

(Postscript: BTW, we had Ramachandra Guha, the author of "India after Gandhi" visit our lab and deliver a talk recently. Next in line are Sudha Murthy and Ramesh Ramanathan!)

Monday, June 01, 2009

Post = Random.NextPost();

Last week, we had a “Bring Your Child To Work” day, when parents are allowed to bring their kids to work so that the kids can get an idea of what their parents do during the day. We had a wide range of kids – from age 2 to age 14, and boy, was it fun!?

I couldn’t help noticing in all the revelry, that a disproportionate number of the children were girls. Even more peculiar, it seemed that it software fathers had a higher chance of having girl children than software mothers. Non-software folks had either male children or had an equal number.

This couldn’t be statistically true, I thought. But after a quick recap of my friends’ families, I think I’m ready to say that it is indeed statistically possible that male employees of software companies tend to have more girls than their female counterparts, and their male counterparts in other occupations. This needs more evidence, of course, and there needs to be a scientific reason for why it is so, but I think there is enough merit in trying to investigate the case.

And it was last week that I took part in my first protest march. We were protesting against the illegal felling of trees at CNR Rao circle, near IISc, which was ostensibly being done to build an underpass there. Now, I’m not a tree-hugger, and probably will never be, but this was something illegal being done. So, a few friends from MSRI and I went together, shouted slogans against the BBMP, had our photos taken, and came back. I have more to write on why such protests aren’t successful, but I’ll save that for another post.

BTW, here are a couple of photos of me at the protest:

http://www.deccanherald.com/content/5075/iisc-staff-students-protest-tree.html (I'm the one leaning on the tree)
http://www.expressbuzz.com/edition/story.aspx?Title=These+cuts+run+deep&artid=9tgoy95Efds=&SectionID=Qz/kHVp9tEs=&MainSectionID=wIcBMLGbUJI=&SectionName=UOaHCPTTmuP3XGzZRCAUTQ==&SEO=

Anyhoo, another thing that happened last week was that a submission a few of us from MSRI made to FSE 2009 was accepted and it’ll be part of the proceedings. The conference itself is in Amsterdam in August. I’ll see if I can post the paper somewhere.

Saturday, May 23, 2009

All for a single post.

So, what do I write about? Well, there is the election and the mess the BJP finds itself in. There is the Lankan Tamil issue. There is a bunch of stuff happening at work. There is the realization that I’ve forgotten to read, and there is a lot of economics that I’ve been ‘reading’. There is also a nice report in "ವಿಜಯ ಕರ್ನಾಟಕ" on the measures colleges in Bangalore have taken to ensure a ‘safe’, educating environment for college boys and girls.

Must get out of this mode.