Monthly Archives: January 2013

The Places I Want to See

By the end of April, I will be graduating from university after having spent 5 years at the University of Waterloo learning the dark secrets of software engineering. I have a few months (basically until mid-late August) of free time before I start my full time position at Microsoft. This is probably the best chance I have in life to get some travelling done and see the world before I am bogged down by work commitments, life commitments, etc. So the following is a list of places I want to see and rationales for why I want to see them:

Sri Lanka

My native land! It’s been 10 years since I have last visited there. I still have a lot of relatives in Sri Lanka who have not seen me since I was 12. I am definitely eager to see them again. Also, the country is absolutely beautiful. I got a few chances to see the beauty of the country in my last two visits there, but I want to have at least one trip where I can spend some time visiting the beautiful beaches, mountains and forests that are present in this island nation.

Maldives

When I was little, I spent about 1-2 years here because my parents worked for a local hotel in Male. I don’t remember much about my life there. I remember the home we had there, but that’s about it. I do have photos of my sister and I swimming in the turquoise water and running along the white sandy beaches. I want to go and see this country that I spent a period of my life in. It also helps that my dad wants to go and visit it again. He has some fond memories of working there.

Australia

I have a ton of relatives in Australia. In fact, I have a bunch of nieces and nephews that don’t even know I exist because I have never visited them before, and they have never visited me in Canada before. Also, considering the fact that the rest of my immediate family has gone to Australia and I am the only remaining person in my family who has yet to set foot in that country, it is high time that I go there for a visit. Not to mention the fact that Australia has a crazy amount of biodiversity and beautiful landscapes that I am dying to see.

Singapore and Malaysia

Singapore is probably one of the most beautiful cities I have ever been to. It is very modern, diverse and clean. Honestly, I would not mind moving there and living there for the rest of my life. It is probably the best place I have ever visited. I have never set foot in Malaysia, but I have heard that the country is beautiful and the people are incredibly friendly.

India

Despite the fact that I am of South Asian descent, I have never set foot in India. I don’t have very many relatives there so my parents never had that good of a reason to go visit the country. Despite the recent negative press about India, I would love to go there. This is the country that gave birth to multiple religions, and is the home of over 20 distinct languages and hundreds of dialects. When you have this much diversity packed into one country, it is hard not to be interested in visiting it. There is also a large amount of landscape diversity in this country. There are jungles, tropical forests, mountains and deserts. A visit here would also let me explore some beautiful Buddhist temples as well. Buddhism is probably the most appealing and interesting religion that I have ever encountered, and going to Buddhist temples in India would definitely help me study this religion some more. India is also a country of extremes. There is a rising middle-class in the country, but many parts of the country are still impoverished and lacking infrastructure. I want to see for myself how India and Indian society is coping and attempting to fix this problem.

Japan

As a big anime fan, it goes without saying that I would love to visit Japan. But, I would not go just for the anime. I have not been to that many countries where English is not the primary language. In fact, I think Sri Lanka is the only country I have been to where English is not the primary speaking language. Also, Japan would be the first country that has a homogeneous population that I would have ever visited. It would be interesting to explore the culture and interact with the people of a country where being a person of South Asian descent is incredibly rare. Without a doubt there would be a language barrier, but I think that would make the trip even more interesting because I would have to put in a lot of effort into the interactions with the local population and I believe that would be incredibly satisfying. Also, Japan’s Shinto religion is quite interesting with a diverse mythology. There is also the fact that like many countries in the region, Japan has some beautiful landscapes and scenery that I would love to check out.

South Korea

I am somewhat familiar with South Korean pop culture, especially considering the fact that I have a bunch of k-pop songs in my music collection. Also, I have watched a number of K-Dramas so I am somewhat familiar with customs there. But watching it on TV is one thing and actually experiencing it in person is another thing. But K-pop and their culture is not the only thing that I want to explore in South Korea. This is a country that is still technically at war with North Korea, and I want to talk to people there to see how they feel about it. Also, a visit to the DMZ is also in order. Finally, I think what is most interesting about South Korea is that this is a country that went from a poor society to a highly industrialized, high-tech, wealthy society in a matter of decades. It would be interesting to see how such a rapid increase in wealth is impacting the people of South Korea. For many youth, they have only ever known middle-class, developed life. However, their grandparents can still remember the Korean War and the times when South Korea was a poor country. I have read a bit about the subject, but again, reading it is one thing but actually experiencing it is another.

Kenya

The news really does not paint Africa in a positive light. Poverty, civil wars, famine, disease, death, etc. If the media is to be believed, living in Africa is a terrible experience. Now I don’t doubt that that is true for some places, especially in regions like Congo. But, through the many Africans that I have met in my lifetime, I can safely say that people from Africa are friendly, hospitable and great to hang out with, which means the continent must also be the same. I have heard good things about visiting Kenya so it is the first country in Africa that I want to visit. I want to see how Africa is doing (even if it is an incredibly narrow and limited view that I will be getting) and interact with the people there. Who knows, maybe once I visit Kenya, I will come back to see other countries on the continent.

Latin America

Latin America is an interesting mix of people and culture. From what I have seen of pictures, a lot of South America is a mix of the old and the new. It is a mix of colonialism heritage and Native American heritage  What better place would there be to see multiple perspectives on history than Latin America? Also, not to mention the fact that the region is home to some of the most astounding places that this planet has to offer such as the Amazon rain forest  the mountains of Peru, Machu Pichu, etc. I picked Latin America in general because I have no idea what country to specifically visit, they all offer something unique. Heck, if I do visit there, I might just hop around to a new country or city every couple of days to ensure that I can see a good chunk of the content.

Thoughts on a Facebook search engine

Today, I spent a good chunk of an hour trying to dig through various friend profiles to find this single video that one of my friends made that had a bunch of graduation-related photos. I was on a nostalgia trip and I wanted to dig it up again. However there was one major problem, Facebook’s Timeline layout (at least as of now) is a mess when you are trying to find this one specific photo or video. First, you cannot filter out everything but videos, nor can you filter photos/videos by the people who are tagged in them. This makes looking for this stuff a nightmare and eventually I just gave up. Also, this is not the first time I have had to dig up something old that was buried on my timeline or on some friend’s timeline. Once, I was digging up a post on my timeline, and the best I could do was to scroll down and hope I would eventually find it. I knew who posted it, but I couldn’t remember the date of the post, which made it difficult. I did find it eventually, but it took about 1.5 hours.

This got me thinking. The thing about Facebook’s layout is that it is currently optimized for the most recent items to have the highest visibility. This is evident when you look at the Timeline’s chronological ordering or your News Feed’s chronological ordering. (Note: the News Feed is not strictly in chronological order since it does also sort by how important or popular Facebook’s algorithms determine a post to be. That means an older post with a lot more activity in terms of comments would appear higher than other things. But for the most part, it is safe to assume that it is indeed chronological). For 99% of Facebook’s use cases, this is the optimal way of laying things out. Most of the time, one logs onto Facebook to check the latest updates from their friends, not to go digging through old content.

But there is a problem here. Currently Facebook is relatively young. In a few years, say 4-5 years, people are going to start wanting to look at their old content. Examples include photos, links and status updates. But, Facebook in its current state is incapable of serving those use cases. The best way to go about it would be to take a Google search engine approach. Why not be able to search posts, photos and videos using things like keywords, tagged people, location and date ranges? Of course, one does not need all of Facebook to be searchable. Many users would probably be content with being able to search their own content and perhaps that of their friends. Facebook can implement privacy controls so that people can control what content from their timelines shows up in search results. Of course, like most major features that are added to Facebook, you can bet there will be a huge privacy outcry, which is something that Facebook will have to consider.

I would implement this myself as a side project. However, there is a very real possibility that such a project would be in violation of Facebook’s Terms of Service because I would have to scrape and index content that is not accessible outside the Facebook platform. Not to mention that I would have to deal with the issue of storing the indexed data. Facebook most certainly would not be pleased if I stored it on my own servers, nor would any of my users be please because there are legitimate privacy concerns here. These are problems that will probably take a lot of time and effort to navigate around. Honestly, it is not worth it for a side project. Perhaps I can just implement it to index only my own timeline data? This means that I would have to create a dedicated search website, which would need to be hosted on my own servers. A Facebook app would probably be able to dodge some of these concerns, but I would still be unable to cache indexed data without violating the Terms of Service. I would have to do live queries to Facebook as I am returning search results, which would be slow and bandwidth heavy. The third option, which skirts around this issue though it probably is a legal grey area (see FB Purity case), is to create a Google Chrome extension or Firefox plugin that would store the indexed data on the user’s local machine. This means that there are no queries going to a third party service. Now, the data is being kept on the client machine, which means I would have to encrypt it. Also, performance is bound by the client machine. These are two problems that make implementing something that exists the grey area of Facebook’s Terms of Service, a not worthwhile endeavour.

So the remaining option is to wait for Facebook to do it. Now why wouldn’t they have done it by now? Search engines, crawling and indexing data and extracting useful metadata out of data is a very challenging technical problem to solve and it requires a lot of resources. Google has hundreds of thousands of servers to digest, store and serve the data that powers their search engine. It’s a very expensive system to maintain and would require a lot of developer resources to build. Let’s be honest, this would serve about 10% of the current use cases of Facebook. The cost-benefit trade-off here does not look very appealing. Now mind you, it could be a lot more appealing once it is deployed because people might actually want to use it. But for now, it definitely does not make sense for Facebook to commit enormous resources to such an endeavour.  But, I remain optimistic that they will do it eventually. After all, I’m fairly sure they already have a bunch of the infrastructure and technology necessary, to do the search engine, already powering their business intelligence and advertising systems.