Saturday, September 10, 2011

Time for Mobile!

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Update 10/05/2011: Steve Jobs just passed away, my deep admiration for his work and legacy will always be alive. People like him have made working in Silicon Valley a dream for people like me.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Some years back there was a time when people thought it was time for mobile! but it wasn't. It was around 2002 when developers were being lured to creating wap applications for the new generation of more capable phones. Java had already gained popularity and it was finally serving its purpose of being a language designed to run on top of anything. J2ME applications were a hot topic, at least among developers. But I was always more attracted to web application development and so selectively chose not to go into the mobile arena. I never coded any J2ME or wap application or anything that runs on a cellphone even though most of my peers would "wow!" such developments. And of course this is my personal opinion and you should understand I'm biased on this topic but I know some people will agree and I have some good reasons product of my own experience to think that time for mobile is now and it wasn't quite ready before.

When I say time for mobile I mean time for developers to create applications and really start making profit and embracing powers that go beyond the typical desktop application. Technology has made a lot of progress of course. Now a smartphone can run stuff on the GPU (Graphics Processing Unit) that go beyond drawing things on the screen. You can take not only full advantage of the web but also other multimodal sources of information like GPS and information coming from various sensors: proximity, orientation, etc. But the more important changes are the not very technical ones, now you have a more clear model for distributing applications massively (Apple Appstore, Android market), and devices are more third party application centric than before. More importantly you have a more clear model for monetizing applications!, you can create the new big hit $1 app or you can go big with advertisements. You have already been listening for some time on the news about kids making $1 applications and going big and you might think I'm writing this way too late. I think this is partially true but while one-big-hit-wonders happened in the previous years, the success of those were in a lot of cases hard to predict. Today you can start a more principled entrepreneurial project and gain some reasonable success even if you don't happen to become a big hit.

The establishment of Social has powered the establishment of Mobile and also the other way around. Social networking applications bring people even closer when they incorporate mobile, for instance Foursquare lets you see whom of your friends is around you at a given time by using your mobile device location and the location of your friends (see my previous post mentioning Foursquare). You can engage users in a more personal level connection using mobile.

Finally, there are a lot of other things I would like to write about mobile, for instance Computer Vision for mobile since I work in Computer Vision and I spent the last summer working with images at the Multimedia Content Analysis team at Android. I gladly noticed how much people from everywhere inside Google especially from research teams were willing to contribute to Android and what cool applications are out there from third party developers taking advantage of Computer Vision both for Android and iPhone. One thing I will not write about is the controversy on which one is better or their legal problems on patents and the like. I really admire Steve Jobs and I think without his vision and the iPhone coming into the mobile scene things wouldn't have moved so fast, taking the idea of multi-touch to mainstream usage in a product for the first time was a big hit but the technological advances have been the sum of the knowledge of so many people and I think the world is a more colorful place with competition that fits the needs of several groups of users.


Wednesday, July 27, 2011

Learning Karate by Waxing Cars

I will introduce here an article by Peter Norvig that I recently read and involves a discussion about Artificial Intelligence, Statistical Models and Machine Learning, but before posting the link I will introduce the discussion with an example:

When I was a child I learned how to write proper Spanish by following what I will refer in this article as the karate-kid or Mr.-Miyagi approach. I present here two approaches to learn and improve your basic writing skills.
1. Take a class on grammatical and orthographic rules.
2. Read lots of grammatically and orthographically correct text, not bothering about rules.

By using the first approach you can get a sense of how to construct correct sentences early on, but the effects depend a lot on having rules hard-coded in your brain very heavily, practicing with those rules with lots of examples can certainly reinforce the rules to be learned.

The second approach does not involve learning rules at all but just reading lots of text data, let's say books. After reading lots of correctly structured sentences and words you can develop a sense of how a correctly structured sentence or word feels like without being conscious about rules. In other words for some cases you will be using rules almost without consciously thinking about them due to the amazing ability of our brains to find patterns. This second approach is the data-driven approach or as I prefer to call it, the karate-kid approach because I suspect this is the path Mr. Miyagi would have chosen if he had to mentor a pupil about how to write properly.

Mr. Miyagi asking his pupil to wax cars over and over again.
The field of Artificial Intelligence used to follow the first approach. If you want a smart computer, then hard code rules on it so that it can behave as desired. Hard-coding rules doesn't scale very well so you might want to learn the rules from data or adapt the rules over time but ultimately people realized that you might not really need to care about rules at all, as long as you just care about the system behaving as desired.  This is the topic of discussion in the article by Peter Norvig in response to Noam Chomsky's remarks where Chomsky apparently derided machine learning researchers. You can read it in the following link, I highly recommend it: http://norvig.com/chomsky.html