Friday, February 23, 2007

Salamander legs, mouse ears and pig powder.

Almost a decade ago, Ellen Heber-Katz observed something strange while performing experiments on a strain of mice known as MRL. She was studying autoimmune diseases and her team had punched holes into the subject’s ears for identification. Three weeks later, the holes were gone. Further studies revealed that these mice could also heal damage to their hearts. The secret lay in its ability to form something called a blastema. Regular mice, and humans, would just form a scar instead. A blastema is a mass of undifferentiated cells. It is what enables lower vertebrates, salamanders for example, to regrow lost limbs.

While we are still a long way off from regrowing whole limbs in people, a company called ACell Inc. founded by a former Harvard surgeon Dr. Alan Spievack, has developed an extract of pig bladder for promoting tissue regeneration. The pig powder is currently used to promote healing in certain medical procedures and it is considered to be capable of regrowing a severed fingertip.

PS: And Electricity...
While the effects of electricity on development have been known for over a century, it is only now that scientists are beginning to understand the mechanisms involved at the cellular level. A recent study has revealed the electrical mechanism which allows tadpoles to regrow a severed tail. Researchers believe that gene therapy could one day enable humans to heal injuries by exploiting the same mechanism.

Wednesday, February 21, 2007


I sometimes find the ads on TV more entertaining than the actual programs. This is especially true on days when I’m not the ‘Lord of the Remote’ in the house. In a way, it’s interesting to dissect a spot and see what it is actually trying to say, to whom and how.

Indian ads, like Indian cinema and television, rely on dialog, punch lines and personal charisma to reach out to the viewer. So it’s not hard to imagine what would happen when Hindi ads are dubbed into Malayalam and other south Indian languages. Taken out of their original cultural context, the dialogues seem artificial and punch lines don’t make any sense. The south Indian viewer may not give a damn about your hot new Bollywood star. Add to this fake accents and translations with little regard for style or usage.

A recent spot translated “Tax Bachao” to “Tax Rakshikku” in Malayalam. That’s not bad translation. It’s criminal negligence! I can’t imagine how anybody with even a basic knowledge of Malayalam vocabulary can make such a blunder. Off the shelf translation software would have done a better job.

Whether the ad agencies and advertisers realize it or not, poorly dubbed ads manage to say only one thing, “We don’t care about you”. And viewers hear it loud and clear.

Wednesday, February 07, 2007

A transparent wrapper for my code jam sandwich.

Every year Google conducts a programming competition called Google CodeJam. Last year I registered for it. The competition was hosted by a site called TopCoder. Since then, TopCoder keeps sending me a mail once in a while announcing a new competition. So recently I visited their site to get myself unsubscribed from their mailing list. That’s when I stumbled upon a really neat article titled “Five Things You Didn't Know About C++”. It’s actually a list on ten, not five, interesting facts about C/C++. ‘Macro recursion’ as they called it was one of them, although it’s actually more to do with the C preprocessor than the language itself.

Any C programmer worth his salt knows that it is not possible to recursively call a macro. But have you ever wondered what would happen if did? What would happen if you use the name of a macro in the definition of that macro? No, it will not give you a preprocessor error. It will just be left as it is. The preprocessor will do only one round of expansion. You might then go on to get a compiler error because of an undefined symbol in the code. But what if it is not an undefined symbol? What if the macro has the same name as a valid function? Yes, it will compile successfully and the function will be called when the code is run.

This opens up an interesting possibility. You could use this technique to create a ‘transparent wrapper’. Suppose you are hitting a panic in your code. You suspect that you're inadvertently passing a zero as size to a malloc somewhere and causing a buffer overflow when you attempt to write to it. An easy way to catch this bug would be to #define malloc(x) (assert(x > 0); malloc(x);). The assert() will report the file and line number of your bug. So much for a bug’s life.

Thursday, February 01, 2007

Extra mileage – Stretching the truth.

I don’t have a car. Don’t plan on buying one for as long as I’m in Bangalore. So I wouldn’t know much about what kind of petrol people out here buy. But going by the number of ads on TV, surely someone must be buying all that premium petrol thinking that it’s going to improve mileage. Not that the average Indian motorist gives a damn about energy conservation. The decision to use extra mileage petrol must be driven by monetary considerations. The logic being that the savings from extra mileage should more than compensate for the premium price. Unfortunately for us ordinary folks, things of a scientific nature are seldom so straight forward. The expert opinion on the topic is that unless your engine is designed to benefit from premium petrol, you won’t gain much in either mileage or speed, mileage and speed being the main reasons for using premium petrol. So if you do own a car, think twice before paying a premium for premium petrol.