Thursday, April 23, 2009

GIDS.Java

Day 3 of the Great Indian Developer Summit had its key focus on Java, and Enterprise applications. The conference saw a sea of delegates from the major IT companies all around Bangalore. The usually quaint and quiet premises of IISc was today beaming with techies and nerds noisily discussing their favorite programming language or tool. Age was no bar here. The gray haired were as much (if not more!) geeky as the college pass-outs (or drop-outs!). Organized by Devmarch, the conference had the likes of Microsoft, Yahoo!, IBM, Adobe, Red Hat, Intel for its sponsors.

The attendees had various things to choose from. There were sessions conducted by leading speakers in the industry. There were expos hosted by the sponsors. There were workshops; after all what's programming without some hands-on! And of course there was a lot of opportunity and scope for networking with the speakers and attendees.

Sessions for the day were grouped in five parallel tracks. They dealt with the key technologies like cloud computing, RESTful web services, Ruby on Rails, Groovy, Agile development and Ajax in addition to Java of course.

Craig McClanahan, the creator of Struts started off the morning session with an insightful talk on Cloud Computing. It means different things for different people. For some it is Software as a service, for some it's virtualization, for a few it is utility computing, grid computing, and for others it is application hosting platform. Truth is that it is a combination of all these and more and has created a lot of buzz amongst the enterprises and developers alike. What's driving their interest is the low cost and agile business model that the cloud promises to achieve. The pay as you go economic model, the rapid, self provisioning and API driven development model and the flexibility offered through standard, elastic, on-demand services is attractive to one and all. There are many clouds out there and Craig spoke about what they all share and what they don't. He also highlighted the three layers in cloud computing - Software as a service (SaaS), Platform as a service (PaaS) and Infrastructure as a service (IaaS) from top to bottom. These are the primary areas where the vendors are focusing be it Amazon Web services and EC2 or Google App Engine or Salesforce.com. At closing he introduced the upcoming cloud platform of Sun (or Oracle!) and hinted on the announcement of the Sun storage and compute services at JavaOne (shhhh!).

Jim Webber, author of "Developing Enterprise Applications - Architect's guide" conducted an engaging session on Introducing REST - the Starbucks example. He used the Starbucks coffee shop example to drive home the RESTful paradigm of web services. He started off with the Richardson Maturity Model - a model of technologies stacked up based on the level to which they embrace the web. The stack has the traditional RPC at its peak and then moves down to technologies that use URIs, web services and finally to REST that completely embraces web. REST is all about resources, their states and how they can be accessed with URIs. It's quite hard to believe that what was always there around us (meaning the web) eluded us all with it's power and scalability. While we focused all the energies on building middleware to support the integration, scalability, security and other "abilities", it was all already there in the form of the web. Jim talked about the HTTP implementation of REST, the CRUD operations using the POST, GET, PUT and DELETE verbs, and how HTTP supports metadata in its header. He also stressed on the microformats and media types that are again intrinsic to a RESTful implementation. Jim's humor, the informal style of presentation and animated hand waving was very well taken by the audience. Needless to say that it kept them all engaged and on the edge of their seats!

Last session for the day was one on testing Java with JRuby. It was delivered by another Thoughtworker Ola Bini [Ola Bini blogs]. Now this was a very interesting topic. All the more for me as I had been thinking about this for some time now. Since the dynamic languages are known and used for stitching components, using them for testing is a natural extension. Especially when one has to come up with the test code quickly (which is usually the case), JRuby can be of great help. And its many gems provide added capability for avoiding repetition, and for writing plain text stories and scenarios. Bini kept shuffling between the presentation and demos and did complete justice to the topic.

Kudos to the organizing team. With over 3000 attendees at the conference, the logistics was well handled. The sessions were well timed and but for a couple of changes to the agenda, all the others started and got over on time. The only grouse was the long queues and crowd at the dining area; some arrangement there would have helped. And did I say that the food was awesome! :)

~Ashish

Sunday, April 12, 2009

REST explained

Came across this funny yet revealing post of this guy explaining REST to his wife. It's simplistic and comprehensive starter on all that is REST.

REST to my wife

~Ashish