Wednesday, April 20, 2011

GoodData Innovation Machine

On Tuesday April 12, coincidentally on the 50th anniversary of the first human space flight, GoodData have launched Release 50 featuring GoodData Sales Analytics for Salesforce. I took this special opportunity to look back and recap the journey from the "R1" as we call it internally to the latest "R50". Continue reading GoodData turned 50 in just 32 months! on our developer blog.

Sunday, April 3, 2011

One Week on Froyo

Late March 2011 Motorola has finally begun to roll out Froyo for Milestone in Europe. Yesterday, it's been a week since I upgraded my Milestone from Eclair to Froyo, so here comes a list of first impressions:

The Good Stuff (Pros)
  • Move to SD is great stuff, I have been fighting with insufficient space on internal drive for most of the last six months.
  • New breed of Google Apps including Gmail with Priority Inbox and Calendar with enhanced sync for multiple Google accounts represents a big productivity boost for me.
  • Overall, many apps with Froyo-only features such as push-sync in RememberTheMilk or SHOUTcast radio support in WinAmp make the phone much more up-to-date.
  • The switching back and forth between Flight Mode and normal mode is reliable in Froyo (this has been huge annoyance in Eclair)
  • I have not experienced a single spontaneous restart during the past week.
  • The Flash support in the Browser also comes handy - no more websites with the annoying blue missing plug-in logo.
Not so Good Stuff (Cons)
  • Something is clearly broken in the Home screen applet - going back forces the whole screen to refresh, which is very slow and can take several seconds to complete. Probably as a result of this, the dedicated Home button sometimes does not seem to react at all. I usually press-and-hold the button to get straight to the list of the last 8 apps to switch quickly between the apps. I use the Home screen as last resort only.
  • The dedicated Search button is even worse - it seems that it registers clicks at about 50% of occasions. If I hold it a little bit longer, the Voice Search pops-up instead, which is pretty annoying.
  • The phone hangs for couple of seconds from time to time, but then resorts to normal operation. I suspect, there is some memory issue in Froyo, causing the operating system to keep closing and re-launching apps much more often than it used to be in Eclair
  • I disabled all window animations in Settings and disabled live wallpaper on the Home screen which somewhat improved the speed of re-draw but still has not solved the problem so far.

So far so good. I am glad Motorola has finally made it, because I am afraid that otherwise the Milestone would not last much longer - the amount of Froyo-only and Froyo-enhanced apps and the severe internal drive limitation were basically killing the device. The new release (Android 2.2.1) packaged together by Motorola is definitely usable even though it has its flaws.

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.