Wednesday, January 06, 2010

Voice recognition on the Nexus One

The voice recognition on the Nexus one is a game changer in many ways. I depended on the hardware keyboard on the Android G1, and I enjoyed the physical feedback that a keyboard provides. By comparison, an on-screen keyboard is error-prone, and sometimes tricky to use. With voice recognition on the Nexus One, Google has done away with many issues regarding data entry.

We all know that phones are too big when they have a physical keyboard, and useless for long emails when they don't have one. With voice recognition, you could speak out a major part of the email, and perhaps edit it to perfection. It is a huge time-saver. Even if this phone had a physical keyboard, I would consider using voice recognition for notes and emails.

I was hesitant about it working with my voice, since I have an Indian accent. Here is a demonstration of it working with my voice. See what you think of it.

In this video, I tested it on two sentences that were perfectly recognized. Of course, like any other software, it isn't perfect. It does make mistakes. That said, it is better than anything else I have seen, and works well for most common words. It certainly exceeded my initial expectations.

True to Google's openness, this is something available to every program on the Android platform, not a specific set of Google-only applications. My demonstration used a third-party application, a sticky note, to highlight this.

Here is a much better video demonstrating the voice input feature:

Sunday, January 03, 2010

Acronym hell in wireless connectivity-land

I've been learning about encryption used when making a Wi-Fi connection between a computer and an access point. What I found was the most ridiculous mix of acronyms. Here is a sampler: WPA, WPA2, WEP, EAP, TKIP, PSK, TLS, TTLS, PEAP, EAP-TLS, EAP-TTLS, MSCHAPv2, PEAPv0, EAP-MSCHAPv2, PEAPv1, EAP-GTC, EAP-SIM, PMK, PKI.

Saturday, January 02, 2010

The cell phone battle between Apple's iPhone and Google's Android

Apple and Google have received much publicity over their move into the mobile space. Apple has a very good handset, the iPhone, which combines their usual offering of iTunes with a capable cell-phone. Google has a mobile 'platform', an operating system that anyone can use to create a mobile device. Many such devices have been developed, some with the help of Google, and some independently. In the US, you can get an iPhone with AT&T alone, and an Android with T-mobile, Verizon and Sprint.

While most people see this as a clash of devices, the issue is much deeper: what computers will be in the future, and how we will interact with them.

Let us consider the two devices: a new iPhone versus a new Motorola Droid (an Android phone). The specific Android device does not matter for this argument, pick any Android device of your choice. At the store you compare device sizes, the screen quality, the network quality: AT&T and Verizon in this case. You might compare the user-interface, and notice the programs that come for free with each device.

Both devices are fairly sophisticated computers, hence the term smartphones. Both have increasingly complicated programs which previous phones were not capable of running, like full turn-by-turn navigation, or comparison shopping tools, or full browsers. These are tasks that were earlier accomplished by separate devices. Both can be programmed and software can be purchased for both. In short, both look very much like real computers. Computers that can also make calls.

What is not obvious at the store are very important, deeper differences: while the tools to write programs for both are free, Android applications can be distributed without permission. iPhone applications must be distributed through the Apple store, and only after Apple's explicit permission. I can write an Android program and put it on my website, allowing everyone to download it. Google and Motorola might be blissfully ignorant of this, and even if they dislike my program, they cannot stop me. Apple maintains a draconian control over what programs can be written for the device. Imagine if Microsoft had to power to disallow specific programs on the Windows platform. Imagine if they had disallowed the Netscape browser, because it 'duplicated existing functionality'.

Here's another difference: the Android software runs on many hardware vendors, while the iPhone software only runs on an iPhone device. This is similar to Windows running on Dell, Lenovo, and HP machines, while MacOS only runs on Macs. Apple has sued vendors who try to run MacOS on non-Mac hardware, so it is highly unlikely that the iPhone system software will run on anything except an Apple iPhone device. If you want Android, you could get it from many device makers: HTC, Samsung, Motorola. For an iPhone, you must get Apple.

Everyone agrees that the mobile space is the next big thing. Many more people will experience the Internet on a mobile device than a full laptop or desktop computer. Even in households where computers are common, mobile devices are being used more often: it is so convenient to use something that is always with you. Computers are being relegated to specialized activities, and more of their role is being taken up by mobile devices. A few years ago you would have got your parents a computer just so they can check email. Then you'd have to make sure their DSL modem can talk to their wireless router, which works with their ethernet card, for which they have the right drivers. And then, after Service Pack 6 and Anti-Virus 2010, perhaps they can see your photos. All too complicated. Today, you'd probably just get them a phone. It beeps when they have email, and they can check email even when they are on vacation.

If mobile phones will supplant general-purpose computers, an Apple dominated world is a bleak future to aim for. You get a single vendor of hardware (Apple), a single vendor of system software (Apple), and as a bonus, that single vendor exerts unprecedented control over the software distributed on that device. This is dominance that will surpass anything Microsoft ever had. Imagine if every laptop and desktop was sold only by Microsoft, not by Dell, IBM, HP. Imagine if Microsoft could arbitrarily decide what applications can run on its platform. Every media player (except theirs) would be disallowed, since it 'duplicates existing functionality'. Even if they didn't have a competing product they could disallow an application, if it threatened their business model. For example, they might disallow Netscape's browser, even if they didn't have a browser of their own. This is similar to what Apple did, when they disallowed Google Voice. Even though Google Voice doesn't compete with anything Apple offers.

Microsoft's monopoly gave them the power to hold back progress on the web. When Internet Explorer 6 successfully killed Netscape, they never bothered to update it to adhere to web standards. Web developers were forced to waste time dealing with Internet Explorer's incorrect behavior, because a majority of the world used it. Microsoft probably hoped that web applications would never succeed, and people would be forced to write desktop applications, which would run on their platform, thus furthering their goals. I know it is fashionable to loath Microsoft, but Apple would be far worse since they control not just the system software (Windows or MacOS) but also the hardware, and in case of the iPhone, the software distribution.

An Apple dominated world would be much easier to control, since the hardware, software, and software distribution are all tightly controlled by Apple. What's worse, the mobile phone can only be on a single network, while a computer can be connected to the Internet through a variety of means. An Apple dominated world would dictate your choice of wireless provider as well. Today in the US, you can buy an Android phone on at least three networks, but if you want an iPhone, you have to choose AT&T. Perhaps this will change in the future, but it is a sign of the extreme control that is available in Apple's hands.

I don't begrudge Apple's success: they have a very good device, with excellent UI. They've put a lot of thought into the product, and it shows. I am extremely wary of the iPhone becoming the dominant mobile platform, though.

Edit on 3 Jan 2010: Comments brought up an important point about Google spying, my comment is included here.

1. If you are paranoid, you can buy a developer phone, and use a firmware that does not require a Google login. Can you buy an iPhone and install a software that gets around their device lock, legally?
2. If you are wary of Google, are you also wary of Facebook and credit card companies? Are you wary of your cell-phone company (which has minute-by-minute information of where you are, who you called, where you live)? I hope you don't use AT&T, which tapped many phones without warrants?
3. In Ken Auletta's book, he talks of a situation when Google was asked to hand over information without a subpeona, and they refused while Bing agreed to hand over information. Are you sure that your views are supported by facts?
4. Is there a single case where Google abused the information in any way? As a comparison, Apple has abused its iPhone control repeatedly, to disallow apps that competed with them.
5. Google does make changes to its policies to comply with the local law. Would you wish Google did not follow the law?
6. How do you know that the iPhone platform is respecting your privacy? Many independent people have looked through the Android source code (it is freely available). How many have done so for Apple's source?

My point is that a lot of privacy concerns about Google are ill-founded. You could sign out before doing searches. You could clear cookies, if you are concerned. Finally, employees at Google are keenly aware of privacy issues: our families and friends are Google users too. And we know what a death-blow it will be if we misuse the information. There are many ways in which you can find what information Google has for you, like the Google Dashboard (

Disclaimer: While I am a Google employee, this blog post consists entirely of publicly available information. Also, this post is my opinion alone, and reflects on neither Google, nor my employment with them.