Thursday, April 19, 2007

The enormousness of some mistakes

The Economist style guide is making the rounds on the Internet. It's a decent read, and I am posting it here to point more people to it.

Also, I wanted to rant about the very frequent misuse of the word "enormity" that I see everywhere. I've seen this on otherwise excellent literary stuff, and it seems to be very widespread. First off, "enormity" is not the same as "large" or "enormous" -- in fact it means something of an enormous mistake, an extreme absurdness. When news sites report about the "physical enormity" of players, and "enormity" of devastation, it reads as an enormity in itself.

"Enormousness" is the word you might be after if you've used enormity wrongly. It is, unfortunately, a larger word, not so easy on the tongue or the ears, and therefore suffers from lack of love.

Tuesday, April 17, 2007

On this and that..

There's a lot going on right now -- Jambool is getting ready for the next major release. So there's little time for anything else for me right now.

That said, I couldn't stay away from "Grindhouse" and the "The Host." Grindhouse is by Tarantino and Rodriguez, and it's everything you'd want from them. Rodriguez delivers it much better than Tarantino though, I think. If zombies and gore and yuck is your thing, this movie delivers. It's a send up on umpteen B-movies from the 70s, and Rodriguez executes on the idea simply brilliantly. For me, it was a laugh riot.

"The Host" is new movie by the director of "Barking dogs never bite." The dogs movie has been one of the best movies from South Korea, and "The Host" is an excellent follow up. It's a film that doesn't try to fit into any genre, and embraces humor and irony where you'd least expect.

Jumping topics... I upgraded to Firefox 2.0 recently on my Mac, and it is ridiculously slower than 1.5. So much so that I've often switched to using Safari or the older install of Firefox.

Friday, March 23, 2007

Indians (not) at the world cup...

Just when we were thinking this Indian side has the best shot at the cup, they go out and prove a point or two -- other teams are just better than them.

Wednesday, March 21, 2007

Closures in Javascript

I've grown up on C, and then a bit more on C++. I used to write a lot of networking and systems code, and then application level code to build backend distributed systems for an online retailer. Having dabbled a little bit in Java, and even less in Lisp, I've adopted Ruby as the language I mostly code in these days. But all these languages were a charm to get used to and develop in when I compare them with Javascript.

Why? Several reasons, but primarily because so much of the Javascript is about the browser, and while how you do something depends entirely on which broiwser your code is going to run on, there is hardly any good development and testing environment. To top that, I've not had the pleasure of reading a really good reference-like book for Javascript. If you know one, do tell me about it.

With the lack of books, one tends to rely on Google search to throw up some useful results. But some things are what you have to go through to pick up anyway. That brings me to closures. Though people have written about closures, they tend to only cover one aspect of lexical binding, and I wanted to add to this pool of collective online intelligence.

Closures let you define functions on the fly that are bound to the local lexical scope. Using these closures you can execute code that will use and affect variable references as available in the lexical scope of where the function is defined. Here's an example:


function f1() {

var letter = "A";
return function() { alert(letter); }

}

function f2() {
var letter = "B";
var f = f1();
f();
}

f2();


Run it here
.

The function f1 above returns a closure. The function returned is bound to the lexical scope of function f1. Once f1 is done, one would think that the all local variables etc are removed, and calling the function that is returned back by f1 should really use "B" as the value of the letter. Or maybe you would expect it to raise an error, because the scope of function f2 doesn't exist anymore. But if you run it, you'll still find that the function f returned by f1() call alerts with "A."

Once you see this, it is somewhat obvious what is happening. Except one thing, and we'll come to that shortly. What seems to be happening is that when the function in f2 is created (or rather the closure), it keeps track of its lexical scope. So all the references available in its scope are available to it. The reference that is returned is a reference to a set of code and its scope as was available then. That scope is what is used to execute the code in the closure.

What seems to be slightly less obvious is that the closure captures the references and not the values of these references in its scope. I.e., the closure does not copy all the values of the variables in its scope and keep them around for later. It keeps track of the references in its scope. If their values change by the time the closure is called, then the result would be different. Here is an update to the above example.


var letter = "A";
function f1() {
return function(callfrom) { alert( callfrom + " " + letter); }
}

function f2() {
var letter = "B";
var f = f1( );
f("call from f2");
}

function f3() {
letter = "C";
var f = f1( );
f( "call from f3" );
}

f2();
f3();



If you run the code above (here), you'll find that the call from f2 uses the value "A" for letter and the call from f3 uses the value "C."

The reason is again obvious once you see it, but it is easy to trip over this when using closures bound to variables in a loop. In the code above, f2 creates a new variable letter in its scope. This variable is not available in the lexical scope of the closure returned by f1. f1 uses the earlier defined letter. However, f3 does not define a new variable -- it updates the variable in global scope, the same variable that is also used by f1. The call from f3 to the closure evaluates the variable (the reference) 'letter' and it evaluates to "C" and not "A."

An important ramification of this is that when you are creating closures as callbacks inside a loop, and binding them to the variables that change with every iteration of the loop, you have to be extra careful. Unless you want to use these variables' values as they exist after the loop is done (or whenever the callback is called -- which might make it unpredictable), you have to create unique lexical references for each of these variables. A simple way to do this is to write a method that returns back the actual closure bound to its local variables. Every time this function is called, it generates a new scope for the closure. An example:




function myFunctor( x) {
return function() { alert( x); }
}

function testGoodFunctor() {

var functors = new Array;
for( var i = 0; i < 3; ++i ) {
functors.push( myFunctor(i) );
}
for( var j = 0; j < functors.length; ++j ) {
functors[j]();
}
}

function testBadFunctor() {

var functors = new Array;
for( var i = 0; i > 3; ++i ) {
functors.push( function() { alert(i); } );
}
for( var j = 0; j < functors.length; ++j ) {
functors[j]();
}
}

testGoodFunctor();
testBadFunctor();


If you run the code above (here), you will see three alerts with values 0, 1 and 2, followed by three alerts with value 3.

The reason, as you would have gathered by now, is that in the testGoodFunctor, each closure gets a unique reference for the alert call. However, the testBadFunctor provides the same reference "i" to the closure. When the closure is actually called, the value of i is the value it is supposed to have at the end of the loop.

There now, that's closures for you. And yes, there is one more thing to remember. Be careful not to use "this" to point to the object inside the closure (unless you know exactly what you are doing). "this" is not a locally defined reference, and when you closure is invoked, "this" may point to something completely different. If you want to invoke your methods on a specific object, it is better to create methods that are bound to the specific object. For example, like this:



function getObjectBoundMethod( obj, f ) {
return function() { return f.apply(obj,arguments); };
}

function f() {
this.g = function(x) { alert( "x = " + x ); };
var closure = getObjectBoundMethod( this, this.g );
return closure;
}

var to_call = f();
to_call(5);



Here, run it.

Update: Fixed the links to the running javascript samples.

Thursday, March 15, 2007

WC07 - Best Indian World Cup side ever?

1983 world cup happened when I was still too young to build a lot of memories. But I recall the years immediately after that, and the build up to the 1987 world cup. We all expected an India-Pakistan final. It was a team that had notched up some away one-day series wins, and looked good in general.

From then to now, India's fortunes have been mixed. India's never lacked some great cricketers in its team, who have bolstered India's chances and kept interest alive. But as a team they tend to falter more than they succeed. When we win a tournament, it is always somewhat of a surprise -- pleasant one, though. Until the recent spate of 17 wins in a row, Indian batting always felt brittle -- it would collapse under the mildest of pressures. The 2003 World Cup final was the ultimate let down.

However, there are reasons to hope for more from the current Indian team. The biggest reason I see for this is that there are a few players who fought hard to come back into the team and the team largely is made up of people with solid recent form -- except Sehwag, who seems to be the captain's gamble. Zaheer Khan and Ganguly would know the value of form and performing -- both having spent time outside the team and worked it back in. Tendulkar and Dravid remain the pole around which the Indian tent is pitched. And then there are Dhoni and Yuvraj. Indians have a decent bowling line up -- and I hope Irfan Pathan fires up.

Looking at the lineup, this may be the best side India have sent to the world cup. That said, wouldn't you agree that India is probably also the likeliest of the big teams to be upset by one of the minnows?

Tuesday, March 13, 2007

Cricket World Cup

Cricket world cup used to be an all-encompassing month some years back. Even now, I am pretty excited about some high quality cricket -- though I'll have to rely on youtube and the likes to catch the highlights.

As many have said, this is probably one of the most open world cups. Several teams have been gearing up for the contest well -- building up form and momentum for the event. I expect Australia, South Africa, India, Sri Lanka in the semi finals -- though New Zealand, West Indies and Pakistan can easily replace any of them. England, despite their recent wins, seems to lack the ability to make it to the last four. But then, who knows.

This is probably the last world cup for many greats of the game -- Tendulkar, Lara, Dravid, Ganguly, Gilchrist, Ponting, McGrath, Jayasuria, Shaun Pollock. It's a joy to have most of them in good form all at the same time for the world cup.

Thursday, March 08, 2007

Afternoons in Napa

San Francisco is a by any standards probably one of the best places to live. The restaurant scene alone in the city can spoil you to the extent you won't want to live anywhere else. And then there's Napa.

We've been to Napa a few times recently, not entirely by plan. We tried a few wineries -- not all of them by plan. The one winery we did plan for worked out very well -- the Caymus vineyards. If you are ever in Napa, plan for a visit to their tastings -- it's by appointment only, and their Cabernets are wonderful.

The other winery I've come to like a lot is the St. Clement. It is perched up on a small hill south of Calistoga, and the experience of sampling their excellent Cabernets and cheeses in their small garden overlooking the valley rejuvenates you more than a week in a spa.

World's Fastest Indian

A couple of quotes kind of stood out from this Anthony Hopkins movie. Inspiring, motivational quotes, if someone cares for them.

If you don't follow your dreams, you might as well be a vegetable.

Another one, on the similar lines.

If you don't go when you want to go, when you go, you'll find you've gone.
Lastly, something from Theodore Roosevelt. I am copying the entire original quote:

"It is not the critic who counts: not the man who points out how the strong man stumbles or where the doer of deeds could have done better. The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood, who strives valiantly, who errs and comes up short again and again, because there is no effort without error or shortcoming, but who knows the great enthusiasms, the great devotions, who spends himself for a worthy cause; who, at the best, knows, in the end, the triumph of high achievement, and who, at the worst, if he fails, at least he fails while daring greatly, so that his place shall never be with those cold and timid souls who knew neither victory nor defeat."

Needless to say, everyone needs a motivational speech every once in a while. Something to keep the energy level high when chips pile up on the other side of the table. That said, I have always been on the cynical side of these motivational words -- I used to flaunt a poster from Despair, Inc in my office for a while. Maybe there's a middle ground somewhere. :)

Tuesday, March 06, 2007

The Lives of Others

I happened to see this wonderful film a few days back. It is a gem of a movie, fully deserving of an Oscar ahead of Volver, Pan's Labyrinth and Water.

People make a loot of hoopla over Water in India, and I found the movie quite ordinary. Deepa Mehta deserves accolades for her courage and conviction, but I've never felt her movies are great cinema.

Back to the German movie I started about -- it's worth seeing for many reasons. There was one thought that struck me that I kept thinking about afterwards. While the movie was about the 1984-ish East Germany, in some ways it was about a simple scientific principle as well. In any experiment one cannot expect to be a spectator alone and not impact the actual experiment -- by observing we become a part of the experiment, and that changes the outcome.

I highly recommend the movie. On another, though somewhat similar, note, I finally managed to watch the Hindi adaptation of "12 angry men." The Hindi movie is called "Ek Ruka Hua Faisla" and it's now available in Indian movie stores here in the US. The movie attempts to make a point -- expressly menioned at one stage -- that as a jury we need to keep aside our emotions and prejudices and judge objectively. That, my friends, is hard.

Saturday, February 17, 2007

Configuring Postfix to forward emails for multiple domains to local mailbox

A friend was recently looking to configure postfix, so that he could send emails from his laptop to several domains and have all of them show up in his local mailbox. I'm posting the simple configuration for postfix that helps make this happen.

  1. Check your postfix configuration. If you don't already have postfix, you can get it here. The instructions below all assume you have a Unix OS and shell. I did the below on a Mac OS X as well as a Sun OS host. I am sure it almost identical on most Unix environments.
    • Check that you have the postfix executable installed. (Usually in /usr/sbin/postfix)
    • Check that the configuration directory and files exist. (/etc/postfix/main.cf)
    • Ensure you have the access to edit the configuration files and create files in the postfix configuration directory. You will also need to restart postfix.
2. Edit the /etc/postfix/main.cf file. Add these lines at the end: (double check to make sure your spellings are correct. :)

# Testing virtual host domains
virtual_alias_domains = testdomain1.com testdomain2.com
virtual_alias_maps = hash:/etc/postfix/virtual


3. Edit /etc/postfix/virtual, and and these lines: (Replace recipient by any Unix user account you want to receive emails on your machine).

@testdomain1.com recipient
@testdomain2.com recipient


4. In the directory /etc/postfix, run the following command. This creates the hash database file needed by postfix for virtual alias table.

$> postmap hash:virtual


5. This above command would have created the file virtual.db in this directory. Verify.

6. Restart postfix. In case postfix is not running, you use "postfix start" to get it going.



$> sudo postfix reload
postfix/postfix-script: refreshing the Postfix mail system
$>


7. Test: (the user running the second command is the user whose account emails are being forwarded to, as per the settings in step 2 above).



$> mail -s "test mail" anyuser@testdomain1.com < /dev/null
Null message body; hope that's ok
$> mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/vikasgupta": 1 message 1 unread
>U 1 vikasgupta@localhost Thu Feb 15 11:33 16/505 "test mail"
$>


Postfix comes with plenty of documentation on how to configure and use it. For more details on the above configuration, look at the VIRTUAL_README in the postfix distribution. The utility postconf is useful to review the configuration once you've reloaded it into postfix.

Saturday, February 10, 2007

Whither India?

Debate's raging, it seems, on India's contention for the "next superpower." There's a CNN article that naysays it pretty loudly. Of course, if you are in India you can hardly escape the constant bombardment of the opposite.

India's contending for a permanent seat in the Security Council. India's sustained a growth rate of 8% year over year for four straight years. If you believe the economists in India, the country can sustain this growth forever more. Last Economist issue stressed the need for investment in infrastructure for India to be able to sustain this growth.

I spent a significant part of the last two years in India. I was based in Bangalore. I travelled through Mumbai, Chennai, Delhi, Pune. Being in Bangalore, it is impossible to get away from the constant buzz. Salaries jump at a phenomenal rate every year -- for the software/IT industry at least. We were desperately seeking engineers, and so was everyone else. In the end, it was hard to find talented engineers with significant experience, and still harder to hire them and nearly impossible to keep them happy.

Of course, it is tough to stay happy in a place like Bangalore. There are parts of Bangalore you may visit that remind you why this ruckus started in the first place -- the campus of IISc comes to mind. I recall one funny incident that highlighted what a mess this place has become.

I had landed at the Bangalore airport, and was taking the office taxi home. In order to get to my house, the taxi had to go through the central business district. No to say, the airport road itself -- that probably packs more vehicles per square inch than anywhere else in the world.

When I told the driver where I needed to go, he simply said, "No sir. We won't go there." Huh? I told him, gently, that I need to go there and he has to take me there. "No sir. We'll go somewhere else. Too much traffic, sir. Where do you want to go sir?"

Well, he finally came around, and we inched along.

The moral of the story is -- infrastructure in Bangalore, and many other places in India -- needs serious investment. It is improving, but not it's not keeping pace with the growth. In places like Bangalore, it is crumbling.

Superpower? Whatever. The term itself seems to be a leftover from the 80s.

Rails

I posted a couple of handy techniques for Rails here.

Anthony Lane is raving about the German movie "Lives of Others." It's yet to make it out to SFO, though. Economist recently carried an article about the resurgence of German cinema, and it makes references to Lives of Others as well.

Saturday, January 20, 2007

It's not the years...

During our trip to New Zealand, we had rented a car to tour the South Island. Everything was great, except that the car was quite below expectations. For starters, it had 160K miles on it. So, naturally when returning the car, we had some complaints. The guy argued that it's just two years old.

"It's not the years, it's the mileage!" said I. Of course, it didn't matter much to him, but I had the smug satisfaction of mouthing a neat quote from Indiana Jones.

New Zealand trip was great. We did the luge in Rotorua, bungee in Queenstown and sea kayaking in Milford Sound. It was rainier than expected, but didn't really make much of a difference in the end. Queenstown must be one of the prettiest towns in the world. Now I have to make it back there for snowboarding in their winters.

Tuesday, January 16, 2007

Bungee jump video...

I edited away the first non-jump :). This was really scary for me. I am sure it is easier the second time around -- though why I would want to do it the second time around is something I don't have an answer for.

This is off of the Kawarau river bridge near Queenstown in New Zealand. Apparently this is the first place in the world where bungee happened.

Enjoy!

Saturday, December 23, 2006

We the people...

These are words that many Indians will be familiar with. For those who are now, this are the first three words of the Indian Constitution (as it is of the US Constitution). This also happens to be the tagline of one of the decent movies with Shahrukh Khan -- "Swades."

But really that's hardly what I wanted to bore you with. If you ever doubt you are an Indian, there are some things that will give you a clue.

* Almost all Indians despise broccoli -- the (abominable) vegetable.
* Every other Indian knows who P.G. Wodehouse is, and if you know who Psmith is, you are almost definitely from India.
* All Indians have read Tintin, and many of them have even read Asterix. If you think you would have a good chance at "Who wants to be a millionaire" if the questions were all about Tintin -- I assure you, you must check your ancestory because you will find Indian blood there somewhere.
* If you have heard about Malgudi and you remember the fabulous Shankar Nag television serial on the book, you are decidedly an Indian, how much ever you may be ignoring it.

New Yorker recently had an article on R.K. Narayanan. I loved the article, because it was a pleasure to see an American magazine write about him. In India, I remember reading about him every once in a while in the Times of India.

My first experience with Malgudi was through the ever reliable Doordarshan in India -- the only television channel in the 80s. The other times were through occasional stories we had to read ("The Astrologer's Day" comes to mind) as a part of our school work. However as my interest in reading grew out of Alistair Macleans and Clive Cusslers, at some point I discovered R. K. Narayanan. His "Swami and Friends" remains one of my personal favorites ot this day. RKN had the singular ability to present several constrasting perspectives at the same time -- so much so that every thing he wrote felt real. Swami's experiences, somehow, never felt like fiction. His fears, his thoughts were incredibly genuine. Swamy to me in many ways was a more familiar answer to the other loveable character from literatur -- Tom Sawyer.

If you are ever looking for a literature from India written in English, I highly recommend you find yourself Swami and Friends by R.K. Narayanan. I also highly recommend the TV series Malgudi Days, but the DVD has only a small number of episodes. The episodes on Swamy's adventures are a lot more enjoyable, though.

Wednesday, December 20, 2006

End of the year...

The year's ending with a blast! This Saturday I am off to New Zealand for two weeks, wife in tow. It's summer there -- which means no snowboarding, unfortunately. Nevertheless there are plans for surfing, scuba diving, rafting, "zorbing", kayaking, hiking and lots more! Needless to say I am hyper excited. :)

In case you are looking for a refresher course for Scuba diving in the bay area, I recommend the Wallins in San Carlos.

Rounding up some movies I saw recently... Volver is great, but it isn't the level of Almodovar's earlier movies. After so many people recommended The Departed, I finally saw it. Despite my low expectations, I didn't enjoy it that much. The cast does a splendid job though. Mark Wahlberg was a surprise. Dicaprio was good. Vera Farmiga reminded me too much of Sophie Marceau. The only thing that's different in the movie from the Hong Kong original is the ending, and I preferred the way the original ended. Casino Royale makes a good Bond movie. I like the humor, the mood and the lack of gizmos -- Bond becomes more Bond.

Among a little older movies, Syriana was very good. Eddie Izzard's Unrepeatable was good but it's from a time before he's mastered his art. I've found some of his early stuff online that's pretty good too. I'll post some of it here sometime.

Jambool continues to be my primary pre-occupation. The current version of the site -- however limited the interface -- continues to be stable and up. A new version's in the pipeline, but a couple months out.

Meanwhile, best wishes for Christmas and New Years to everyone.

Tuesday, December 19, 2006

Cricket: Sreesanth Swinging His Bat..... Dhoom Machale?!

I was in splits watching this video. And they say cricket is a gentleman's game. It's about to change -- Sreesanth is here to make sure of that!

Tuesday, December 12, 2006

Count your bullets

There are two kinds of guns in movies. The first kind have a finite number of bullets. Usually six. Sometimes more, but still finite. The second kind of guns have infinite bullets. They go on forever. Superguns, let's call them.

In India, everyone born after 1975 knows that revolvers have 6 bullets. This fact comes up in one of the most famous Hindi film dialogues ever. But then the 80s came. This was a time when directors had to choose one of the two: hero carries infinite guns, or hero's gun carries infinite bullets. Most chose the second. Some chose the first. Some chose both. So, every once in a while you will find yourself watching a Mithun Chakravorty or Jeetendra go about spewing bullets into the scenery faster than you munch on the popcorn. So much so that the Indian cinema ran out of bullets and there were practically no bullets in movies in all of the 90s. All the mushy lovers who had gone into hiding came out in this time of peace.

Occasionally, though, some movie would come out where they remind you that bullets and guns obey the simple laws of physics: specifically, a bullet takes volume and a gun has finite amounts of it. Russian roulette is usually a good way to bring this fact up. Like they did in Dhoom 2, the recent mindless junk -- the scene Ranjit refered to in the comments to the previous post.

Usually, the fact that there are limited bullets makes for some interesting climaxes. Do you remember Neo battling it out with Mr. Smith at the Subway station? They go flying at each other, bullets zooming past, till they are on the ground guns at each other's heads. "You're empty." "So are you." Finite space even when their minds, supposedly, control the world around them.

Die Hard is another case in point. This movie remains to day the best action movie ever. Nothing beats it. The hero runs out of just about everything and still comes out tops. The climax involves a gun with just one bullet for the bad guy, one bad guy and some tape.

Talking about guns that need refills, when I think of Pierce Brosnan in Bond movies, somehow I only remember him refilling guns, hardly ever shooting. The other Bonds seem to do the shooting, and he was left to refill the magazines.

One has to admit, working with the laws of Physics makes more interesting movies. What's the fun in watching a hero with superguns just mow everyone in their wake. Unless. Unless the hero you're watching happens to the whacky Steve Zissou, played by the always wonderful Bill Murray, in a movie that almost seems to match the whackiness of Michael Gondry's.

Do you know more scenes with superguns that are worth watching? Or the other way round -- guns that run out of bullets? Do tell.

Saturday, December 02, 2006

Dhoom 2: A Review

I love motorcycles. That's why I went and watched this movie. That is the real reason and please do not ask me this question again.

Instead of a dull analysis of the movie, how about I walk you through the movie? Really -- scene by important scene, every dialogue (I remember all 5 of them). Ok, here goes.

Desert. Train. Queen. Wait. go back -- queen?? She looks like Hrithik Roshan's mother. Ah. Yes of course. Ok. Cut to long shot from sky. Sky diver. In funky clothes. Parachute. Robbery. Ridiculous stunts on moving train. Clap, clap. Song number 1, Hrithik's biceps dancing about. Women, close your mouths, please.

Lake. A run-down steamer. Looks like India. Loudmouth cop. Lands in trouble. Super cop shows up from under water. On a water scooter. Really. I-saw-it-with-my-own-eyes-so-believe-it-will-you? Scooter-diving-cop saves loudmouth cop. Audience regrets. They blow up some people. Audience shuts up.

Hot chick. Tight clothes. View: Neck down, waist up. From left. From right. Fires guns. Likes to makes holes in things. The best thing for a guy who ends up dying from her gun? Very precisely spaced holes on his torso. She walks. Hips swinging. Men drool -- on screen. "Inspector Bipasha, reporting, sir," she says. The older guy wipes off drool, stutters "Uh yeah, go sit in the room, put some handcuffs on, I need to visit the bathroom." She complies.

Everyone gets it on. Senior cop has pregnant wife. Seem to have junior cop for house clown. Senior cop gets it on with lady cop. Junior cop tries to. They use some mysterious robber for an excuse to get in a room and talk suggestively. Robbery happens. Another robbery happens. Lady cop resigns. "What no,Bipasha..?? what wil we look at" -- cry the audience. Enter Ms Rai. First scene, she's covered from head to toe. Don't worry -- not her eyes though. So she can walk, jump -- and most importantly, bat those pretty eyelids. Next scene, she takes the clothes off. Drool. Everywhere. Intermission. Theater needs to be cleaned.

Thank you for coming back. Theater's clean now. The movie? Eveyrone's partying in Rio. Carnival? Don't htey have the months wrong? Tsk, tsk. Can we just watch Bipasha in that bikini again? Hrithik's showing off. What's that? Someone's abs. Someone speaks. Oh, look, there's a face above the abs.

Eveyrone's partying. Looks like Abhishek's not invited. Sulks. Frowns. He's the only one clothed. He gets more facial hair. No saloons in Rio, I imagine. Only bikini wax shops.

Oh, the story. There's a robbery. A chase. You see a motorcyle. A helicopter that turns into two-bollywood-heroes-on-motorcycles. Cool invention, that. More sillyness ensues. Your head hurts from working so hard to make sense. Your eyes hurt -- from all the bulging muscles on the screen. You wish for some comic relief. How about Javed Jaffery bursting on to the screen with "Iggzaktly!" That would have been perfect.

Sigh.

Sunday, November 12, 2006

Some random stuff I've been watching...

Arish recently recommended House M.D. TV series. Netflix makes it easy to live a few years behind the world and catchup in a week -- so I am catching up to many seasons of this series. I am still on the fist season, and I've come to like it quite a bit. I think the reason Arish recommended it was that it has Hugh Laurie -- who made Wodehouse' Wooster come to life on screen. I like it -- to the extent that watching it sometimes made me want to become a doctor. It makes medicine seem more like puzzle solving than anything else.

I, of course, went to see Borat. When I saw the preview of the movie, it looked hilarious, but I was skeptical -- these things work well in half an hour sketches at more, but rarely have the lasting power to make a movie. Borat tries, but it's riding on marketing and hype. You have to hand it to Sacha Cohen though -- it's a performance worth applauding. The movie itself is ok -- he picks on the people worth picking on, and in many ways picks on the audience itself. But I still found it a tad boring -- thought it does have some very funny parts.

I've been meaning to watch The Departed. It's always a lot of fun to watch Jack Nicholson chew everyone else in bad boy roles like this one. But I haven't. Infernal Affairs was a damn good movie, and remakes, however well made, don't pack the same punch. Maybe, one of these days, I'll get around to it. Meanwhile, I do recommend Infernal Affairs -- the Hong Kong original that inspired it.

If you haven't seen the Gods must be crazy, you must. Both parts, I and II. Hilarious stuff.

Journey of Man is an interesting documentary. It traces genetic mutations to track human history all the way to 50,000 years ago when Man started to branch out of Africa and human race spread all over the world. Just for the science and the story alone, it's worth watching. But it does seem overstretched and seems to have missing pieces. It is also a promo vehicle for the presenter/scientist. Despite the flaws, it is a good story.

Tony Jaa might grow up to be the next Jackie Chan?

I've had a hard time finding something from Eddie Izzard as good as Dressed to Kill. But he was working solid magic in Definite Article -- something I saw recently. I am waiting for "Unrepeatable" to show up in the Netflix envelope one of these days...

In case you do not know, Almodovar's latest -- Volver -- should be out soon.

And so will be the new Bond flick, and the new Spiderman flick.