Archive for May, 2007

Google Developer Day Report

Thursday, May 31st, 2007

Spent the morning and part of the afternoon at Google Developer Day.

Google sure knows how to throw a party! Plenty of free food and drinks, a pool table, bean bags – you get the picture :-)

On a more serious note, they made several new product announcements – Google Gears, Google Mashup Editor and a new version of Google Web Toolkit.

Gears is an open source project (BSD license) done in partnership with Adobe’s Apollo. Gears has three components to it – a database (SQLite)  for offline data storage/access, a local server for storing and serving pages/scripts while offline and a utility to create worker thread pools (for any heavy computes on the client – not sure a lot of people are going to need this unless they are doing serious analytics – I’m sure Google is planning some use for it). Google Reader is the first Google app to be Gears enabled – the guy demoing the app wanted to show how it works when disconnected and had a lot of trouble getting off the network! (he unplugged his network cable and his wireless came on). I think this is really a sign of things to come. I personally believe that putting a lot of effort in to support disconnected access is a temporary thing and a likely waste of resources. I believe that thinking of interesting possibilities in a continuously connected world is more worthwhile …

Google Mashup Editor was not so impressive – at least with the short demo I saw. To be fair, I should check it out before spouting, but hey, that hasn’t stopped me before :-)  Seemed like a bunch of HTML/XML hacking required – lots of sleight of hand involved in the demo to make it look easy – the guy clicked on links titled step 1/2/3 and voila! more HTML/XML appeared in the editor pane …

I’ve never been a real fan of Google Web Toolkit. I tried it sometime last year and it sucked! There was a lot of stupidity with carefully naming interfaces/classes/methods a certain way to make sure everything linedup right. The programming model mimicked the classic GUI development model which is pretty outdated – I like using markup for describing UIs – to me its the single best thing about XML. Looks like a million people checked it out over the past year -  no mention of actual uses …

In the afternoon, there was a very interesting talk about Google’s compute infrastructure. Google apparently uses the cheapest hardware it can lay its hands on and uses lots and lots of it. They have several layers of abstraction to make it easy for their programmers to create applications over this massive hardware infrastructure. They seem to have optimized for a class of computing problems – very large scale query/analysis on entities that are essentially bags of attributes. GFS is their lowest level distributed storage engine. BigTable provides a SQL-like abstraction over GFS. MapReduce allows programmers to collect attributes of interest from a collection of entities in the first phase (Map) and then do analysis on the values of the attributes in a second phase (Reduce).

Attendance was quite heavy – 1500 at the San Jose Convention Center venue and 5000 worldwide. I bailed early, the event was scheduled to go on until late in the evening, ending with a dinner at Google’s Mountain View headquarters. I’m sure the event will be bigger next year with invited talks as well (this year was Google only). Looking forward to it …

Personalized supply chain

Monday, May 28th, 2007

The other day, I was ordering some diapers from Amazon for my son and I was asked if I wanted to “subscribe and save”. Found out if I set up a repeating schedule for the delivery of diapers, I get a 15% discount. Seemed like a really good deal – besides a price cut, I don’t have to deal with remembering to order every ever so often and Amazon gets all my diaper business.

When talking to my brother about it, he brought up a really good point – what Amazon has done here is to extend the supply chain all the way to me, the end-customer. They’ve gotten to the ultimate level in efficiency! I guess we will be seeing more and more of this type of personalized supply chain in a Web 2.0 world. Be pretty cool if this happened with other aspects of our household consumption – especially with groceries like Milk, Bread and stuff – I definitely do not enjoy making those late night trips to the store …

The future of education

Saturday, May 26th, 2007

Yesterday, I had an opportunity to observe firsthand what I believe to be the future of education.

I had accompanied my daughter and her class of fifth graders on a day long field trip to the Chabot Space & Science center. The kids had a fairly packed agenda, but the centerpiece of attention was a 2 1/2 hour session titled “Mars Mission”. The “Mars Mission” turned out to be a simulated exercise set in the year 2076 where the kids had to land a spacecraft on Mars and do a crew exchange (get a fresh crew to man the Mars control center and get the current crew back to Earth).

A few days before going on the trip, the kids had all applied for various jobs on the mission (Navigator, Data Specialist, Communications Specialist, Medical Specialist, Isolation Specialist, etc) and had all received some preliminary training related to their assigned jobs.  They had also been split into two teams (one team going into Mars and the other leaving Mars).

When they got to the center, they were all taken to a briefing room and given instructions about the mission. Then each team got into a separate room – the kids going into Mars were put in the Spacecraft room and the kids leaving Mars were in the Mars Control room. Each room was fully equipped with specialized stations for each of the teams. They had keyboards/monitors, headsets, robots, control panels, etc – very realistic (BTW, the whole thing ran on a network of Macs which explains why nothing crashed …). For the first hour, they worked through the drill of landing a spacecraft on Mars and for the second hour, the kids switched rooms/roles and worked on getting the spacecraft off Mars. Throughout, kids sitting in the control room gave instructions while the kids in the spacecraft carried them out. They worked as a team while focusing on individual assignments. There were lots of emergency drills (to be expected of course) which the kids had to work through.  All in all, it the kids were put into a lifelike setting and asked to go through a set of practical exercises which taught them lots of valuable lessons.

In a global economy that is going to increasingly value creativity and need team skills for execution, I believe that this exercise was invaluable for the kids. If only they could do much more of this type of activity instead of continuing to plod on with antiquated methods of education …

AJAX/RIA : No Clear Choice

Monday, May 21st, 2007

It seems pretty clear that AJAX/RIA as a concept is here to stay.

It represents the next natural step in the evolution of application architecture. We started with a thin client talking to a single server in the Mainframe era. We then moved to a thick client talking to a single server in the Client-Server era. With the advent of the web, we had a universal thin client (the browser) that could talk to multiple servers. Now, with AJAX/RIA, we are moving towards having thick clients hosted within a universal framework that can talk to multiple servers.

Now, if only we could all agree on what the universal framework is going to be :-)

There are really three major camps I can see:

  •  Just the modern day browser – thick clients all use JavaScript/XHTML/CSS
  • Browser augmented with Adobe’s Apollo runtime – thick clients can use JavaScript/XHTML/CSS or use MXML/ActionScript/CSS
  • Browser augmented with Microsoft’s Silverlight runtime – thick clients can use JavaScript/XHTML/CSS or use XAML/CLR/CSS

At first glance, it seems like JavaScript/XHTML/CSS would be a logical choice for anyone implementing a thick client because it is the lowest common denominator. However, there are strong motivations to use Apollo or Silverlight – the current browser is not a great environment for hosting thick clients. Security is probably the biggest hole.  Now the confusion sets in – one essentially has to bet on either Adobe or Microsoft. Be nice if there was some consensus built on how the browser as a platform needs to evolve to support running thick clients instead of having everyone pick sides …

Genius at work

Sunday, May 20th, 2007

I highly recommend checking this video out. It is about Akrit Jaswal, a twelve year old Indian boy who routinely performs surgery based on knowledge acquired from reading reams of medical books and journals!

I’m sure everyone has read historical anecdotes about geniuses and the troubles they undergo through to get their message through. What is fascinating is that we now have a live example of such a story unfolding amongst us. From the video it is clear that Akrit is really confident and knows what the heck he wants to do and the establishment does not know how to deal with him; so it decides to undermine his confidence and slow him down. I think that simply sucks!

I think in this Web 2.0 world that we live in, we have a really unique opportunity to collectively support Akrit in his quest. Stay tuned for more details. If you would like to be involved, please drop me a comment.

Getting rid of junk mail

Friday, May 18th, 2007

A friend recently told me about a for-fee service offered by GreenDimes to get rid of junk mail. GreenDimes charges $36 a year and promises to get rid of junk mail and plant a tree each month.

Did a bit of digging around and discovered what seem to be a couple of relatively simple and low cost steps that promise to do the trick as well:

  • The Direct Marketing Association appears to offer consumers a service for a $1 fee that prevents mail from DMA members for a period of 5 years.
  • The major credit reporting agencies have a site for consumers to stop receiving credit card offers (we seem to get about one every day on the average).

I tried to figure out what additional features were offered by the GreenDimes service – they appear to hint at covering a proprietary list of junk mail sources in addition to the ones above and also seem to offer a level of customization in terms of being able to receive certain types of junk mail if desired. For now, I think I’m going to stick to the cheaper DIY method and see how well it works before I fork out more money …

SOA based on WS-* is fundamentally flawed

Thursday, May 17th, 2007

All this while, I used to think SOA based on WS-* (see W3C and OASIS) would likely not scale because of the complexity involved in understanding and using the WS-* specs. Now I’m firmly convinced that SOA based on WS-* will never scale because the entire philosophy and thinking that is driving it is fundamentally flawed. Let me explain.

The idea behind SOA as a concept is loose-coupling, i.e. about a large body of applications that co-operate with each other to produce more powerful super-applications. If you look at the thinking driving SOA based on WS-*, it is all about tight-coupling, i.e. about a large body of applications that are extremely well co-ordinated to produce more powerful super-applications. Co-ordination instead of co-operation – therein lies the flawed thinking.

Co-operation is a notion that can be made to work on a large scale with few guiding principles/standards (the web is a wonderful example; others are the movie industry using DVDs, printer industry using letter size paper, etc). It is not easy to achieve, but it is feasible. Co-operation allows for individuality while enabling a shared goal to be achieved.

On the other hand, co-ordination on a large scale is practically impossible to achieve (an army like the US army, the New York Philharmonic Orchestra are some examples of co-ordination). Co-ordination demands extreme discipline and control. Individuals do not matter, only the common goal does.

Everything about SOA based on WS-* tries to achieve co-ordination (the specs themselves and all the grand talk about ESBs, governance, lifecycle management, meta data repositories, etc).

Co-ordination is extremely appealing because it promises ultimate efficiency. This is probably why enterprises are taken in by the SOA based on WS-* sell. With enough time, when it becomes apparent that they’re chasing a fallacy, people will come to their senses and do something much simpler to achieve co-operation that may be messy and not so efficient, but it sure as hell will work.

New and improved Yahoo Maps

Thursday, May 17th, 2007

Played around with the new and improved Yahoo Maps and must say it is very slick. Yahoo has done a very nice job of integrating local data with their maps – unlike Google Maps where you have to first search for businesses to have them show up on the map (this search typically produces a lot of garbage), Yahoo has a nice browse feature which lets you get to the popular businesses really quickly (and the data quality is very good). Performance also seems quite good – I even switched to satellite mode and the transition happened fairly quick.

I guess the next round of map wars is officially underway – be fun to see how Google responds :-)

Why JSON beats XML

Tuesday, May 15th, 2007

Last summer I had the opportunity to implement a library that serialized Java objects to JSON strings and de-serialized JSON strings to Java objects. I know I should have used one of the umpteen existing libraries – but hey, I was suffering a temporary bout of NIH :-)

When doing this work, I realized how JSON has really hit upon the sweet spot of data interchange. There are really only two data structures that matter for any sort of data interchange between applications – arrays and hash maps (I’m including any arbitrary combination of the two – for e.g. a hash map of arrays of hash maps). By focusing on these two cases alone and providing a very compact representation, JSON has really nailed the problem of simple and efficient data interchange between applications.

Wasn’t XML supposed to solve this problem ? Well, XML is neither simple nor efficient from a data interchange perspective.

Schema introduces serious complexity when using XML for representing data while not serving any really useful purpose as far as I can see. Most of the issues with dealing with data from foreign sources have to do with interpreting the semantics of the data. Schema only helps with hints about the structure of the data; this is marginally useful and definitely not worth the huge effort involved in defining Schema. Only in the rare case where a certain structure is very widely accepted and used does Schema even begin to make sense.

Now, one could argue for using XML without Schema and I am willing to bet good money that most of the use of XML in the real world is without Schema. But in this case, the other failing of XML – that of efficiency creeps in. XML is too verbose because it was designed to be very general.

JSON has another huge advantage – besides its origins in JavaScript, it has a natural affinity with dynamic languages like PHP, Ruby and Python. Arrays and hash maps are very widely used in programs written in these languages – therefore dealing with foreign data (de-serialized from JSON strings) is no different than dealing with local data. No specially convoluted and over-engineered APIs to learn or use. XML, try and beat that :-)

The business of funny

Monday, May 14th, 2007

Met brothers Sandeep and Rajiv at a social occasion the other day – they are the brains behind EffinFunny, a web site that offers professionally created video clips from up and coming as well as established comedians. While the site and content are really cool (I highly recommend you check it out for yourself), what is very interesting is how the company is aiming to change the business of stand-up comedy. I think it is another great example of what Web 2.0 is really all about.

EffinFunny uses professional resources to videotape comic performances at live shows they organize once a month (currently in L.A. only). The company then applies a rigorous editorial process to distill the best content from these performances and releases this content on its site. Anyone who wants to is able to try out at their shows – there is no pre-qualification.

What EffinFunny is doing is creating an open and efficient marketplace for comic talent. Folks visiting their site get high quality content from the best up and coming comedians – they don’t have to sift through digital garbage like they need to at sites like YouTube. The up and coming comedians get to show off their wares without really worrying about issues unrelated to their core competence like making slick videos. Anyone looking to hire/use new comic talent gets to see the comics in action and compare them with their peers in a cost and time effective manner. All in all, Web 2.0 at its best.