Sunday, February 6, 2011

Android - Alternative Keyboards Shootout

The Motorola Milestone picture, courtesy of Wikipedia.

Most of the time, I stick to the hardware slide-out keyboard of the Motorola Milestone. Indeed, the presence of the hardware keyboard was one of the main reasons I chose this device over the other in the first place. However, there are occasions, when I just need to quickly reply to a text message or an email, often while on the go having only one hand available to operate the device. I use the stock Android soft-keyboard in these cases, but I remain unhappy with the perceived high number of typos and errors. Many times I start typing on the soft-keyboard and eventually frustrated with the typos I slide out the hardware keyboard, rotate the device to the landscape mode and finish the text on the hardware keyboard. The problem with this solution is, that switching takes time: applications need to react to the screen orientation change and redraw the user interface. Some apps are fast, but for some of them, this change takes one or two seconds and the user experience suffers.

As Swype keyboard was not available for the first generation Droid / Milestone I tried SlideIT which is based on a similar concept, but after a short trial I turned back to the stock: I need to frequently switch back and forth between Czech and English, sometimes even using words from both languages in one message which makes all keyboards relying on a dictionary unsuitable for my use case.

Note: The keyboard pictures above were taken from the Android Market

In the fall 2010, I registered an interesting newcomer to the alternative Android keyboards race the 8pen keyboard (Android Market). I decided to give it spin. During the approximately two week test drive, MessagEase, a soft keyboard which has its roots on the Palm OS platform, was released to the Android Market so I included it in the competition. I installed myTextSpeed, available on the Market to establish a leveled playing field and tried to compare both newcomers 8pen and MessagEase with the incumbents - the hardware keyboard and the stock Android keyboard. You can see the best scores I recorded in myTextSpeed for all the four keyboards in two different races, typing two classic books texts.

  Moby Dick The Odyssey Note
Droid HW keyboard 166 CPM / 30 WPM / 100% accuracy 166 CPM / 34 WPM / 100% accuracy landscape mode, thumb-typing, both hands
Stock Android 2.1 115 CPM / 19 WPM / 100% accuracy 112 CPM / 24 WPM / 100% accuracy portrait mode, thumb-typing, one hand
MessagEase 87 CPM / 15 WPM / 100% accuracy 91 CPM / 19 WPM / 100% accuracy portrait mode, thumb-typing, one hand
8pen 62 CPM / 12 WPM / 100% accuracy 54 CPM / 11 WPM / 100% accuracy portrait mode, thumb-typing, one hand

Note: The 100% accuracy means, that any time I made a typo, I corrected the typo before proceeding further.

The fact that the hardware keyboard comes out as a winner is not a big surprise to me. This confirms the tests I did on the HP OmniGo palmtop many years ago. I was about 2x as fast thumb-typing on its calculator-like qwerty keyboard than using the Graffiti handwriting recognition. What comes as a surprise, is the fact that the stock Android soft-keyboard fared better the alternatives, even though the perception during the regular usage tells otherwise. Between 8pen and MessagEase, the later one fared batter. MessagEase is also faster to learn: after just one day trial, I could already type faster on it than after one week on 8pen. The bad thing about MessagEase though is that it does not work well with the hardware keyboard in the landscape mode. Ideally, I would like to use the built-in keyboard driver in the landscape mode and restrict MessagEase to portrait mode only, which is not currently possible.

Thursday, February 3, 2011

Why SaaS and Cloud Computing make IT fun again

If you had asked me five or even three years ago what I thought of IT, I would probably replied that I had enough of IT for the rest of my life. Computers were fun in 90's when I was a student, but after the year 2000, with the increasing industrialization and maturity of the IT industry, things were starting to become boring for me. IT was no longer that exciting mix of science and art. This was especially the case of the enterprise IT as low cost country outsourcing turned the software development and enterprise integration into a full blown industrial process with lack of creativity: Armies of anonymous software engineers implementing endless customizations of a questionable business value, all this driven by multi-month waterfall projects and roll outs. Well, I exaggerate here a bit, I agree. ;-)

It was the rise of Software as a Service (SaaS) which changed the rules of the game. By running a single multi-tenant instance of a service on top of a hardware and software stack of their own choice, SaaS vendors are able to completely avoid the costs of supporting a platform matrix - multiple hardware architectures, operating systems, database engines and middleware platforms. They save additional resources by actively supporting only one version of their software at a time. By preferring configuration over customization, the ability to let customers implement limited changes while still maintaining a single code base and a single physical instance of a service , the costs of implementation and maintenance - especially upgrades - are also significantly reduced. Overall, SaaS allows to focus much more resources towards productive use as opposed to unproductive technicalities which plague the traditional behind-the-firewall implementations and ISVs.

The above productivity gains together the centralization brought about by running a single instance of a SaaS app caused another indirect change though: Armies of software engineers are no longer needed or desired. When building a SaaS application, you need a small SWAT team of engineers of exceptional qualities rather then a large infantry of average coders. The reason is that you need to move very fast and be extremely flexible in order to react to changing circumstances. Sure, managing a team of exceptional individuals brings difficulties of its own kind: strong opinions, clashing egos, flame wars over programming languages and architectural approaches. One has to work hard to keep the team together as opposed to ending up with a bunch of eccentric individuals. But I still prefer dealing with these problems and work once again in an environment, where creativity and smarts of a small team can win over a much larger and well equipped competitor.

What do public clouds and Platform as a Service (PaaS) such as AWS bring on top of SaaS? I believe the key features are democratization, elasticity and raised level of abstraction. By democratization I mean the fact, that in the age cloud, everybody, even a small startup, can afford to run its service on a world-class infrastructure. Elasticity of public clouds brings the ability to grow and shrink capacity in matter of minutes - at GoodData we grow our platform month-on-month at double-digit rate since summer of 2008. Capacity planning in case we had to procure and provision physical hardware would become a nightmare. And last but not least, raising the level of abstraction, realized by utilizing higher-level platform services and management APIs, allows cloud-hosted SaaS vendors to focus yet more energy towards their core competencies, rather than developing and maintaining the low level platform stack.

Eventually, I am glad that I did not succeed departing the IT industry five years ago, because I would miss the paradigm shift which is changing the whole landscape of IT these days. I am glad to be a part of that seismic shift.