Sunday, August 30, 2009

Cloud Taxonomy

'Cloud', probably is the most over used word in the IT Industry in 2009. Big enterprises to small start-ups alike are rushing in slew of cloud based products to rake in first mover advantage. The usage of the term 'cloud' is getting muddled in the process.

I was pleasantly surprised to see a Forrester research paper on a 'Proposed Cloud Taxonomy'. Sharing the excerpts to clarify confusion around what 'Cloud' really means.

The article proposes to map all cloud flavors in the following two dimensions:
- Level of Sharing: Extent of sharing infrastructure services or business applications with other companies and tenants
- Business Value: Complexity of business process

As the diagram suggests, most of today's existing software products and services can be positioned along a level-of-sharing axis and a business value axis. The illustration uses a cloud symbol for services that will resonate as cloud services, while a squared box represents other concepts that should not be simply relabeled as cloud services.

Tuesday, August 18, 2009

Mobile application development - made easy!

After my fair share of procrastination, I finally succumbed to the charm of mobile application development. However, as the initial enthusiasm subsided, the reality struck..i.e where to start? Should I start learning Objective C?!@# malloc’s and calloc’s are certainly not my forte. Should I brush-up Java? or JavaME? will it work on iphone?

I chose the easier path out. I set-out to find cross platform tools, which can accelerate native mobile application development. To my surprise there are quite a few tools out there catering to wannabe mobile developers like me.

Here are my favorite picks:

Rhodes –

My Ruby developer friends will love me for sharing this (if not using it already). Developed by Rhomobile – free under GPL v3, easy pricing for commercial usage. The framework is referred to as "Ruby on Rails" of mobile development. It provides MVC framework (Model with – RhoSync & View and Control using Rhodes). Provides deep cross platform support, with application once developed can easily be deployed to iPhone, Blackberry, Windows Mobile, Symbian(! if still stays afloat after Nokia dumps it) and 'of-course' Android.

For iPhone fans: Support for native iPhone features is the best in the breed. Rhodes supports geolocation, camera, contacts, accelerometer, SMS, push, road map and audio / video capture.

One more interesting stuff, use of rhohub for distributed development and easy packaging of applications.

Phonegap –

By far the most widely used cross platform framework in the mobile world. Phonegap is developed by Nitobi – free under MIT license. Developing applications in Phonegap is as simple as it gets. All you need to know is Javascript and HTML. Provides cross platform support, portable to iPhone, Blackberry, and Android.

Provides decent support for native iPhone features such as geolocation, accelerometer and contacts.

Downside: you still may need to learn Objective C for executing server side action. Off-late Apple appstore has rejected some of the Phonegap developed apps under pretext of compatibility issues with future iPhone OS and the use of unsupported 3rd party APIs.

Titanium –

Developed by Appcelerator – free access to beta version – licensing is evolving. Easy to develop application using Javascript and HTML. Provides some sense of cross platform support, with option to port applications to iPhone and Android only.

Titanium provides decent support for native iPhone features such as geolocation, accelerometer, contacts and photos. Better integration with underlying apple libraries enables more standards compliant results.

Corona –

Developed by Ansca – free access to beta version – licensing is evolving. Uses Lua scripting language to develop applications. As of now, Corona enables application development for iPhone only.

Corona provides access to iphone file systems. Support for other native iPhone features such as camera and accelerometer is still under development.

Corona provides built in support for flash, hence has its advantages for development of two dimensional gaming applications.

As I make up my mind to take the plunge (leaning more towards Rhodes), please feel free to share your pick and experience on working with cross platform mobile development tools.

Thursday, August 13, 2009

Google Caffeine

Google unveiled their next-generation search technology, a project code-named Caffeine. As google puts it, "It's the first step in a process that will let us push the envelope on size, indexing speed, accuracy, comprehensiveness and other dimensions".

Being cynical (of all tall claims) the way I am, I set-out to verify the developer preview site of google caffeine. My tried and trusted search query for testing out any search engine is my (relatively unique) full-name and I tried the same on both google sites (the one live vs the developer preview site).

And the result.. Google Caffeine works..

At least it's faster and more comprehensive (77400 hits in 0.11 secs with Caffeine vs 77300 hits in 0.17 secs in the current google site)
- on a separate note Bing gives me 355 hits only :-(..but hey! isn't it a decision engine?

Back to caffeine - User Interface is unchanged, ordering of search results is nearly same..I couldn't make out if there is any improvement in accuracy..may be that part is still work in progress!

While I eagerly wait to see Caffeine live in action, I can't help but wonder 'what's next'

Saturday, August 8, 2009

The Meta Cloud - Part II

The Meta Cloud concept (my earlier blogpost introducing Meta cloud) has taken a step closer to reality.

Cloudkick (a San Jose based start-up) unveiled an open source project named libcloud, which aims at providing a single programming interface for a host of infrastructure clouds such as Amazon EC2, Rackspace, Slicehost and GoGrid. For example, using libcloud you can make a single API call to potentially reboot your server instances across Amazon EC2, EC2-Europe, Slicehost and Rackspace.

In long run, the plan is to extend these Python based APIs to cover more and more infrastructure clouds such as Linode, Flexiscale and the open source Eucalyptus. If things go as planned, this concept can potentially enable partial interoperability, there by breaking the biggest entry barriers for enterprise adoption of clouds.

For those of you interested in contributing to libcloud project, here is the source code on Github.