A Gastronomic Mumbai Journey

Posted by shyam in Food on January 8, 2012

I was in Mumbai from Jan 1st till the 5th this year, right after a crazy New Year’s eve at ISB. The fact that I barely made it to Mumbai is a story in itself, but this is not about it. This time in Mumbai, I decided to track every single meal I ate out (and some at home), and I realized what an awesome epicurean journey I embarked on.

What followed was four days of varied, awesome and delightful (if somewhat filling) meals, which I have faithfully catalogued. And so I wanted to share some of the awesomeness, and the places where you could find the same if you were ever in Mumbai. Each and every place comes highly recommended!

Koolar & Co.

Known to many people just as “That Irani Cafe at the corner of King’s Circle, Matunga”, Koolar is an artifact of times gone by. A quaint little corner cafe at King’s Circle, it is an Irani Cafe to beat all Irani Cafe’s. The decor is early 20th century, with newspaper clippings of the titanic and what not gracing its walls. A few small tables and even more uncomfortable chairs grace the place, with nary a place to squeeze by to get to those last few spots… But despite all this, it has a cozy feel to it.

spacer

A misty day outside Koolar

spacer

Koolar, from the outside

The place is famous in its own right, both due to heritage and its food. Its been featured in a bunch of movies and ads, from Vaastav to Coke Ads with Gambhir.

The menu itself has not changed in over a dozen years (and most likely more from what I have heard from regulars). Their omelettes are to die for. Two egg omelette, with onions and chillies,nicely fried over a grill and served well done on a plate. This greasy delight is heavenly, especially after for hangovers spacer . And you can wash it all down with some brilliant chai and burun maska. And if you are feeling truly adventurous (or ravenous), I dare you to try and finish their wrestler omelette (5 eggs!!!). Lip smacking food, especially early in the day as a pick me up.

spacer    

A nice, super yummy Masala Omelette

spacer       spacer

The specialty, Burun Maska! With oodles of butter

 

Irani Chai!! 

Of course, a word of warning to people. The place is cozy, but only until you spend less than 10 minutes in the place. After that, the place is R-Rated… The odds then drastically increase that you will encounter (or atleast hear from) the Parsi owner of the place. Now, if you are imagining a nice old parsi uncle who will have a word of advice or a kind ear, think again. You will encounter one of the most foul-mouthed, ever-grumpy and loud parsi owner I have ever seen or met. Your meal will not be finished before he chews out the waiter or calls out the cook, either for verbal or literal bashing. Only the Kaka, the stalwart, old-timer waiter is exempt from his wrath (You’ll immediately know who Kaka is, you can’t miss him).

That said, if you don’t mind an occasional loud curse (or a series of them) along with your food, or if you consider that entertainment, then Koolar is a must-try for anyone visiting Matunga or its whereabouts!

Copper Chimney

Ah Copper Chimney. How I love your delectable, finger licking delicious buffet. But this time, I didn’t visit the buffet Copper Chimney in Worli. No, instead, I visited the Copper Chimney in Phoenix Mills, Parel. They serve Ala carte for lunch, and what a lunch it was.

I went in, hungry and starving, ravenous for some tasty delights. We ended up ordering some soup, a starter that I’ll get into in a little bit, Kadai Paneer and Dal Makhani. At the end of it all, I felt like a beached whale, and had rarely felt as satisfied, fat or happy spacer

spacer

Masala Papad + Crisp Roomali Roti = ???

The first starter that arrived was the behemoth above. It was recommended by the waiter when we asked for a Masala papad and they said they had this instead. Instead of a papad, they serve the masala on a crisp roomali roti. A very interesting and delectable dish I must say.

This was followed by a hot, savory tomato shorba, that had little cream but awesome flavor. And of course, the main course of butter roti’s, Kadhai Paneer and Dal Makhani. Now if you haven’t heard about this before, then you really need to get out from under that rock. but Copper Chimney’s Dal Makhani is to die for. Creamy! Aromatic! Flavored just right, with oodles of makhan. I could just gorge on the dal alone for days at end.

spacer

The savory tomato shorba

spacer

Dal Makhani + Kadhai Paneer + Butter Roti = Satisfied Shyam

 

Of course, after that meal, all I wanted to do was find the closest bed and hibernate for the next year or two. But sadly, that wasn’t an option. But if you like great punjabi food, great ambience and just want to have a good time, Copper Chimney is something you should definitely consider at the top of your list.

I’ll save the other for another post… Till the next time!

copper chimney, food, koolar, mumbai, restaurants

1 Comment

Toastmasters Speech 9 – Persuade with Power

Posted by shyam in Other on November 28, 2011

For the last few months (ever since I joined ISB to be precise), I have been an active Toastmasters member on campus. Toastmasters is an international organization that allows people to improve their public speaking skills. They have a bunch of projects that help people do this in an organized manner.

I have a bunch of filmed videos, and thought I would start sharing them on my blog.

This one is my most recent, the CC9, whose topic is “Persuade with Power“. The aim is to convince your audience to adopt your viewpoint on a certain topic of your choice.

In this speech, I take up the argument that come what may, Everything will work out. The darkest of nights usually have a dawn following them. And so I provide two examples from my life when I have found this to be true.

Let me know what people think, and how I could have improved it further!

I’ll share some of my more humorous speeches after this.

cc9, speech, toastmasters

3 Comments

The Pyrrhic Victory

Posted by shyam in Humor on November 22, 2011

The initial skirmishes had died down. There had been a relative, uneasy peace that had been ongoing for the past two months between the two sides. I had adopted a live and let live policy for the most part, with the unsaid agreement being that they would not encroach too much. After all, the place was more than enough for the three of us.

But then, two became three. And three became four. And four became a dozen. And suddenly, it felt as if they were taking advantage of my inherent niceness. What had gone unsaid had been spat in the mud and crapped upon. The underlying tension between us was ratcheting up!

But I let them be. After all, I just had a few more months left. But then, a line was crossed. It might be a very fine line, but crossed it was. My food is mine, and none others!

So I escalated the warfare. I signalled my intent to re-engage hostilities. A few died by my hand. But they proved resistant as well. They started advancing their troops to my dishes, my food and my microwave. I retaliated of course, but they proved hardy. They survived a full minute and a half at maximum blast of my microwave.

I knew then and there that this would not end well. Both sides had dug in, and were refusing to budge. Me because I was paying for the bloody space. They because they were comfortable, had nice dark places and crap loads of places to hide and procreate. But little did I knew how bad the fallout would be.

spacer

Pictured Above: Them Damn Roaches!

A day before a full scale attack, I gave them one last chance. I cleared out my kitchen, removing everything from every shelf and drawer. It was my hope that it would indicate to the miniature roaches of the reckoning that was coming. It turned out to be an eerie premonition of what would be…

But they paid no heed. It was if they couldn’t believe I would go that far. They believed I was just posturing, that there was no bite to my bark. How little they knew…

And thus, two days passed, and the roaches rejoiced. They felt they had won the battle, but they did not realize the war was still left. I decided enough was enough. I was done playing the nice guy. I had decided.

If I couldn’t have the kitchen, then I would make damn sure that they couldn’t either.

In a move worthy of the great King Pyrrhus who suffered great casualties in defeating the Romans, I decided to order a tactical nuclear strike. Or something just as devastating. Complete and utter pest control.

The pest control guys came, and hosed and dosed my entire kitchen with a white spray. The fumes were obnoxious, but I could not help laugh manically as I could see the roaches floating down the river of white death. But as the spraying came to an end, I couldn’t help but look upon my devastated kitchen.

spacer

Afterwards: The Devastated Kitchen

It looked like a war zone. A war zone that had just suffered a nuclear attack, and all that was left was the nuclear fallout. I could almost see a tumbleweed blowing through my kitchen.

spacer

The Ghost-kitchen after the attack

As I stared, I wondered about the bloods of thousands (okay, maybe not thousands but 10′s?) of roaches that stained my hands. I had not killed them personally, but it was my hand that triggered the call. But then, as I ruminated over the devastation, I had a sinking feeling. I thought I had seen a slight movement in the corner, past all the liquid death that had been sprayed.

Could it be? There had been roaches that had survived microwaving. Could there have been one that survived the extermination? I felt a chilly breeze flow through my body, causing me to shiver. I promised that I would always keep an eye on my back, for that one roach who might have survived and is now out for bloody revenge.

But in the here and now, I realized, that the kitchen remained unusable. And the smell permeated through the rest of my rooms that my entire apartment had to be abandoned for a day, left out to air. It was a Pyrrhic victory at its finest!

dramatization, humor, isb, kitchen, roaches

No Comments

Can MBA’s count beyond 4?

Posted by shyam in Humor on November 21, 2011

It took me 7 months to realize and recognize this. For some reason, it had never stood up and demanded its attention till I was recently slogging over the Marketing Research slide decks, valiantly trying to cram in 6 weeks of material into a two hour study session.

I turned a slide. And there was one. I turned a few more pages, and yet another one. And suddenly, it was like my entire ISB life was flashing before my very eyes, smacking me with every flash with a dead fish. There was a moment of dread, of realization dawning and wondering if I had just joined a club that I could never exit.

It was the trap of 4. It was as if the entire MBA population, once they entered any MBA school, forgot how to count beyond 4. How else could you explain the fact that any and every graph or concept that the MBA tried to teach me could be represented by a 2 by 2 graph?

Need to figure out how your brand portfolio is doing with regards to your competitors? No issues. Use a 2 by 2 matrix known as the BCG matrix

spacer

Want to figure out if the next big idea you have is going to make you gazillions of money or not? Plot a 2 by 2 matrix with Criticality (High / Low) on one axis, and Discontentment (High / Low) on the other as follows:

spacer In both cases, you pick a quadrant you want to be in, and try to frame your solution to get to that point. Its an overly simplistic approach that aims at reducing the amount of clutter that we have to deal with in our “messy” realities. The buck doesn’t just stop here though, no!

  • Want to figure out which Marketing Research question types to use? Theres a 2 by 2 matrix for that
  • Want to compare the nature of service? There’s a 2 by 2 matrix which plots degree of customization against degree of labor intensity to give you that answer
  • Want to figure out the types of people in the world? Want to figure out how to scratch an Aardvark’s back? There’s probably a 2 by 2 matrix for that too!

It doesn’t stop with 2 by 2 matrices though. Ever heard of SWOT Analysis (Strengths, Weaknesses, Opportunities and Threats)? While represented in a 2 by 2 tabular form, the number of items in in is still 4.

The GE-McKinsey  matrix tried to be novel, unique, prove how much more awesome it is than a simple, trivial BCG matrix. What did it do? Added 1 to each dimension, to give us a 3 by 3 matrix. Literally! Thats their claim to fame! (Well, to be fair, they did change the axis from Market Growth to market attractiveness, but thats about it).

I keep meaning to one up them all, and come up with a 4 by 4 matrix. And then MBA students all over the globe will have a new framework to memorize, and a new person to curse to his eternal doom! The Shyam Matrix. Pure Awesomeness on one axis, and sheer craziness on the other. Deal with that, MBA students!

Now thinking back though, I finally realize why every single person at an MBA school goes gaga over one theory in particular. It is something that is repeatedly used in class after class once it has been introduced to the students.

Porters 5 Forces!

Thats right. I bet the guy is famous for no other reason than the fact that he went beyond MBA’s traditionally accepted wisdom of students not being able to count beyond 4. He went and established 5 forces. Thats right! And suddenly, students found they were challenged beyond belief. It was as if they were being shown the light after spending years in mediocrity. And the 5 forces (not 4, 5!) became the single biggest rage of MBA’s.

Disclaimer: 2 by 2 matrices can actually be useful. There’s even a book published on the awesomeness of 2 by 2 matrices (Find book here). But still, there’s an over-abundance and over-reliance on over-simplifying concepts that might leave you over and out in the ditch. This was just an attempt to remind people of that.

1 Comment

Facebook’s next big opportunity : Analytics

Posted by shyam in Opinion, Technical on November 5, 2011

In my current term at ISB, I am taking a course on “Leveraging Social Media and Analytics”. Very awesome and interesting course, but it also has a project where we take a deep dive into one company’s Google Adwords, Google Analytics and Facebook Ads data.

Now Google analytics is brilliant at allowing users to see who’s visiting their websites, where are they coming from, what they do on it, etc. Its a very powerful tool, and especially since it integrates greatly with Google AdWords, providing a great one two punch for Google and is their big selling point.

Now enter Facebook, with their Ads. The biggest thing lost from FB’s point of view is data on how useful their ads are, how many conversions you get etc. This is still possible to figure out through correlation between FB’s ad data and Google Analytics. But is still a huge pain point from FB’s and FB user’s point of view. So why doesn’t Facebook offer something like Google Analytics?

Well, you might say, Google Analytics is the biggest one out there, and people require to put a code snippet in their websites to track usage, and they won’t do it twice or won’t take the hassle.

But think about this. Facebook already has their code snippets in most websites, either through their Like buttons, Share to Facebook buttons and who knows what buttons. All it takes is for them to include their tracking and analytic code snippet as part of these buttons. Suddenly, you realize that their tracking code could already be present in a gazillion odd websites, ready for analytics.

All Facebook needs to do is turn it on, and link to Facebook Analytics and voila : Facebook Analytics could have a huge installed base right off the bat!

Now this is all out there, but just a thought I had. Crazy? Logical? What do people think?

ads, analytics, facebook, google, social media

1 Comment

The Cost of Peace : New fiction short story posted

Posted by shyam in Uncategorized on February 8, 2011

Finally got some time to write over the past weekend, and to get the creative juices flowing, wrote a quick, self-contained fantasy short that I just posted in the Fiction section of the site.

The Cost of Peace is my rambling on what is and is not acceptable in the pursuit of peace, and plays out as a dialogue between two characters. I deliberately left the ending open ended, to leave it to the reader to decide which way they supported.

Regarding my technical writings, look for it to make a comeback within the coming month.

No Comments

APIs and what not to do

Posted by shyam in Opinion, Technical on April 12, 2010

APIs seem to be like opinions. Everyone has one, and no two people have the same concept of what constitutes a good one. An API is supposed to be an interface that is exposed for other programs or programmers to use to interact with your code. Except, each API, like an individual, is unique with its own flaws and niceties. A great API is one which reduces the amount of code you have to write when you use it. I personally feel amazing if I can get something done with minimal code. That just screams “GOOD API” to me.

On the other hand, a bad API leaves you feeling dirty, unclean even, as if you are committing grave sins against nature even by just using it. Here are a few common mistakes which end up leaving that bad taste in your mouth (with examples, of course!) :

Bad APIs

These are the worst offenders, the APIs which are supposedly there to make your life easier, but just end up making it more work to use it than rewriting it from scratch. I faced one of the bigger offenders of this one recently when I was working with GWT. I was trying to create a tree structure to represent a navigation hierarchy when it dawned on me.

A GWT Tree is created by creating a Tree object, and then creating a tree item for each node. To append children to each node, you create further tree items and add whatever text or elements you want to it. So to summarize, even if I have a data structure to represent my tree (which in most cases, I do), I will have to traverse it manually, create tree items, tell each one how to render itself and then append it to the correct items. Yuck.

Now consider how JFace creates a Tree (which I consider much more powerful and a nicer API altogether). You create a TreeViewer, set its data source / input. Then, you set a content provider which knows how to traverse your data object and get children / parents. You can also set a LabelProvider which tells it how to render its data elements. End result? Nice clean code that I actually feel satisfied about.

Most of these are the end result of rushed / not well thought out design. Having a concrete use case prior to designing it should have been enough to scream out “Its ugly!!!”. Suggestion to prevent this : write a test / use case for anything you start designing, so you can get a feel for how it feels in action. That should help you avoid a lot of these.

Not fully thought out APIs

This one is similar to the previous one, but I think it deserves section and example of its own. This happens when you almost nail the API, but fail to consider some common uses of the API. The biggest offender of this one I believe is the Java List API.

The two most common use cases I have in Java when I work with lists are
1.) Iterating through them to perform some operation and
2.) Filtering the list to get a subset

The second operation is so common that I get annoyed now that I have to create an empty list, iterate through each one using a for each and conditionally add elements to the new list. Now I realize that Java doesn’t make it easy to pass in functions (check my older article about this) as arguments, but what I really really want here is the ability to do myList.filter(predicate) where predicate is a predicate function I decide, which returns the filtered list with elements matching the predicate.

There are many more such common operations missing on the List interface, but this is the most egregious one I believe. Javascript also gets this wrong, but underscore, a JS library adds a lot of this which makes working with lists and collections a dream.

Misnamed APIs and methods

How many times have you called a method, only to realize that it didn’t really do what you thought it did? Or look for a method XYZ, only to realize later that it had been named YXZ instead. Raise your hands if you have experienced this. For some reason, an apple for someone almost always turns out to be an orange for someone else.

I’ll switch to bashing on JS for this one, underscore in particular. For all the amazing methods that underscore provides in JS, they really have a problem with naming. I ended up looking for a collection.contains method, and ended up finding only indexOf, so I initially assumed that they didn’t have it. I mean, if I look for contains, at best, I will also look for has, hasKey. Browsing through the list of method names, I might have even accepted includes (though it would not have been my first choice). But never in all my life would I have expected it to be include (Yes, that is include, as in singular!). People, what were you thinking????

Liars

The final set of APIs which can annoy (but are easily worked around, just like the previous section) are APIs which lie. These include APIs which don’t do what the function name suggests it does (no obvious example from the open source land comes to mind, thankfully). The other kind is one which is not done with work even after the object is created. Most times, it is the case of a lurking init / initialize method. And if you ever see an interface called Initializable, run in the opposite direction.

api, java, javascript

2 Comments

Is Strong Typing really needed?

Posted by shyam in Opinion, Technical on March 4, 2010

This is something I have been struggling with for the last few months. I have had people argue ardently that all Strong typing is good for is false comfort and lots of unneeded typing. But I was strong. I was undeterred. I dismissed this as the crazy rants of those JS developers, those dynamic language people who believe that obfuscation and compactness is everything, even at the cost of maintainability. I mean, how could a language where you didn’t even know what was getting passed in in any ways better than something where the APIs are explicit and stop you from making mistakes. A dynamic language could work for a single developer, but definitely not for a team. That was my whole hearted conclusion.
Now, I’m not so sure anymore. Its been 3 weeks since our team made the whole hearted switch. Has it been roses and sunshine? No. But it hasn’t been as bad as I expected it to be. And there are a few reasons for that. But before that, I’ll lay down the pros and cons the way I see them from my (assuredly very limited) experience :

Benefits of Strong Typing :
  1. Errors / Warnings in your editor
    Simply put, this might just be the single most greatest benefit of strong typing, and the single reason why most java developers (a lot rightly so) will never even consider leaving the safety of strong typing. While compilation support doesn’t necessarily go hand in hand with strong typing, most people tend to associate Java with it, so lets run with that. Simply put, with Strong typing, your editor can (and should, I mean, if you are not going to get immd. feedback, what’s the point?) give you immediate feedback when you messed something up. Whether this be using the wrong variable name or trying to call a method that either does not exist or with the wrong parameters. Or if you are trying to use the wrong type of object.

    To a Java developer, an IDE like Eclipse or IntelliJ is godsend, as it tells you what is wrong in your world and lets you jump to them, gives you suggestions and autofixes and generally makes your life as painless as it can. And it is brilliant, I can tell you that.

    In Javascript (or any other dynamic language), everything is fine and dandy for the first 100 lines. After that, it becomes scarily unmanageable. The only way around this that I have found so far is to be super paranoid and write tests for every single line of code. If you can’t do that, stay far far away.

  2. Generics (but this is also a negative, in my opinion, which I’ll get to below)
    The idea behind generics is that gives developers some assurances about the types in a collection (or whatever it is you are genericizing). That way, all operations are type safe, without having to convert to and from different types. And you are assured that you will not be surprised suddenly by a different type of object popping up when you least expect it. But there are a lot of issues with them that I’ll cover in the second section.
  3. Ability to follow a chain and figure out what type of object is required at each step
    Now this is something I definitely miss in languages like Javascript and Python. The fact that I can trace (in my IDE, note that part) what the type of each variable / method call in an expression chain is simply amazing, especially when you are working with a new codebase. You never have to wonder what the parameter types of the method you are calling are. You don’t have to wonder what methods are available or visible. You just know this information (Again, assuming you are using an IDE. If not, god help you)
  4. Refactorin
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.