Thursday, February 02, 2006

grasshopper

The other night we went to a restaurant way out on Bannerghatta Road called Grasshopper. I'd heard about it for a while and had been trying to coordinate a trip with a few people. But S and I finally decided to go there on Wednesday night lest we miss a trip there altogether.

We were the only people there. Seating was outdoor and they provided shawls since it was a little chilly. They have a boutique out front featuring clothes (and accesories) from 6 designers. The ambiance was awesome.

I wrote down the contents of our 6 course meal but seem to have misplaced it somewhere. I absolutely loved my food. S liked hers (she had the veg. option) but was not as enthusiastic as me.

I think I remember my meal:
- Oven fresh bread
- Fig stuffed with Feta
- Asparagus with mint and lime
- Prawn with ginger
- Walnut and pear salad.
- Sea bass
- Veal Chops
- Lemon cheese cake with grape reduction

S got bruschetta instead of the prawn, a feta-stuffed sweet chilli instead of the sea bass, and broiled vegetables in butter-bean sauce as her main course.

The Sula Sauvignon Blanc that we had was a disappointment. I ended the meal with a shot of espresso for the long drive home.

My mouth is watering while writing it down. In fact I may just stop writing for now because I need to go grab lunch.

Update: anonymizing.

rang de basanti

Last night Sindya and I went and watched Rang De Basanti, starring Amir Khan, Kunal Kapoor, Soha Ali Khan, and others. We tried getting tickets a few days back at the Forum Mall in Bangalore, but it was sold out for the full week. We were walking around Brigade Road yesterday and decided, on a whim, to try for tickets.

I'm glad we did. It's a great movie. The acting was solid, as was the cinematography. The soundtrack was fantastic too. The storyline was new and refreshing, and I think it struck a chord with many.

Monday, January 30, 2006

Red Tape: Getting a police clearance certificate

I realized that I should have started this as a series when I first moved to India but I didn't think of it until recently. There are many "gotcha's" associated with getting any government work done in India which result in this "Damn. Now I know what to do next time" feeling. However, many tasks (e.g. getting a Marriage Certificate) are such that one rarely needs to do them more than once.
So I figured I'd put down at least one such experience in writing for the benefit of others.
Please update this information by leaving a comment

What: Getting police certificates from the regional passport office, and the local police station in Bangalore.

Why: In my case, it was to apply for a visa.

Est. Time: 1 week (at minimum), 3-4 weeks normal time.

In order to expedite, you'll need a letter explaining why. If it's for business purposes, it should be on company letterhead. If for personal purposes (as in my case) make sure that you can explain the reason in one sentence, and that the letter is written in formal style.

For pretty much every step, you'll need a recent photo. Keep a stack of them and a glue stick with you at all times.

Summary of Events

  1. You submit all the applications
  2. The request for passport clearance is forwarded from the passport office to the commisioner's office to the local police station.
  3. The police clearance request is forwarded from the commisioner's office to the local police station.
  4. The local police check your records and residence and get a statement from your neighbors.
  5. The applications travel back along the same route they came
  6. You pick them up at their respective starting points

Hopefully this will help you waste less time in the process.

Step x where x < 4: Get familiar with the local police station


Since both requests will finally come to the local police station, you should go there at some point before completing step 5, and get to know the person who'll do the verification. Explain your urgency, and ask him for any documents that he'll need so that, once the requests get to him, he can complete his end of things ASAP. In my case this guy was really nice and did all he could to help me get things done quickly.

Step 1: Money


Passport Office


Accepts Cash

Commisioner's Office


The commisioner's office requires that you first go to the State Bank of Mysore, Treasury Branch and remit Rs. 200 to account number 005500103004. You'll need to specify "for PCC" and supply your name and address as you'll want listed on the certificate.
You don't have to do this in person; I was able to send my driver to take care of this. However, I didn't know that it needed a name and address and he just guessed the spellings of both, so he had to do it again, this time with a PostIt with my name and address written on it.
Time:My driver said that there was a line for this as well, and it took about three hours.

Step 2: Forms


Passport Office



  • Form 2
  • Personal Particulars Form in duplicate (pages 10-13) and index card (page 3) from the passport application form
  • Passport (make sure you make copies of the important pages and visas in your passport first, because they'll hold onto your passport once you submit the application).

Commisioner's Office


The forms required at the commisioner's office are not available online. You may be able to ask someone to get them for you though I'm not sure. That process is optmized for wasting your time.
Show up at the office called "Single Window" at the commisioner's office. There is an 'enquiry desk' at the front which supplies you with forms and information. If the guy there is in a good mood, you may be able to get a blank form from him up front. If you're having someone take care of the bank stuff for you, they can try getting you that form at the same time.
Time: Should take about 10-20 minutes depending on the size of the line.

Step 3: Submit the applications


Passport Office

Show up at the passport office a little before 8am. The counter only opens at 9:45, but the line starts at 7:45 or 8:00am.
What to bring:

  • Proof of address
  • Forms with photo
  • Cash (About Rs. 300 I think)

You'll stand in line where they'll check your paperwork and give you a token number. Then you wait for your number to be called at which point they'll take your money and passport and give you a receipt. Make copies of this ASAP.
Time: If you get in line before 8am, you could be done as early as 10:30am.

Commisioner's Office

Show up in the morning around 10 or 11am; you should be able to head there right after going to the passport office. You'll need:

  • Proof of address
  • Form with photo
  • Receipt from the bank

Even if there's a big crowd when you enter, that's either people waiting in line to pick up the stupid form and figure out the process, or foreigners on long term stays registering their presence. Just go to the line in front of the window that says 'police verification' (number four, I think).
After submitting the application, you'll get a receipt. Make copies for safe keeping.
Time: About 10-20 minutes.

Step 4: Check for the request from the passport office


At the commisioner's office, there is a big room at the front (facing Infantry Road) where you can go to check on the status of a verification. It should take a day or three for the request to get from the passport office to the commisioner's office; I wasn't able to figure out how to speed this process up.
When you walk in, you'll be confused; there are windows up front, but no lines leading up to the window. Sitting in front of the window will not result in someone coming to help you. The right thing to do is to observe for a few minutes and find someone who looks like they work there (you'll know by the fact that they keep coming and going from behind the restricted area).
Catch a hold of one of them and ask them to check on the status of the passport verification. Give them the original receipt and they'll go back into a room somewhere and search through their files to tell you if they've gotten the request.
Once they've gotten the request, move on to the next step.
Time:About 20 minutes each time you decide to go there and check.

Step 5: Expediting the process


The requests for verification could sit around for a while in the commisioner's office and we want to avoid that. Once you find out that the passport request has been received, find out if the police certificate request (that you submitted at the commisioner's office has been forwarded to the local police station or not). If it hasn't, then you'll need to complete the following steps for both requests:
  1. Go wait in line outside the DCP (Deputy Commisioner of Police), Intelligence's office along with your urgency letter and receipts for the requests and request him to let you take the requests 'by hand' to the local police station. He'll sign on the two receipts. His office is in a different building in the Commisioner's Office compound.
  2. Wait in line outside the ACP (Assistant Commisioner of Police)'s office and ask him to . This is inside the big room when you find out about status. It's on the right when you go in. Hopefully he'll grant your request by signing on the receipts as well.
  3. The ACP should instruct someone to go and prepare a sealed envelope containing both requests.

Time:About 45-60 minutes to get both signatures.

Step 6: Local Verification


This may vary. The cop dictated two long statements to me which I had to sign. Both were along the lines of "I am such-and-such person living at this address. I require police clearance / passport verification for the purposes of blah. I've provided the following documents as proof of residence. I request you to please provide the verification".
The cop came to my building and got a sworn statement from the building manager as well. Two huge packets consisting of the requests, along with address proof and statements were then signed by the head of the local police station (I forget his official title). Finally, they needed to stick my pictures in two registers, which I had to sign.
Thanks to an urgency letter, the responses were given back to me in an envelope and I was able to take this, by hand, back to the commisioner's office.
Time: Because I'd done a lot of ground work (i.e. been there many times), the actual physical verification took about an hour. I'd reserve about half a day to write the statements, provide address proof, and to get the appropriate statements and signatures.

Step 7:One down, one to go!


With the forms completed by the local police station, I was able to go back to the commisioner's office and submit them there. Again, just catch hold of someone and request to speak to the guy in charge of police verifications. If he's sweet, he might agree to complete the process that day itself.

Passport Verification


Just submitting the forms is not enough, you need to request that you are assigned a GR number. This should ensure that it is available for pickup from the passport office the next day.

Commisioner's Verification


The receipt for your verification would have listed a pickup date 3 weeks in the future. In order to pick it up before this date, you'll need to get signatures again from the DCP of Intelligence and ACP. Show them the urgency letter and hope that they approve your request. If they do, you should be able to take this back to the Single Window and get one your police certificate. Woohoo! One down, one to go!
Time:About half a day. Once you submit the local police reports, you should wait there to make sure you get the GR nubmer.

Step 8: Expediting the Passport Verification


Show up at the passport office a little before 11am with
  • your receipt
  • a personal statement of urgency
  • some proof of urgency (e.g. a company letter) and, of course,
  • one more photo.

In the front of the Bangalore office, two guards jealously guard the entrance to the "Tatkal" (expedited) area. Show them your proof of urgency and they'll let you in. Go up one floor and a security guard will give you yet another form, and direct you to stand/sit in a line.
When you get to the window, someone will check your paperwork and ask you to meet the Assitant Commisioner. You'll be shuffled along to another line outside his office. Explain your circumstances to him, and he may approve that you be provided your passport the same day or the next day.
Time: If you get there just before 11am, you should be done by about 12:30pm.

Step 9: All done!


On the day you're meant to receive your passport back, you show up at the passport office between 4 and 6pm. Show your receipt, and the guards will let you go back up to the same Tatkal hall. Do not bother standing in line.
They have this funky process whereby they call out 15 names or so over the PA system. Those 15 people are expected to go to the counter and pick up their passports (they'll call out the names again in the same order). If you don't show up, they'll try calling your name again in a little while.
While this may entice you to show up at 5:30pm, I'd recommend going a little earlier just in case (remember; they strive to waste as much of your time as possible, and may come up with some even less efficient system by the time you read this).


And that's it! After many man hours of effort, repeated visits to the passport office, the commisioner's office, and your local police station; you would have gotten your certificates!

Appendix A: Address Proof


I have had serious problems with address proof in India. My landlady provides a phone and gas connection, and the electricity bill is in her name. The following documents are NOT considered valid address proof:

  • Phone bills from private companies
  • Your lease
  • Credit Card bills
  • Bank statements from a non government bank

Finally, I was able to use my tax "Saral" (a stamped piece of paper saying that you've filed taxes) as proof of address.
I recommend getting a gas or govt. phone line in your name even if for no other reason than to provide address proof.

Appendex B: Bribery


I'm the worst person to comment on this, as I don't really know how to offer someone a bribe. I'm also not at all comfortable with it.
There were certain steps in this process where the people concerned, after completing my job in a somewhat timely manner, asked for money. I paid. There were other cases where there was no request for money but I had been helped. I asked to make sure the person would not be offended, and paid. I paid more in the second case because I felt that the person had been sincere and I think honesty is rarely rewarded in India. It was ironic and possibly defeated the purpose to reward honesty with what could be construed as a bribe.

Tuesday, January 24, 2006

done!

Though I can't believe it myself, today is my very last day at the Amazon office in Bangalore. I came here in October 2004.

The last few months have been somewhat crazy; I've been out of the office a lot for personal (family) reasons. So leaving today seems even more sudden.

But I'm quite excited. Tomorrow afternoon I'm catching a flight to Goa. We are going with Romain/Elise and Sanjay/Ashima; Vikas/Pooja join us on Friday morning, and Praveen joins us on Saturday morning. We're going to South Goa (Pallolem beach) where I haven't been before; I'm looking forward to the usual fish curry and rice, as well as some motorcycling. We'll hang out there over the weekend and then head over to Belgaum and Sangli/Miraz to hang with some family.

After that, things are somewhat unclear. If nothing more spectacular comes my way by middle/end of February(hint, hint!), I'm currently set to take up a really cool position back at Amazon Seattle starting March 1st. That leaves me with most of February to wrap up here as well as do some sightseeing.

That is so far unplanned; we're considering visiting some friends in SE Asia, or spending time seeing areas like the Northeast of India, or Rajasthan.

Obviously, both of us have mixed emotions about going back. We're excited and looking forward to it, but at the same time we've spent the past month (and will probably spend the next month) constantly pointing out things that we'll miss about India.

In terms of stuff we're taking back, we've picked up (and will pick up more) a bunch of small knick-knacks; some art work, and some really cool furniture. Oh, and of course, two heads full of wonderful memories.

Tuesday, January 10, 2006

Happy New Year

I'm a little late with the New Year wishes but since this is my first post of the new year, I figured it's legit.

It's eid today; I was trying to catch an autorik to go somewhere today and went out on the main road to find throngs of muslims blocking the main road. They had their prayer mats laid down and were kneeling and prostrating as prayers were chanted over a loudspeaker. It was an awesome sight. S is going out to take a look, and will hopefully catch something on video that I can upload.

Last week we went to Chennai for the day. We had a few hours to kill in the afternoon and were trying to figure out what to do. Someone suggested the museum so I reluctantly agreed, figuring that we'd just stop by for a while and move on to the beach. I'm glad we went. It was the best Rs 15. I've spent in a long time! The buildings themselves were grand and very picturesque. The exhibits were also fascinating - they had lots of bronzes and stone carvings from various periods in India history.

S and I didn't do much for New Years. We were in Pune at the time. On the 30th, we went out with my sister and brother-in-law to this cool little lounge called 'Kiva' that plays very upbeat 70s/80s music that just makes you want to move. We got pretty drunk there. On the 31st I was sick, and everyone was a little exhausted so we just hung out at home and chatted and watched some TV. S baked a cake which got ready at midnight, so we ate that and drank some dessert wine.

That's all. We're planning on leaving India in a few months, which brings with it quite a mix of emotions; excited to move on, but sad to leave behind lots of great memories. These days I'm busy trying to wrap things up at work and at home. S has been given a license to go nuts shopping since there're so many little gifts and such that we want to take with us.

Wednesday, December 14, 2005

passionate about your customers

Joel has a great article on how he sped up the process of shipping dvds. Joel is a prolific writer on software development, and runs a software company. Which is why I was surprised that he put three days of effort into building a kickass mailing system instead of getting some other company to do it.

Why he did that is explained here

sloppy, yahoo!

ugh. yahoo! buys del.icio.us, and now I get this<:
I'm disappointed. They should have error handlers that prevent detailed errors like this being shown to users.


System error
error: Can't call method "prepare" on an undefined value at /www/del.icio.us/comp/user/get line 13.
context:
...
9: my $usedb = 'master';
10: my $ret;
11:
12: if (!$auth_user) { $usedb = 'user' }
13: if (!exists ($db->{$usedb})) { $usedb = 'master' }
14: $user_name_q->{$usedb} = $db->{$usedb}->prepare('select * from users where user_name = ?');
15: my $query = $user_name_q->{$usedb};
16: $query->execute(lc($user_name));
17:
...
code stack: /www/del.icio.us/comp/user/get:13
/www/del.icio.us/comp/settings/antisocial:52
/www/del.icio.us/site/settings/dhandler:9
/www/del.icio.us/site/autohandler:110
raw error



Can't call method "prepare" on an undefined value at /www/del.icio.us/comp/user/get line 13.


Trace begun at /usr/share/perl5/HTML/Mason/Exceptions.pm line 131
HTML::Mason::Exceptions::rethrow_exception('Can\'t call method "prepare" on an undefined value at /www/del.icio.us/comp/user/get line 13.^J') called at /www/del.icio.us/comp/user/get line 13
HTML::Mason::Commands::__ANON__('dbh', 'DBI::db=HASH(0x1b66b20)', 'user_name', 'hbhanoo') called at /usr/share/perl5/HTML/Mason/Component.pm line 134
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x1d03aa0)', 'dbh', 'DBI::db=HASH(0x1b66b20)', 'user_name', 'hbhanoo') called at /usr/share/perl5/HTML/Mason/Request.pm line 1069
eval {...} at /usr/share/perl5/HTML/Mason/Request.pm line 1068
HTML::Mason::Request::comp(undef, undef, 'dbh', 'DBI::db=HASH(0x1b66b20)', 'user_name', 'hbhanoo') called at /www/del.icio.us/comp/settings/antisocial line 52
HTML::Mason::Commands::__ANON__('cookies', 'HASH(0x2fcb2b0)', 'tagview', 'list', 'browser', 'ff', 'bundleview', 'show', 'auth_user', 'hbhanoo', 'dbh', 'DBI::db=HASH(0x1b66b20)', 'tagsort', 'alpha', 'items', 10) called at /usr/share/perl5/HTML/Mason/Component.pm line 134
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x37d1ba0)', 'cookies', 'HASH(0x2fcb2b0)', 'tagview', 'list', 'browser', 'ff', 'bundleview', 'show', 'auth_user', 'hbhanoo', 'dbh', 'DBI::db=HASH(0x1b66b20)', 'tagsort', 'alpha', 'items', 10) called at /usr/share/perl5/HTML/Mason/Request.pm line 1074
eval {...} at /usr/share/perl5/HTML/Mason/Request.pm line 1068
HTML::Mason::Request::comp(undef, undef, 'cookies', 'HASH(0x2fcb2b0)', 'tagview', 'list', 'browser', 'ff', 'bundleview', 'show', 'auth_user', 'hbhanoo', 'dbh', 'DBI::db=HASH(0x1b66b20)', 'tagsort', 'alpha', 'items', 10) called at /www/del.icio.us/site/settings/dhandler line 9
HTML::Mason::Commands::__ANON__('dbh', 'DBI::db=HASH(0x1b66b20)', 'auth_user', 'hbhanoo', 'items', 10, 'tagview', 'list', 'tagsort', 'alpha', 'bundleview', 'show', 'cookies', 'HASH(0x2fcb2b0)', 'browser', 'ff') called at /usr/share/perl5/HTML/Mason/Component.pm line 134
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x21c9ab0)', 'dbh', 'DBI::db=HASH(0x1b66b20)', 'auth_user', 'hbhanoo', 'items', 10, 'tagview', 'list', 'tagsort', 'alpha', 'bundleview', 'show', 'cookies', 'HASH(0x2fcb2b0)', 'browser', 'ff') called at /usr/share/perl5/HTML/Mason/Request.pm line 1074
eval {...} at /usr/share/perl5/HTML/Mason/Request.pm line 1068
HTML::Mason::Request::comp(undef, undef, 'dbh', 'DBI::db=HASH(0x1b66b20)', 'auth_user', 'hbhanoo', 'items', 10, 'tagview', 'list', 'tagsort', 'alpha', 'bundleview', 'show', 'cookies', 'HASH(0x2fcb2b0)', 'browser', 'ff') called at /usr/share/perl5/HTML/Mason/Request.pm line 760
HTML::Mason::Request::call_next('HTML::Mason::Request::ApacheHandler=HASH(0x2fc7ed0)', 'dbh', 'DBI::db=HASH(0x1b66b20)', 'auth_user', 'hbhanoo', 'items', 10, 'tagview', 'list', 'tagsort', 'alpha', 'bundleview', 'show', 'cookies', 'HASH(0x2fcb2b0)', 'browser', 'ff') called at /www/del.icio.us/site/autohandler line 110
HTML::Mason::Commands::__ANON__ at /usr/share/perl5/HTML/Mason/Component.pm line 134
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x1b04180)') called at /usr/share/perl5/HTML/Mason/Request.pm line 1069
eval {...} at /usr/share/perl5/HTML/Mason/Request.pm line 1068
HTML::Mason::Request::comp(undef, undef, undef) called at /usr/share/perl5/HTML/Mason/Request.pm line 338
eval {...} at /usr/share/perl5/HTML/Mason/Request.pm line 338
eval {...} at /usr/share/perl5/HTML/Mason/Request.pm line 297
HTML::Mason::Request::exec('HTML::Mason::Request::ApacheHandler=HASH(0x2fc7ed0)') called at /usr/share/perl5/HTML/Mason/ApacheHandler.pm line 134
eval {...} at /usr/share/perl5/HTML/Mason/ApacheHandler.pm line 134
HTML::Mason::Request::ApacheHandler::exec('HTML::Mason::Request::ApacheHandler=HASH(0x2fc7ed0)') called at /usr/share/perl5/HTML/Mason/ApacheHandler.pm line 793
HTML::Mason::ApacheHandler::handle_request('HTML::Mason::ApacheHandler=HASH(0x1ac5e90)', 'Apache=SCALAR(0x27ced60)') called at (eval 43) line 8
HTML::Mason::ApacheHandler::handler('HTML::Mason::ApacheHandler', 'Apache=SCALAR(0x27ced60)') called at /dev/null line 0
eval {...} at /dev/null line 0


Update: Also, auto-complete for tags (when posting a new link) seems to not be working anymore. What happened to the kickass del.icio.us site that we know and love?

Sunday, December 11, 2005

VOIP

So I signed up for this service called SkypeIn - offered by skype. I now have a US number where you can call me and my laptop will ring in India. Contact me for the phone number.
PS: remember that I'm still in India; don't call me in the middle of the night! Check here before calling me.

Friday, December 02, 2005

origami

check out this podcast about origami. If you don't have 15 minutes to listen to it, check out this site and click on the 'science' section. It's amazing! I didn't know there was so much depth to origami.

fc goodness

just catching up on a few months worth of fc posts:

From The Value of Rough Seas
In life, it's the rough patches that build your strength and character. They test you. They make you dig deeper, think harder, and risk more. Use them to your advantage. Don't play the victim. Get up and get creative. It's what you do when the going gets tough that defines you.

In a separate post, they recommended Clapton's GuitarClick on the 'look inside the book' link to read a few pages from it.
From OXO's Favorite Mistakes
"Everybody talks about their successes, but the failures, the mistakes, are the most interesting things," says Alex Lee, OXO's president. "Our wrong assumptions lead to the best learning."

From Dr. Brilliant Vs. the Devil of Ambition
That is why Brilliant has devoted his life to understanding that one simple, puzzling mantra: "Live your life without ambition. But live as those who are ambitious." Do that, and you discover the discipline of living an authentic life -- and of living hard, as if each day counts. That said, there is no mistaking that Brilliant is, well, weird. He is maybe three statistical variations from the norm, which he also fully accepts.

Dublin, Helsinki, Montreal, Sydney, and Vancouver are listed as FC's global fast cities.

Tuesday, November 29, 2005

weddings!

The last couple of weeks have been hectic.
Last weekend, a bunch of us took a Friday night bus to Goa, to throw a bachelor party for Vikas. It wasn't too crazy but we did spend the entire weekend relaxing, getting massages, drinking (banana milkshake mixed with Old Monk dark rum was the unofficial beverage sponsor) and eating (goan spicy sausage, prawn-curry-and-rice, prawn-stuffed-papad).

This past Friday afternoon, S and I flew to Kolkotta to attend Naveen's wedding. We went out for dinner and drinks with some of his highschool friends on Friday night, and followed it with an evening of gambling. I don't gamble on principle, but it looked like a lot of fun and I was pretty tempted to join in. Instead I sat back and enjoyed the Black Label that Sahel graciously provided. On Saturday we ate, did a superfast city tour (the Victorial Memorial is breathtaking; S ate some Mishti Dahi, Roshogollas, and Sondesh), came back and ate again, and then got ready for the evening reception (yes, they had a reception before their wedding). The reception was at an amazing location next to some body of water. They had fireworks, candles floating on the water, unimaginable amounts of food (I guess the latest thing in Indian weddings is to have a bunch of food stalls where you can get different types of food; they had everything from mediterranian and domino's pizza, to north indian and chaat).

On Sunday morning, we took a flight to Delhi and hung out at my parents place in Gurgaon. Monday morning we went to the US Embassy to take care of some business and then drove to Chandigarh for Vikas's wedding.

I missed out on all of the heavy pre-wedding drinking with Vikas (they were up till 6am on Monday morning) but the wedding was awesome. Both Vikas and Pooja looked fantastic. My wife, though, will soon be publishing a treatise on Why Punjabi Weddings Should Not Be Late at Night. The actual wedding ceremony started at about 2am (outdoors) and it was frikkin cold. Luckily, I was wearing a set of heavy wool robes that I picked up in Ladakh earlier this year so I was nice and toasty.

On Tuesday we drove back to Delhi and almost missed our flight back to Bangalore (they had closed check-ins but I had been able to call ahead so they had blocked seats for us). I was extremely stressed out.

Now I'm back and should really get cracking on all of the piled up work.

Wednesday, November 16, 2005

usability

This article from a list apart talks about website usability and how design choices have a serious impact on site performance.

One of the things that I love (and amazes me) about amazon is that they have a really cool framework that allows you to test any design changes to the site. Almost all design changes go through this 'weblab' process which calculates the statistical impact of a certain change on various things (purchases, add-to-carts, etc. - I don't know the actual set of metrics we track).

Design is a wierd and sometimes counterintuitive thing. I couldn't guess which was the most usable site out of the three listed in the article above. I think the discipline of constantly collecting and analyzing metrics goes a long way.

news

news in india is not perfect; my wife often complains about the newspapers carrying mostly local news and only a page of international news. That said, the other media (magazines, tv) have pretty good coverage of international events.

I was having a conversation last week where I mentioned to a friend that, while I can't find much to complain about living in the US, the one thing that infuriates me is the subconscious messages that tell you that the world ends at the US borders (often accompanied by a very 'holier than thou' attitude towards the rest of the world). I'm not eloquent or observant enough to put my finger on exactly what it is that causes that, or even to be able to enumerate the ways in which it manifests itself. But the feeling was undeniable while I was there.

Although living in Bangalore is not always pleasant (dirt, dust, pollution - all the things I promised never to complain about if I moved to India) what I love about being in India is the feeling of being part of a world that is much larger, and much more diverse than the US of A.

On a different note, check out Toxic truths from the Iraqi battlefront.

Saturday, November 05, 2005

artificial artificial intelligence

Amazon Web Services released a beta version of mechanical turk last week. see here for a description of the term.

What does Turk have to do with Web Services? Mechturk is a framework that allows people to get paid for tasks that humans are much better at than computers (e.g. image recognition). But it allows applications to submit those tasks. So the tables are suddenly turned and we have this apocolyptic scenario where applications submit tasks, and you have a bunch of humans plugged into a system, doing jobs for the applications. How whack is that?

Without hyperboling, it actually takes outsourcing to the next level. It may change the economics of research; at least for a short while. Why bother putting millions of dollars of research into something like image classification when you can outsource it on a massive scale to people all around the world for a fraction of the cost?

I think a lot of economists, philosophers, computer scientists, criminals, and sociologists are going to have a fun time thinking/talking/writing about mech turk.

Thursday, November 03, 2005

Stallone

On the way to work today my cab driver, in slightly broken english/hindi said something about "fistblood, rumble,film?" After some clarification it turns out that he was asking me if I'd seen any of the Rambo movies. According to him my face looks like Stallone's. Funny.

update According to imdb, him and I do share the same birthday, though he's 32 years older than me.

ps: in hindsight, maybe Stallone's great acting and stellar portrayal of the I hate being in 'nam and I'm gonna kick your ass look and my I hate going to work and I'm gonna kick your ass look have something in common. ;)

Wednesday, October 26, 2005

go start a company

... but first, listen to this podcast, Paul Graham speaking at OSCON 2005.

Oh and also go watch The Corporation.

And then go create something.

Wednesday, October 19, 2005

pent up thoughts

some pent up thoughts from not having blogged in a while...

The other day my wife was complaining about how I'm too skinny. And it got me thinking. For my entire life, I've had relatives make comments like "hey - you've lost weight since we last saw you!", "you should eat more!", and "you're all skin and bones!"

I have tried retorting with the very logical "You say that everytime. If it really were true, I'd be non-existant by now." but that usually just gets brushed off and is followed by some oily snack being thrust in my face.

Anyways, it got me thinking how ridiculously biased society is. No one meets an overweight relative and makes comments like "hey - you've put on so much weight since we met!", or "you should really cut back on your food", or "you're all lard!". Why is it acceptable to publicly make fun of skinniness but not of fatness?

:) I'm not all that bothered by it, but I think the next time someone says I look skinny, I'm going to tell them that they look like an elephant.

On a totally unrelated note. Today I went to play tennis and this guy was just getting off the court from practicing; he was just picking up a basket worth of balls and putting them into his bag. After he was done, he went back to the court, bent over and touched it with both hands, lingered there for a few moments, straightened up, and touched his hands to his heart and then his forehead. The gesture was so pregnant with reverence and sincerity, that I was moved and disoriented afterwards. It wasn't a quick, ritualistic, obligatory movement; but slow, deliberate, and sincere.

On the one hand, gestures like these are so built into Indian culture (a similar gesture is used as an apology for accidentally touching someone with your feet) that most of the time they are done in a very obligatory-type manner (quick, unthinking, instinctive). On the other hand, the idea of revering your 'craft' (sort of "Zen and the Art of Motorcycle Maintenance"-like) is just built into most people.

Two examples of that: Almost every driver (chauffer) I have seen will fold their hands in prayer for a few seconds before starting the car for the first time in the day. Second, the other day there was a festival during which people gave the instruments of their craft a day of rest, and worshipped them. I know of a few IT companies where all the servers were shut down in the morning, coconuts broken and prayers and sweets offered before they could be brought back up in the afternoon.

Monday, October 03, 2005

the depths of your heart.

I've been a fan of Trevor Romain's blog for a while. It's a good daily dose of feedgoodness.

Among other things, it (his blog) gave me the inspiration to attempt to start drawing. Yesterday I was just feeling an alltime low at work so I left early to go home. My wife was feeling the same way so we went out to Gangarams (a stationary + book store in Bangalore) and bought a notebook, pencil, and some pens. Then we went and hung out at Infinitea - a chic tea store on Cunningham road. I drew a few pictures, and she got started on a story she's been meaning to write.

I remember when I was a kid, my mom would learn various art forms (oil and water painting, sculpting, sketching) from a teacher (Anna Aunty). A bunch of ladies would get together at our house and paint and gossip under Anna Aunty's guidance. Well one time I decided that I wanted to try as well. I was so distraught at the outcome that I decided that I couldn't draw.

My abilities haven't changed much but, after reading Trevor's blog, I've realized that it's okay to not draw masterpieces as long as they reflect the depths of your heart.

At the beginning of next year, I want to take some time off work and head up North to the Himalayas and learn to kayak, as well spend a week or so at one of the numerous ashrams. Thoughts of being in the mountains again and battling a gushing river have been going through my head for the past week (uh. sorry. tilt your head 90 degrees to the left):



I'm hosting this picture on our media - I'm surprised they don't have a way of scaling down images - so sorry if it takes a while to download.

Sunday, October 02, 2005

star traffic police

On Saturday we were driving around the Commercial Street area in Bangalore. At the busy intersection right near Commercial Street was a traffic policeman (wonder of wonders) dressed in a smart blue uniform. He was stopping traffic for pedestrians, stopping vehicale who were trying to cut red lights, and generally doing a fantastic and whole-hearted job.

We thought he must've been a private cop hired by the commercial street shopkeepers to keep order in the area. But low and behold, he was actually a Karnataka state cop. I felt pretty proud and gave him a big smile and wave. I wish I could remember the name I read on his badge. Whoever you are; keep it up.

On a side note; if the Bangalore Police allowed volunteers to do traffic police duty, I would gladly volunteer my time for that. I go berserk when people break traffic rules. The worst part is that they look at me like I'm a freak for doing things like stopping at red lights. grr

Wednesday, September 28, 2005

time to move on

I've fallen in love with the following lyrics from Tom Petty's "Time to Move On":
It's time to move on, time to get going
What lies ahead I have no way of knowing
But under my feet, baby, grass is growing
It's time to move on, it' s time to get going

It's such a chill song, and it's whispering intimately to my heart right now.

Sunday, September 18, 2005

six dumbest ideas in computer security

The Six Dumbest Ideas in Computer Security has some great stuff. (link from osnews)

fc goodness

from Digital Competition
Communication is a big part of making deals. One minute, I could be talking to three guys with pimples in a garage; the next, I could be speaking with the CEO of Deutsche Telekom. The most important thing is to get rid of all your prejudices. You have to open your mind. It doesn't matter if the people you're talking to are 22 years old or 57 years old. It doesn't matter what their color is, what their gender is, what language they speak, how big their company is, or even if they were a success before. The playing field today is a lot more level than ever before.

In Hollywood, you're expected to be intuitive. In the entertainment industry, you have people who have intuition and people who imitate. Nobody there analyzes. But for the most part, in our society, if you know and you don't know why you know, then obviously whatever you know doesn't matter -- which is stupid. If you have been right about things for 20 years, then you should be able to say, "I don't know why I know, but I know." If I'm hiring people, I don't want to know how they know, I just want to know that they have a good record of being right.

Interesting. Good intuitive decisions being applause, but when the bad intuition costs you money, I'm sure things hit the fan.
if you try to keep everything in your company under your own control, then your company has built its own coffin: It's limited by itself in every direction. If you think of your company as a box, then there should be only one side to the box. The rest of the box should be open.


From GM Has a New Model for Change
inside virtually all big companies -- is that you spend most of your time with people who are exactly like you. To counter this insularity, Ochalek, 43, lobbied to get his team out into the real world. Members of APEx went to work inside various car dealerships and visited with companies in different industries. They stopped attending auto shows and started going to Internet conferences, consumer-electronics trade shows, and toy fairs.

Thursday, September 15, 2005

sania

India's really proud of Sania Mirza. She's in the press all the time, and you can see her advertising jewellery on billboards all over town. Recently, some clerics made an uproar about her short skirts on court.

Here's a nice article in reaction to all the fuss. You go Sania!

file systems and web ui's

From an interview with Hans Reiser:
    I also learned to focus on the little things in the data that don't make sense. Often the guys I hire will disregard them, thinking there must be something wrong with the benchmark since it does not make sense. Being more experienced I know that the things that don't make sense are the most important data collected. Time and again, getting to the bottom of a minor performance anomaly that should not exist reveals a design flaw or failure in my understanding, and curing it leads to an advance in our performance that was well worth having. (link from osnews)


pretty cool. I think I tend to turn a blind eye to anomolous data. I didn't get all the way through the interview...

I forget where, but I saw a link to this site called A List Apart.
    A List Apart Magazine (ISSN: 1534-0295) explores the design, development, and meaning of web content, with a special focus on techniques and benefits of designing with web standards.
My first observation was that the site is beautiful. I read some of the articles today and they taught me a lot about CSS. I now subscribe to the feed so hopefully my web-authoring skills will improve. I hate crappy-looking sites. And I hate writing crappy UI code - even if it looks nice. Hopefully, some of the techniques mentioned will help beautify both the end-product and what lies beneath.

Incidentally, I'm working on a little app using Ruby on Rails. After working on very platform-level distributed systems code, it's fun to work on a web app. Sometimes I focus on db stuff, sometimes I work on the functionality, sometimes it's usability, and sometimes I just putz around trying to make it look pretty.

Update: I really want to make sure I have a ticketing system in place before I release my web-app (even though it's not going to be a huge release). Here's a somewhat long, but informative rant that reminded me why it's a great idea.

Wednesday, September 14, 2005

gems from FC

From Here's How to Make It to the Top:
    "I've been so successful in my climbing because I usually haven't turned back during that final, exhausting 5%. Making it to the top isn't about a final sprint; it's about maintaining your rhythm - even if that rhythm is five breaths for every one step. That kind of focus means that you're more likely to have the energy to deal with unforeseen challenges - and less likely to lose sight of why you're climbing the mountain in the first place."

I thought upward (manager) evaluations were standard practice. I'm horrified to know that they are not.

From The Fall and Rise of David Pottruck
    Just before the meeting got started, Andy Grove, the gruff chairman of Intel's board at the time, pulled Pottruck aside. " 'When you got promoted to CEO,' " Pottruck remembers him saying, " 'did that make you a better man?' I said no. He said, 'Well then, do you think the fact that you're no longer CEO of Schwab means you're not a better man?' I said, 'No, I don't think so.' He said, 'You're as good a man as you were last week. Hold your head high.' It helped me a lot."

Monday, September 12, 2005

my wife's murder

Last Wednesday was Ganesh Chathurthi, so we had the day off. Sindya and I decided to go watch a movie with Praveen. We ended up watching My Wife's Murder, a Hindi movie about, well... read the review I linked to if you want to know. I loved it because none of the characters are overly exaggerated. And, although the main character ends up making some pretty crazy decisions, he seems to be responding to the very real first instinct that we (at least I) have of running and hiding from problems. Apart from hoping that I never get into the same situation as the protagonist, I found myself constantly being like "shoot... I wonder if I would've made a similar decision?"

This weekend Sindya and I went shopping for a small music system. In the process of driving around town, we also stopped by an exhibition of 'nature lamps'. This one artist has made lamps out of tree bark. We ended up buying a free standing lamp. It should get delivered today; I'll see if I can post a picture.

On Saturday night we had an anagrams party with a twist; everyone had to bring a guest who we didn't know. It was cool; I ended up meeting some really cool people. It's funny because all of the random people actually ended up having some connection to someone else at the party; small world.

(If you haven't played anagrams before, you have, to try it. It's frikkin awesome)

Back to Monday. No rowing for the next few weeks; the Army rowing team is preparing for a competition so they hog the boats and don't let civilians play. Oh well.
Update: Lamp pictures here and here. Hiking pictures from two weekends ago here and here.

Thursday, September 01, 2005

(more) rowing

Maybe it's annoying reading about day-to-day progress in my rowing abilities. But it's still pretty exciting for me so I'm writing anyway.

Today I went on a double-scull with this girl Sarita who's been rowing a few months. It felt awesome. I got a really good workout (arms are in pain) and it was just so cool to have two sets of oars rowing in time (most of the time) and the boat just shooting (at least compared to rowing when you're tied to the dock) across the water.

When we were out there, I looked to shore and saw that Sindya was out on a single scull. She was actually standing up on it without holding the oars. That's super difficult to do. She eventually fell in. But given that I fell in while sitting down with only one hand off the oars, she did pretty damn well. She divulges the secret to her balance here.

Pretty soon, Sindya and I may be able to go out on a double-scull by ourselves. And if it's anything like riding a tandem cycle with her, I'm sure I'll get a solid workout. :)

On an unrelated note, check out amazon's cool ajax UI for doing a
diamond search.

Monday, August 29, 2005

waterskiing!

So this morning we went to Ulsoor for rowing. Sindya and I did ran around the lake and were just stretching and waiting in line for a single-scull. Today was the day we were meant to practice balancing in a scull while tied to the pier.

Just then, they brought out some waterskis and there was an army guy trying to learn how to waterski. He wasn't able to get out of the water, and I made some comment about his skis not being positioned correctly. One of the coaches overheard so he turned to me and asked if I knew how to ski. Then he was like "will you show us?" It was issued as sort of a challenge. So I said that I could definitely give it a try.

Well eventually the boat came in and I got into the water. The only thought going through my head was "shit. now a bunch of army guys are going to get a laugh out of me falling" Luckily, I was able to get up on the first try and even cross the wake a few times.

After two rounds of the lake I came back to shore and watched Sindya's balancing act in the scull (she had already gotten in). There wasn't time for me to try today, but that's okay. I haven't waterskied in oh about... fifteen years. So I've spent the rest of the morning smiling from ear to ear.

PS: I should mention that Ulsoor was no cleaner today than it was yesterday. So if I die because of sewage ingestion, then we all know why. :) (actually it wasn't that bad)

Wednesday, August 24, 2005

gluttony

Moral: Gluttons shouldn't go to an all-you-can-eat place when starving.

Story: After rowing this morning and attempting to improve my running time (no luck: still did 16:54 around the lake), I rushed to the office and forgot to pick up breakfast either at home or near the office. By 11am I was starved and light headed.

Every Wednesday they have an all-you-can-eat salads-and-cold-cuts buffet at a german cafe (Cafe Schlomegger) above the Max Meuler center in Bangalore. I called and made a reservation for 12:30 (when they open). I ate about four full plates of meat and salads, after which Sindya (who didn't eat quite as much as me) proceeded to order dessert. Of course, I had to have some of that too.

After a 90 minute lunch, I could barely walk the four flights of stairs back down to the road. An hour later I'm at work feeling unbearably sick. ugh

On a side note, Moohaha writes about bad drivers in the US. I'm amused

Thursday, August 18, 2005

running

The rowing coaches want us to be sufficiently warmed up before starting to row, so I've been running around Ulsoor Lake every morning for most days the past two weeks (the long weekend excluded).

I was told that it's 3.6 km around the lake.

I timed myself the past three days and the times were 18:34, 17:40, 16:54 respectively. Pretty rapid improvement once I started timing myself, but I know I'm getting closer to my current limits.

As soon as I get under 15 minutes I'll be close to a six-and-a-half-minute-mile, which is my current goal. I'm told that the Army dudes run it in under 15.

Given that I do an hour of rowing after that, I'll probably just stick at that, until it becomes painlfully easy for me (wishfull thinking)

Wednesday, August 17, 2005

Kerala

Will update this entry later; need to head to bed. But here's a link to photos from a weekend in Allepy, Kerala.

(If you're subscribed to the feedburner version of my feed, you should already see the pictures)

So last Thursday night, Sindya and I took off for Kerala. We got in a bus at 4:30pm, and reached Allepy at 5:15am on Friday. A car from the resort was waiting to pick us up. We got to the resort minutes before sunrise, and were able to take some great snaps. The resort itself is very rustic. No TV in the rooms, all wood construction, outdoor openair bathrooms, etc. It was so beautiful there that we just stayed up and watched the sunrise and hung out in a hammock until breakfast time.

For breakfast, we had Appams and Stew - a traditional Kerala breakfast. The stew is basically vegetables boiled in coconut milk - it's delicious. After eating about 4 appams and exhausting the stew that we got, I asked the waiter to bring me a bowl of coconut milk and a jar of sugar, and proceded to eat six more appams doused in coconut milk and sprinkled with sugar. That about set the tone for the rest of the trip.

At around noon we took all our luggage and checked onto a two bedroom houseboat (there was no one in the other room so we had it to ourselves). There were three people on the boat with us; a fulltime cook, a dude who steered the boat, and a dude to run the motor. :) The cook made some amazing lunch (shredded coconut in some kind of gourd, some daal, and a yummy kerala fish curry) and dinner.

There was a mattress on the front of the boat where you could just lie under the sun and watch the world go by. That's where we were most of the time. We stopped in the middle of a lake for a while and I went for a swim though was a little scared because the dude told us there were water snakes (non poisonous) in some parts. At around 6, we docked somewhere and went for a walk, had dinner, and went to bed.

We got back to the resort by about 10am the next morning (breakfast was just toast along with an amazing dessert of caramalized unripe banana - why is it that we don't have dessert after breakfast all the time?). At noon we got on another boat to go watch the annual snakeboat races.

Each snakeboat accomodates about 120 people (usually representing one village). There are several heats with 4 boats each; it looked like they rowed about 2+ miles but I'm not sure. It was great fun to watch the first 3-4 heats but it got old quick.

After finally making it back to the resort at 6pm, we hogged some more on the buffet dinner (appams and coconut chicken curry, followed by many more appams eaten with - you guessed it - coconut milk and sugar) and hit the sack.

Sunday morning was spent just chilling in preparation for a 4pm bus back to Bangalore.

Overall it was an amazing trip. Did I mention the coconut milk?

Tuesday, August 09, 2005

innovation week

A few months ago, I had a really kickass idea for a relatively simple web app that, I think, could make web surfing much better (yes, another one of those ideas). I worked on a proof of concept but, being close to a big release at work, I couldn't find the time to concentrate on work as well as a prototype.

With support from Management, I was able to spend all of last week (minus a few hours each day when I had to attend meetings) working from home on my prototype. It was great fun to stay up late with pizza, coke, and some good music and hack away; I haven't had that much fun coding in... well... a long long time.

On Sunday night, I slept at 10pm (because I was going to start rowing classes at 6am on Monday) but ended up waking up at 2am with a head full of code. The last time that happened to me was probably during OS class way back in 2001. I ended up coding from 2am - 5am, going to the rowing class at 5:30am (we ended up not starting until today so just went running), playing tennis from 8-9am, and then being at work all day. Just when I thought I was ready to pass out at home in the evening from exhaustion, I just had to bust out a few more features that were spinning around in my head.

The app is not ready to go live yet, but it's at the point where I was able to demo it off to a few people at work today (sans any browser crashes or error messages). It's the first time we've done an 'Innovation Week' at Amazon Bangalore. Working on something small and innovative gave me a badly needed recharge; back to 'real' work now.

I'm totally convinced that RoR is the way to go for frontend development. It's funny; Ruby on Rails made the webapp/db coding so trivial/nonexistent that 90% of my time was spent writing javascript. I've mostly been doing backend, server framework-type coding at work so I'm not exactly an authority on frontends. But the little jsp that I've been exposed to tells me that RoR is the way to go.

Monday, August 08, 2005

rowing

As of this morning, Sindya and I are signed up to row for an hour every morning on Ulsoor lake, from 6:45 - 7:45. It's *amazing*. We're spending the first week rowing on a fixed boat (it's tied to the dock) to learn the technique.

The location (Trishna Yacht club) is Army property but they allow civilians to use it, through a company called Catapult Connect. The coaches are all super friendly Army guys who've competed nationally or internationally. Six days a week for 23 more days, we'll be waking up at six, taking a quick run around Ulsoor Lake, and then rowing for an hour.

Saturday, August 06, 2005

rails on fcgi

I've been working on prototyping a small rails app at work this week. On Friday I decided that I had enough functionality to be able to do a basic demo, so I decided to focus my attention on getting the demo up and hosted before getting back to fleshing out the functionality.

Since then I've been in config hell. Things were running really slow on my box because I was using CGI. Like an idiot I decided to switch to using lighttpd->fcgi->rails instead of apache->cgi->rails, but do it all in one go. I can't believe I still don't know better than to try doing multiple switches like that in one go.

Anyways, I came to my senses this morning and followed the following excellent instructions on getting fcgi set up on my local box. After (almost blindly) copy-pasting the commands, my app is up and running a lot faster with fcgi support.

The next step is to make the apache->lighttpd switch.

Wednesday, August 03, 2005

out of this world.

this is nuts. check out the moon.

And, for shitsandgiggles, make sure you zoom in all the way.

hat tip, google blog.

no way!

a multibutton mouse from apple!

One wonders why exactly it took them over a decade to realize that it's useful to have more than one button. Though I agree that more buttons is not always better; I have almost never used the 'forward' and 'back' thumb-buttons on my Microsoft mouse.

Monday, August 01, 2005

amazon 10 yr celebration

SO amazon.com had quite a big celebration for its 10 yr anniversary; a concert featuring Norah Jones and Bob Dylan.

We had a company picnic/10 yr celebration in India as well. We went to the Kings Sanctuary resort in Nagarhole. We left on Friday morning with two big buses and a small tempo, and arrived there in time for a late lunch. The rooms there were pretty amazing, and Sindya and I were lucky (with a little help from Rekha as well) to have a cottage to ourselves (most other people slept 4 to a cottage - two in the bedroom and two in the living room).

We went out for a safari that afternoon. We didn't see any tigers; we just missed seeing one by about 10 minutes. Ironically, people travelling on a loud, interstate bus saw a tiger whereas we (travelling in jeeps, specifically there to see the wildlife) didn't. We got to see lots of spotted deer, some Sambar deer, a wild elephant, a Gaur (I think it's the same as a bison), two types of monkey (langur, and one other) and a bunch of birds whose names I forget. We got pretty cold and wet, it rained the whole weekend. After the safari, we had dinner and drinks. A couple of us went for a midnight dip in the pool.

Vikas and I had brought some climbing gear so at 7:30am on Saturday twelve of us got into the tempo and went to a nearby rock for some clibming and rapelling. Vikas and I set up rapell with the help of the guide (he actually is an entertainer at the resort who'd just learnt to climb by watching people set stuff up there). Apart from the two of us and Pooja, no one else had rapelled before so they needed a lot of convincing to lower themselves off the edge of a cliff. Pooja required the most ;) We didn't have time to climb, but I think everyone had a great time. Shivam and Harman came away with a few bruises since they were the first two (after Vikas) to try rapelling down so didn't have a good idea of how it was done. Sorry guys!

We got back to the resort, played in the super-cold swimming pool for about 45 minutes, had lunch, and then got back on the bus to head back. It was a good break.

Now I have to plan a real honeymoon before the wife kicks my butt!

Monday, July 25, 2005

catching up on reading

learning from mistakes:

    For anyone than never discovers a deeper self-identity, based not on lack of mistakes but on courage, compassionate intelligence, commitment and creativity, life is a scary place made safe only by never getting into trouble, never breaking rules and never taking the risks that their hearts tell them they need to take.

I think I often fall into a rut where I get scared to take risks because of the above. It's good to read shite like that every now and then to jarr me out of my apathy.

Thursday, July 21, 2005

The curious incident

There were two chapters I absolutely loved in this book:
On death (chapter 61)
and on life (chapter 199)

(you should be able to read those excerpts online thanks to amazon)

Sunday, July 17, 2005

Random

Posting has been light because I've been
  • sick
  • trying to figure out the intricacies of married life :)

So here's some random stuff:

  1. Since I started working, I never really made a conscious effort to save; I just made sure I didn't splurge. The result was that I was able to put away about 40% of each month's take-home. I've been following the same strategy in India - making sure not to splurge, but definitely not being super-conscious of my spending. The result is that I'm not able to save much money at all. That bothers me.
  2. I have a fair amount of indian classical music on my ipod. I manage to go through my other music collection using the 5-star rating system, along with dynamic playlists. I hadn't found a good way of going through my classical collection though. Using information from this page I've managed to build up 4 playlists (morning, afternoon, evening, night) so I can listen to the 'appropriate' pieces. However, I'm now longing for even finer-grained control of my collection. I wish I had a SQL front-end to the iTunes db.
  3. One of my friends (Vikas) has an awesome cook, who's agreed to come cook at our place once a week. She makes awesome food. She's given me a list of stuff I need to buy though :) belan (rolling pin), some plastic containers, a bunch of specialized steel kitchenware (container for flour, plate for kneading dough, etc). To add to my already-over-equipped kitchen.


Oh and, just so it doesn't get lost in the jumble above, I have to mention separately: you MUST check out prince of ayodhya - a contemporary rewriting of the Indian epic Ramayana. It's the first in a 6-book series, four of which have already been published in India. I suffered the wrath of my wife for burying my head in these books the past few weeks. They're amazing. The story itself is so gripping, and Mr. Banker just makes it even more irresistable by retelling it in a vernacular that's familiar and easy to follow.

I'm at home house-sitting while the cook and maid do their thing. Sindya is out running a program for Dream-a-dream that she's planned, called Monsoon Madness. It's a day long talent-show/competition for underpriviledged kids. They'll be painting, dancing, acting, taking quizzes, and making collages. As soon as the maid gets done, I'll be back there shooting video and hanging out with the kids. Until then, I'm a domesticated husband (damn that sounds scary).

Sunday, July 03, 2005

back from my wedding

To check out pictures from my wedding, subscribe to this feed.

If you took pictures at my wedding and want them as part of this slideshow, upload them to flickr and tag them with 'sindyaandhemant' as well as 'wedding'.

More updates later.
Update: flickr's rss feed seems broken. the atom one works okay (link updated above), however it only shows the last 10 photos. Since I'm uploading a bunch of them, you'll miss out on some photos. You may just want to check out the slideshow instead.

Sunday, June 12, 2005

lightpost

posting will be light for the next few weeks.
In a few hours I fly to Delhi.
Tomorrow morning I fly to Leh, Ladakh for a 5 day trek in the Indian Himalayas.
After that I head back to Delhi and on to Pune for about 10 days during which time I will relinquish my bachelorhood.
I may be online and checking mail from Pune but probably not posting. Will be back to the grind sometime in July.

prediction

I wrote parts of amazon's remote-service-invokation framework a few years ago, after which a few of us worked on collecting detailed metrics from the framework so as to guage the health of the system and try to predict business-impacting problems before they actually, well, impacted business.

I'm currently reading blink by Malcolm Gladwell and it's a facinating book. No time for a full review right now. But here's a quote that caught my eye (he's talking about an algorithm for deciding the seve rity of heart-attack-like symptoms in ER patients, and has just listed several high-heart-attack-risk lifestyle factors):

    ... It certainly seems like he ought to be admitted to the coronary care unit right away. But the algorithm says he shouldn't be.
    <snip>
    What Goldman's algorithm indicates, though, is that the role of those other factors is so small in determining what is happening to the man right now that an accurate diagnosis can be made without them. In fact <snip> that information is more than useless. It's harmful. It confuses the issues. What screws up doctors when they are trying to predict heart attacks is that they take too much information into account.


(The book, by the way, attempts to explain intuition and how it is that we can get such strong (and often correct) intuitions without being able to understand exactly why. It also attempts to analyse the cases in which our intuition is terribly wrong. See also this entry by Trevor for more about intuition.)

This is cool because our hunch over the past few years has been that it will only take a few metrics to actually predict a given failure scenario, but deciding which ones to pick is the hard thing. So the kinds of systems we are trying to build end up being quite similar to what (I just found out) humans are doing. We're constantly taking hundreds or thousands of input variables (subtle changes in a persons face or 'body language', things seen in the periphery of our vision, etc.) and doing some realtime statistical analysis on them. Except our consciousness is never burdened with any of that. Our subconscious builds and refines these elaborate statistical models over time. Then, it can bubble up signals (in the form of intuition) to our conscious mind with very limited information because it has already made models about which variables are important enough to matter.

How does this apply to metrics and monitoring? It's infeasible and foolhardy to track the state of every possible instrumentable variable in your system in realtime and use that to drive failure detection and root cause analysis. But
  1. you may be able to design a system that can collect lots of metrics and analyse them in an 'offline' manner without impacting your system.
  2. the output of (1), a list of 'important' metrics, is fed into an alarming/monitoring system
  3. whenever an alarm is diagnosed (or confirmed) the result of that is fed back into (1) to correct or reinforce the prediction.


If failure detection is like the pit in your stomach or lump in your throat, and root cause analysis is like the logical reasoning that we sometimes go through when making decisions, then maybe we have to accept that failure detection is a much faster process than root cause analysis. Our group has always looked at those as two different processes, but never acknowledged that they may require different amounts of information.

On one level, that looks hopeless; "what good is it to know that something is wrong if you don't know what it is?" But we do that all the time. A lot of us learn to trust our instincts (don't walk down that alley) even if we can't tell exactly what's wrong (it's well lit, there are people around, but it just feels shady).

How could that help in managing distributed systems? The only example I can think of right now is: if a host 'feels like it's unhealthy' it could just take itself out of a load balancer without knowing what was wrong.

It does tell me is that it may be worth completely separating the process of detection and root-cause analysis. So that the feedback in (3) above is not "the root cause of this disturbance was xyz", nor is the list of 'important' metrics in (2) a list for each possibel root cause. (i.e. you don't output something that says that metrics A and B are important for predicting a disk crash, but metrics D and F predict a web server failure and metrics C and E predict that your application is deadlocked). That's how antivirus software is modeled. It builds up fingerprints of different viruses and tries to match the fingerprint. It does both detection and root-cause-analysis in a single step. (OK, maybe modern antivirus software does more than that, but stick with me for a moment).

Instead, maybe the right but counterintuitive (no pun intended) thing to do here is to only store whether or not "Bad" things happened, and store the set of metrics which are good predictors of "Bad"ness. You'd probably need more than a binary notion of Badness. This doesn't get us closer to solving problems, but maybe it can help reduce downtime in the first place, because we've got a very good early-warning system.

It'll be interesting to see if any more insights come out of watching a large system running (the group I've been working with in Bangalore is getting closer to releasing an internal, scaled-down version of what will eventually be a large self-healing distributed system). Since I've been in development mode for the past few months (vs. supporting a live system), I feel a little unqualified to rant too much about this stuff. :)

Saturday, June 11, 2005

d.s.

Someone left comments (twice!) asking me to follow up on my earlier idea of starting a distributed systems blog. Thanks! But I realized that, although I do a lot of work in the area, I don't know enough to do justice to a blog - I still have many miles to walk.

So every time I run across something interesting, I'll be sure to post on it. But until then, I'll be sticking to reading and learning and growing.

Friday, June 10, 2005

FC reading.

catching up again on some FC reading.
About Despair, Inc.
    The point is that most people should work to make money. They shouldn't expect a company to make them happy. A company can be friendly and good, but it can't really make you happy. At the same time, it shouldn't insult you. It shouldn't say, 'We're a family and have values,' and then act like Enron."
    <snip>
    Jamie Malanowski is the features editor at Playboy. He's happy in his work.

I love the last line about the author of the article! :)

An awesome post about being a bouncer:
    The bouncer ethos, in point of fact, stands in diametric opposition to that of any other position in the service industry. Simply put, if you, as a bouncer, stand there and take crap from the customers, you won't be employed for very long, because everyone on the staff will consider you a pussy, and they won't want you around. Therefore, when people -- as they invariably will -- act like assholes, I'm getting paid to fulfill the one, singular fantasy harbored by everyone who has ever served a drink or waited on a table:

    I can do it back.


On cubicles sucking:
    The solution, Tompkin says, is to customize space to various types of work. Give those who need uninterrupted time a quiet place to work and those who need to collaborate a more social space. That may mean a glass-walled office for heads-down work, and a variety of gathering places for group work. "As the workforce becomes more mobile," Tompkin says, "the office will be the main tool companies use to build a shared culture."

I totally agree. I wish we'd have a healthy mix between offices and cubes. Or even moderately sized rooms with cubes in them, instead of a huge room full of cubes. That way I can only potentially get distracted by 4-6 other people instead of 70.

Sounds like GE Durham has taken a page out of Gore's (makers of GoreTex) book (Reference to gore from Malcom Gladwell's tipping point. Lots of great stuff here:
    GE/Durham has more than 170 employees but just one boss: the plant manager. Everyone in the place reports to her. Which means that on a day-to-day basis, the people who work here have no boss. They essentially run themselves.
    <snip>
    So how can something so complicated, so demanding, so fraught with risk, be trusted to people who answer only to themselves? Trust is a funny thing. It is the mystery -- and the genius -- of what goes on at GE/Durham.
    <snip>
    "The interview, now that was one heck of an experience," he says. "It lasted eight hours. I talked to five different people. I participated in three group activities with other job candidates. I even had to do a presentation: I had 15 minutes to prepare a 5-minute presentation."
    <snip>
    At GE/Durham, candidates are rated in 11 areas. "Only one of those involves technical competence or experience," says Keith McKee, 27, a tech-3 on Team Raven. "You have to be above the bar in all 11 of the areas: helping skills, team skills, communication skills, diversity, flexibility, coaching ability, work ethic, and so forth. Even if just one thing out of the 11 knocks you down, you don't come to work here."


Some of the stuf here reminds me of what we learnt in the storytelling training I attended recently.

Thursday, June 09, 2005

cliched conversations

As a foreigner in the US, I was always struck by the very predictable 'conversations' that people had:
- so how was your labor day?
- what're you doing this weekend?
- how was the weekend?
- got plans for july 4th?
- going anywhere for memorial day?

I put the word conversations in quotes because it seemed a lot of times that people weren't even interested in the answers, they were just asked because of a strange notion of politeness.

I'm sure it's a universal phenomenon and not at all restricted to the US. But I can't come up with similar examples in Bangalore.

Except for one... for the past three weeks, people have constantly been asking me how preparations are going for the wedding and if I'm all set. Worse still, the same person will ask me the same question two days in a row, as if my 'preparations' change on a minute-to-minute basis.

Just like the conversations above, a lot of times it feels like people are just asking me to be polite. Especially given that I've been telling them that my mom is doing all the preparations. (An upside of having the wedding in India is that my parents and family are doing a lot of the preparations).

Actually I'm kind of nervous that I haven't had to do much. You know that dream where you show up in school and everyone's laughing and you look down to realize you forgot to wear your pants? I have that same feeling. Like I'm going to show up in Pune and realize that I forgot to do something really basic. :)

Anyways, I'm leaving for Delhi this Monday, after which I'll spend a week trekking in gorgeous Ladakh. From there I fly straight to Pune to tie the proverbial knot.

Tuesday, June 07, 2005

phishing

Here's an interesting way to beat phishers and their scams:
    If you get phishing e-mail, go the web sites and enter false data. Make up everything -- name, sign-on name, password, credit card numbers, everything. Instead of one million messages yielding 100 good replies, now the phisher will have one million messages yielding 100,000 replies of which 100 are good, but WHICH 100?

    This technique kills phishing two ways. It certainly increases the phishing labor requirement by about 10,000X. But even more importantly, if banks and e-commerce sites limit the number of failed sign-on attempts from a single IP address to, say, 10 per day, theft as an outcome of phishing becomes close to impossible.

we're not that special.

post by Ming talks about some experiments on monkeys by economists.

We're just another species in the evolutionary race that Nature is hosting.

There's nothing special about humans. There's nothing inferior about the other one hundred million species on the planet.

Monday, June 06, 2005

danger: darwin harmful

Darwin got an two honorable mentions here. The damn idiots. Now I'm ashamed at not having read all the books on that list.

Thursday, June 02, 2005

lost moments

I was driving back from work just now, at about 2:30am. I saw this amazing sight on the road. There were 4 people riding bicycles in a rectangular formation in the middle of the road. Across their heads was draped a huge something made of plywood. I couldn't get close enough to see, but it might have been a billboard. I'm guessing the distance between the front and rear cyclists was about 12-15 feet, and the distance between two adjacent cyclists was about 8-10 feet.

Only in India. I wish I'd had a camera with me!

Tuesday, May 31, 2005

hectic weekend

This weekend was nuts.

Sindya signed me up for a 3 day class taught by the Teachers Training Foundation in Bangalore - it's an orientation meant for volunteers that are going to take part in the Reading For Real program next year.

Sindya and I have signed up for a few months next year; we'll be storytelling some books to young children who don't have a strong grasp of english, and encouraging them to read.

The training was awesome (though I bunked Friday because of work). I met a bunch of cool people. We learnt about pre/during/post reading activities aimed at holding the children's interest in the story and making sure they grasped it. We got a demo from an amazing storyteller - she had a room full of adults completely mesmerized by her rendition of a story meant for 6 year olds!


On Saturday night, I signed up to do an all-night bicycle ride. We met up at M.G. Road at 10pm. The organizers piled us into a van and took us to a house south of bangalore, off Kanakpura road, where they had a bunch of cycles. The cycles weren't that great at all - no gears, not the perfect size (too small for me), and a little rickety. They didn't provide helmets either. I was a little disappointed, given that we had paid Rs. 700 for the outing. Anyways, we started with an 8-9 km ride on the highway (it was about 11:45 by the time we started so not too much traffic) after which we took a detour into some small village roads. The roads were super muddy from the heavy rain that we've been having, and generally bumpy because they're inner roads. Needless to say, my backside was in severe pain by the end of the ride. We finished the appx 40km ride at about 5:15am. I had to walk the last 1-2 km of the ride because (a) my butt was sore, (b) the last 9km was uphill, (c) my back tire was pretty flat so it was superhard to ride.

Anyways, I reached home at 7am, took a shower and passed out. At 9:30am I had to pull myself out of bed and spend the entire day (10-5) in the TTF class again.

I ended up getting two movies from vikas - Les triplettes de Belleville (which I'd seen before) and The House of Flying Daggers, which I wanted to see. I finally passed out at 10pm.

It's somehow Tuesday already and I'm down with a terrible cough and cold. I'm guessing it's partly to do with a hectic weekend.

Monday, May 23, 2005

Infrastructure

For the second time in a little over a month, our office flooded. Well, not really our whole office. Let me explain.

It doesn't rain that much in Bangalore. It must've rained about 30-40 minutes today. But it rained pretty darn hard. Actually, it even hailed a little. We were standing inside and just joking about how much it would suck if it started to leak (since the roof leaked about a month ago) when someone was like "oh crap! let's go check the server room!"

So we rush over to the rooms where the various pieces of huge electrical equipment are and, sure enough, one of the balconies has overflowed and water has now gone into the main electrical room (where there are electrical wires running on the ground). Some people rushed to start bailing out the room with buckets but then came to their senses. We started bailing the balcony so that no more water would overflow into the electrical room. We couldn't just shut it off because all the servers would have an unclean shutdown. So the sysadmins started doing a server-room shutdown.

In the meantime, another of the balconies was starting to flood, and threatening to flood the office. In addition, the awnings in that balcony were sagging from the weight of water that had collected on them. So we alternated between pushing water off the awnings (to save it from collapsing from its weight) and bailing water out of the balcony (to prevent the office from flooding). Fun times.

It's stopped raining now but I'm guessing it will rain some more tonight. I decided to leave my car in the basement (although I don't really trust that building too much) and take a taxi home in case the roads were bad. A few fallen trees and fender-benders, but nothing major - at least on my route home. I can't imagine what some of the busier streets (Airport Road, Hosur Road) are like. The power is out at home - my building has generator backup (like many apartment complexes here) so I'm still blogging away.

Last time this happened, we had a holiday the next day (actually it ended up being a half day because the servers were brought back up). Wonder if I get to stay in tomorrow.

Sunday, May 22, 2005

Enterprise Software

This is worth a read. Excerpt:
    “Enterprise Software” is a polite way of saying shitty legacy systems and overly complex requirements.

I'm sure that resonates with many. The article is hilarious.

Publishing

A while ago, Neil Gershenfeld gave a talk at amazon about technologies coming down the pipeline. He talked about being able to download blueprints to a home 'printer' and have it 'print out' a working bicycle.

Why is that revolutionary? Well first, there's the obvious cutting of shipment costs. More importantly, by totally changing the cost structure of goods delivery, it removes a lot of traditional Economies of Scale, thus lowering the barrier-to-entry for a new 'producer' (designer might be a better word) in the market. The producer is now free to experiment and customize since the cost of a 'failed' product is only the time lost in the effort.

Thinking about things like that makes one rethink where exactly a company like amazon fits into the market. Though we're not quite there yet (no instantly downloadable bicycles), lulu.com is a company that allows people to upload books in digital format. You can then sell your book (as a physical book, not a download) on sites like amazon. Pretty darn cool, if you ask me. Now that publishers are removed from the equation, the barrier-to-entry for an author is significantly lowered. The up-front costs to them are minimal, and the cost of selling zero copies of your book is just the time you spent writing the book; not the cost of hundreds of unsold printed-and-bound physical books.

Most people aren't ready to read books in digital format (I know I hate reading long articles on my laptop), which has also limited how Long the Tail is for books (the first limiting factor being the barrier-to-entry for authors described above). Lulu has just lengthened the tail for books by changing their cost-structure. Additionally, by allowing self-published books to be sold on amazon, lulu.com is addressing the issue that customers face as they wade through the Long Tail: "how to sort through the junk and find the Good Stuff?" Through its personalization and recommendation features, Amazon has made a name for itself in helping people find and discover items. Lulu is smart to leverage that.

(tip from tpwire)
update a little more reading revealed that amazon hasa acquired booksurge, a similar company.

Government in business.

India has a socialist legacy. Post independence, we walked the 'middle path' (moderate socialism, or something) for many years. We had privately owned businesses but they were heavily regulated. The government enjoyed monoploy in many core industries.

Today, there are still many examples of government owned businesses; 'state emporiums' (handicrafts, etc. characteristics of each state), aircraft manufacturers, coffee shops... the list is long and varied.

It always surprises visiting Americans to hear of this.

Well I just read that the United States Army makes first-person shooter games. To quote from the article:

    “The technology is what we use for actual training,” says Major Chris Chambers, who directed the E3 presentation for the Army. “We brought it to E3 because it’s also really cool.”
    < snip >
    But Chambers says he is at the expo for the same reason as the other exhibitors: to showcase the game.
    “We intend to be a major player in this industry for a long time,” he says. (emphasis mine)

Now that is messed up.

Tuesday, May 17, 2005

Why gmail?

Maybe this is common knowledge, but it just occurred to me why gmail is such a brilliant idea. Google's pagerank estimates the importance of pages based on links between pages. If I think a page is important, I'll probably link to it. But what if I don't have a website to link from?

When I'm browsing the web, I'm constantly emailing people links that I think they'd find interesting. Sometimes if I'm not feeling lazy, I'll even send some blurb that explains why they should click on the link.

Until recently, Google was completely missing out on this simple and highly reliable way of guaging the importance of pages. Now that google sees my email, they can still apply 'pagerank', but some of the pages in question happen to be emails that people are sending to each other.

Frikkin brilliant. And I thought it was only about the ad revenue.

Monday, May 16, 2005

tagging

I love flickr and delicious - both sites that let you organize 'stuff' (photos, links respectively) using tags (arbitrary space separated words that you can assign to things).

Clay Shirky recently posted an excellent essay entitled Ontology is Overrated in which he talks about a bunch of cool stuff and then goes on to say why tags are so damn useful.

But here's an excerpt from early in the document (where he's talking about categorization) that caught my eye:

    Ontological classification works well in some places, of course. You need a card catalog if you are managing a physical library. You need a hierarchy to manage a file system. So what you want to know, when thinking about how to organize anything, is whether that kind of classification is a good strategy. (emphasis mine).


I'd like to question that asusmption actually... Do you really need a hierarchy to manage a file system? I've spent the last few days going through my OS textbook and doing a bunch of reading/searching about file system design. I think that's an assumption that's ripe to be questioned.

I know that some people have already tried building in 'tag-like' notions into a filesystem. In fact, the defacto filesystem in OSX, HFS+, now (as of Tiger) has support to add arbitrary key/value attributes to files. I haven't downloaded Tiger but, from what I remember from reading reviews, this feature is currently used in only a few places like for ACLs and maybe some Spotlight metadata.

Getting back to the point; why does a file system need heirarchy in order to be manageable? One survey/research paper I read (will post link when I find it again) essentially says "there's too much software out there that assumes that the file sysem is heirarchical so I'm not going to even talk about building something that doesn't have any heirarchy." That may actually be the correct, practical viewpoint to take. But real innovation comes from questioning the 'practical viewpoints' of our day, right?

If a URL is an inode and the title of an html page is a filename, then your filesystem and flickr are not too different. That said, URLs are not as opaque as inodes. If I see a URL with mozilla.org in it, that gives me some clue about the contents even though the exact semantics I associate with it may be varied.

If you know of some work in this area, please enlighten me. In the mean time, I'll be sure to use my not-so-copious amounts of free time to try to read more on the subject.

update: Thanks, Huat, for the pointer. As always, I feel like an idiot for being so clueless about what's out there. :)
update: Interesting; with WinFS, msft is trying to do with the PC, something similar to what the semantic web is trying to do to the internet - give well defined structure and semantics to data. It's hard to get it to work on the web because of how many diverse applications there are, and how loosely structured the data (HTML) fundamentally is. On the PC, though, msft-written software probably makes up a majority of the software you run (not me; I have a mac like any self-respecting yuppie). More importantly, much of the content you create on your PC is created using msft applications. Two questions come up in my mind: (1) how easy is to work with content not created using msft applications; (2) how useful/intuitive is strong typing (vs. tagging) to the end user.
more: I came across this discussion of Longhorn which includes a mini rant at the end about heirarchical file systems.

Sunday, May 15, 2005

run

The Bangalore Marathon took place today and I ran a 7K 'celebration run'. My time was too pathetic to even mention. My aim was to not stop running but I set my sights too low; I'm totally bummed that I didn't push myself harder. I finished the run with a lot of energy left, which means I probably could've run a lot faster.

Anyways, it was a fun morning; we ran with bright yellow Dream a Dream shirts and then went to Koshy's with some friends. Lunch took an hour and a half to get served and wasn't even that good. Note to self: no more Koshy's. After beer and a big meal though, I'm ready to pass out.

Thursday, May 12, 2005

pod-frikkin-casting

A friend of mine has been giving me headaches by constantly talking about podcasting and how cool it is. So last night I finally decided to see what the buzz is about and downloaded a podcast client for the mac.

I tried the free 'Lite' version first. The full version has a 30 day trial, but I haven't tried it yet. The Lite version allows you to specify feeds, and download them to a local folder. For any audio files downloaded, you can automatically drop them into iTunes and delete them from the download folder.

This morning, I have two news feeds (one from KOMO news in Seattle and one from Northwest Public Radio), and a jazz feed (don't have the link with me right now) on my iPod.

It was pretty cool to listen to random news on the way to work (instead of the Hindi-Pop and talk shows that are usually on the radio here). Will post more experiences shortly.

Given that the aforementioned friend still hasn't actually downloaded a podcast client, maybe I can talk his head off about podcasting instead.

Monday, May 09, 2005

how not to get pigeonholed, and other good stuff...

... from fastcompany:

from Escape Your Pigeonhole
    Vargas highlighted the research skills she gained, rather than the law, and landed a market-research job
    <snip >
    "I typically make a commitment to a project for 18 to 24 months and offer upfront to groom one of my staff to replace me," Olding says.
    <snip >
    get pigeonholed as a person who leads new ventures

from Change or Die
    "A relatively small percentage of the population consumes the vast majority of the health-care budget for diseases that are very well known and by and large behavioral."
    <snip >
    Unless you work on it, brain fitness often begins declining at around age 30 for men, a bit later for women. "People mistake being active for continuous learning," Merzenich says. "The machinery is only activated by learning. People think they're leading an interesting life when they haven't learned anything in 20 or 30 years. My suggestion is learn Spanish or the oboe."
    <snip >
    What happens if you don't work at mental rejuvenation? Merzenich says that people who live to 85 have a 50-50 chance of being senile. While the issue for heart patients is "change or die," the issue for everyone is "change or lose your mind." Mastering the ability to change isn't just a crucial strategy for business. It's a necessity for health. And it's possibly the one thing that's most worth learning.

The article talks about how large changes are sometimes so much easier than small, incremental changes. Reminds me of the economic reforms India undertook in the early 90s - it only happened because we were only left with three weeks worth of foreign currency reserves. Since the sweeping changes that took place then, the economic reforms have been a lot slower to come.
Beth over at Creating Passionate Users writes about this article as well.