Thursday, April 17, 2008

A Phoenix Reborn

I realize that most of my time on the web is spent consuming. I consume stories on reddit, digg, and various feeds on google reader. None of my time online is really spent producing; I'm essentially an information sponge that soaks up what other people have written but gives nothing in return.

My behavior is certainly representative of the internet community at large. A small number active members write articles on and submit stories to wikipedia, reddit, and digg, and a large number of passive members consume that content. Nevertheless, there's no inherent reason why I have to be a passive internet user; and, in fact, I feel somewhat weak that I'm not a content generator. I'd certainly like to think that I have some knowledge, thoughts, or expertise that others might find valuable and useful.

So, without further ado, I'm going to try and revive my blog.

Thursday, September 15, 2005

AI on your iPod Shuffle

I was browsing Beyond Satire, a site run by Ellen Spertus (one of my summer colleagues on the orkut team), and I happened to hit a link about something called the Martin Shuffle. It turned out to be a name for a way to find a particular song using the "shuffle" and "next" features of the iPod shuffle. I read the article and was both intrigued and amused because it tried to apply some randomized mathematical analysis on iPod Shuffle usage; namely, the writer was analyzing what the optimal policy would be for finding a particular song on the iPod shuffle and how long that would take.

Two elements in the article caught my attention. One, on the right side of the page, there was an image of the Randomized Algorithms textbook that was used in Karger's 6.856 class, a class that I took, enjoyed, thought was consuming my life and causing endless pain, and subsequently dropped. Second, the analysis used the concept of Markov Decision Processes (MDP), a term that I vaguely remembered from Kaelbling's 6.825 class (Techniques in AI).

Quite frankly, this was one of the coolest AI/mathematical/algorithm articles that I've read in some time. For a while, my impression of AI has been that it was too heavyweight and abstract for solving real-world decision problems. AI papers that I've read, AI problem sets that I've done, and AI lectures that I've attended typically dealt with toy problems rather than the more complicated ones that we encounter in real life. Moreover, I had not really built a real-world application that used a major AI technique (we're discounting search in this discussion).

What suprised me the most was that the analysis was elegant and that the author actually provided short Python code to implement a value iteration algorithm for solving MDPs. The code was lightweight, nothing substantial that would've even taken me, a novice in the world of Python, to write. More importantly, it was concrete where the lectures that I had on MDPs were abstract. In short, I was amazed and inspired that the author could take something that I thought to be abstract, i.e. MDPs, and apply it to a fun but still real question. If only 6.825 had used fun examples like this instead of robots trying to vacuum dust from rooms or avoiding monsters, I might actually have found the material more interesting.

It was clear that the article was written by someone with a nerdy sense of humor. Upon checking the URL, I realized that the article was written by none other than Peter Norvig - the author of Artificial Intelligence: A Modern Approach (AIMA) and the Director of Web Search Quality at Google. From skimming his website, I saw that he actually had other pieces of Python code doing practical, lightweight, and intelligible AI. From reading the article, I'm actually inspired to bust out my copy of AIMA, relearn some AI techniques that I had previously thought to be of mainly theoretical value, and see what other neat questions AI can answer.

Thanks Norvig.

Wednesday, January 26, 2005

Philosophy of Blogging

With so many people engaging in the trend of maintaining weblogs, it was only a matter of time before I considered seriously maintaining one myself. And here it is -- my own blog.

Granted, I've maintained a web journal before in my old website, Inside Ed-ition, but I've never really maintained a blog using real blogging software, so this blog on Google's Blogger tool is a new experience for me.

Chatting with Chen on the bus ride over to Nashoba Ski Valley, I realized that the world has two types of bloggers: those that treat their blogs as a journal or a recording of the daily events in their lives, and those that treat blogs as a podium for commenting out on issues/articles/events around them. The first type of blogger writes in terms of "I did this and that today" while the second type writes essays about their reactions to current events. And I think the most skillful writers and bloggers would be those that fit into the second type but are able to slip in hints about what they've been doing. I'll treat my blog as an avenue for expressing thoughts and sharing insights into what I see and experience. If I can create anything that's even remotely like Philip Greenspun's weblog, I'd be happy with this blog. He's a previous professor of mine that knows quite a bit about web software engineering.

While categorizing people in terms of the type of blogger they are, it's also curious how accurate of a reflection a blog can actually be of a person. I would imagine that most people would have reserverations about discussing private personal issues in a public sphere, so I can only assume that people only post about those aspects about themselves that they want to emphasize to other people while hiding those aspects that they would prefer to keep private. In this sense, it might seem that a blog is really just a superficial facade -- an online mask that people use to accentuate their more desirable characteristics. The fact that I'm still choosing to maintain a blog shows that my philosophy is that the ideas that a person chooses to write about in his blog tells a story about that person.