We spent a week in Singapore after our India adventure.

Chinatown market

I really enjoy crowded marketplaces–the more crowded, the better. There’s always so much new to see and smell and taste. Plus, being 6’3″, I generally have a birds-eye view and can still breathe and locate other people I’m with.

Preperations for Chinese new year were well under-way (actual New Years is in a week), which contributed heavily to the crowdedness and expanse of the marketplace.

Sri Mariamman Temple

We visted a Singaporean Hindu temple. The unique thing about this specific temple is that it was populated by Hindu “village gods”–gods that are generally maintained and prayed to by the local farmers/merchants of a small village community as opposed to an official brahmin priest. The village gods have slightly different names and portrayals as the more well-known Temple gods starring in the same mythology and stories.

There’s a similarity to the Christian protestant versus catholic divide in village god worship (being available to the peasants, very personal and accessible) versus temple god worship (controlled by the priestly class, living solely in temples). Protestantism is the idea that the bible should be read by and accessible to everyone, rather than just the priest/father giving the sermon, as decreed by old-school Catholicism.

Because everyone in Singapore is an immigrant at some level, when the Hindus came to the country they were granted space (as all religious singapores) to practice their religion. This space ended up being a temple, naturally, as there’s no room for small, sparse villages on the Singaporean island. So this temple is the only place (within my knowledge) that these village gods are worshipped in a temple setting.

Broken Tooth Relic Temple

The interesting thing about this temple is contained within its name. It contains a relic, a tooth, which supposedly belonged to the original Buddha Gautama. People come and pray to it.

The main philosophical divide (or at least, one of the main philosophical distinctions) in Buddhism is between Theravada and Mahayana Buddhism. Theravada Buddhism is more in line with what’s commonly thought of as Buddhism: Ascetiscism, long hours of sitting meditiation, orange-red robes, and so on. It’s in some ways the more classic and traditional form.

Mahayana buddhism acknowledges that everyone can’t (or won’t or don’t) really take the time to retreat for years and meditate in the woods, or on top of a mountain somewhere. It tries to make the Buddhist philosophy more accessible to the average individual. As such, it tends more towards temple prayer, holy relics, and primarily the idea that enlightened individuals called Boddhisatvas have postponed their unificiation in Nirvana in order to help you, the average individual, come closer to enlightenment. They’re the Buddhist equivalent of the Christian Saints, as far as I can tell.

The Broken Tooth Relic Temple is an example of a Mahayana Buddhist place of worship.




We came for my cousin’s wedding. While not the first Indian wedding I’ve been to, it was the first since I’ve been an adult, and really paying any sort of proper attention to the world around me. The wedding was a lot of fun, with the as-seen-on-TV dancing and delicious food, family and festivity.

Dharavi Slum

We toured the Dharavi slum, the largest slum in Asia.

At first, I was apprehensive of the whole idea: “visiting” a slum seemed intrusive to the lives of those who lived there, as if the homes of over 1 million peoples were a tourist attraction to be gawked at.


Actually touring the slum changed my initial sentiment. The organization giving the tours, Reality Tours, is an NGO geared towards bringing more revenune to the Dharavi community (and the communities of other slums around the world). Our tour guide, Mayur had been born and raised in Dharavi, taught himself english and was now giving tours and studying computers.

The proceeds from the tours went towards community programs such as classes (including computer classes!) and sports organizations for the children growing up there, as well as some for the adults. They provide basic computer skills (office, web browsing, etc), and also sports equipment (footballs (soccer balls) and kleats for the kids). They were recently donated a 3d printer that Mayur (our tour guide) was in charge of figuring out how to use.

Through recycling and other industries, Dharavi moves over $1 billion / year.


We weren’t accosted by beggars at all throughout the 4 hours of being there. Tour-ers are advised against giving to people begging, since it encourages a counterproductive mentality of getting something for nothing.

At one point I picked up a retinue of children who were interested in my watch (I sport a Pebble Steel), asking me questions about it and pulling on my wrist to press its buttons. I was actually surprised by the fact that they were truly interested and not trying to steal it.

The gap between the rich and the poor in Mumbai and across India is much greater than it is in the US, with the wealthy being at the level of the American upper class, and the poor far below the (eg) American poor. For instance, my grandparents’ apartment (where I’m sitting currently and where we stay when we come to bombay) is on the same road as the Ambani house which is the most expensive private residence on the planet. (there was a media wave about it when it was built, not sure if you caught any of that) And it overlooks basically slums, in certain directions.


Although all this being said Bombay has come a long way in the last even 2 years. I’ve noticed a lot less abject poverty on the streets, and a lot of the slum shanty-dwellings have been renovated into low cost apartments. The roads are better. The old Hindustan Ambassador taxi fleet has been largely replaced by new Mitsubishi Santros burning compressed natural gas.

Muslim Street

At Mumbai’s Muslim street we ate kebabs, partridge… I tried goat brain, which has a slightly squishy texture and a taste similar to liver/kidney but not quite as strong.


I fell into the eyes of a young muslim woman standing down the street, probably around my age. She was wearing a full burka, only her beautiful, grey-green eyes were visible at all. I on the other hand was in a button-down and jeans, my RayBans on my head. For whatever reason, time seemed to stop as we gazed at each other for a while, until her (presumably) husband returned and ushered her away. Sappy imaginary pseudo-romance? Probably. Bridging cultural divides? Hopefully.

We also saw a man mysteriously taken away by a cop, who arrived outside his shop-stall and demanded he get in the back of the police jeep. After some back and forth he got in, handing off his wallet to his friend out of the back of the jeep as they pulled away.


Anyway, here are some more pictures:


MHacks III

This weekend, I went with the Purdue Hackers club to MHacks Winter 2014 in Detroit, Michigan. This was the first major hackathon I’d been to, and it was an awesome experience.

The four person team I was a part of created a hardware and software solution for mobile ordering and checkout which we dubbed Spark. Check out our submissionhere.

We won the “Most Technically Impressive” and “Most Viable Startup” awards!

Cube, the chat bot

My most recent project (besides surviving the 2013 Summer of Math) has been writing a chat bot for the room my friends and I hang out in. It’s called Cube, and is written in python (using sleekxmpp).

Here’s a github link

Cube is a markov chain, pseudo-random text generating bot who can say some pretty ridiculous things.

A markov chain takes input text – in this case, directly from our human speech in the chat room – and ‘slices’ it up into key-value pairs, where the key is a 2-word tuple, and points to a single word value. Cube appends END tokens so we know where to start and stop generating, and stores the resulting python dict.

For example if someone were to say “The quick brown fox”, it would become:

END the -> quick
the quick -> brown
quick brown -> fox
brown fox -> END

Over time, there’s overlap in our speech, and these are added to the dict. For instance, if someone were to then say “The quick brown cow”, our updated dict would have

END the -> quick
the quick -> brown
quick brown -> {fox, cow}
brown fox -> END
brown cow -> END

When prompted to generate a sentence, we starts a markov chain with a random key where the first token is END, and follow it until we encounter another END token, two words at a time. If there are multiple values for a given key tuple, we choose at random. Each new word is appended to the list of words that will comprise our bot-generated text.

It’s worth mentioning at this point that the probability of a given next word is stored to the dict as well. For instance if we had “I am fat”, “I am fat”, and “I am hungry”, the values stored would be:

I am -> {fat, fat, hungry}

So there would be a 66% chance of selecting “fat”, and a 33% chance of selecting hungry.

That’s the basic idea behind markov chains. Cube however, does this slightly differently.

When a new sentence is input, Cube actually saves two markov chains. One forwards (like we’ve covered), and one in reverse. So the sentence “the quick brown fox” becomes the forward dict from above, as well as:

END fox -> brown
fox brown -> quick
brown quick -> the
quick the -> END

These two markov chains, forward and reverse, are stored in two separate dicts, which makes this whole model a little trickier to visualize, but bear with me. Now, when we go to generate a sentence, we can start from any word in the corpus and run a markov chain in both directions, until each reaches an END token. This allows for much greater variance in generated text, because there are obviously many more words in the corpus than there are words-preceded-by-END-tokens.

Over time, Cube starts to say some very interesting things indeed.

viraj: cube
cube: the agent started taking out his badge and had anyone used the criticisms box to agree with your fingers