Friday, March 24, 2006

What do you need to do today to take advantage of the Web 2.0 tomorrow?

Companies with an Internet presence must acknowledge the fact that the web is changing rapidly. The term Web 2.0 was coined to express this fact. Many people agree that the changes are mostly cultural and social in nature, not necessarily technical. Nevertheless, certain technical aspects are included in most definitions. Among the technical characteristics of the Web 2.0 are

  1. rich internet applications with Ajax,
  2. user-generated content, the blogosphere with phenomenons such as consumer-generated content, social networking and social marketing, or folksonomies
  3. mashups - web applications that combine data and services from different sources to form new functionality,

All of these things are related to each other and they affect the way people use the Web in a combined way. Therefore, they affect you and your business. Ajax and the Web 2.0 has until now mostly kept geeks and Internet professionals on their toes, but few businesses have started to adopt the new trends. I believe that we are at a very early stage of something new and that the rate of adoption will increase rapidly over the next few months.

I absolutely think every organization that needs to keep their fingers on the pulse of the public needs a way to mine/monitor consumer generated content. The government included. (Steve Rubel, Marketing Strategist)

So, what should you be doing to be prepared? Let's take a brief look at each one of the technical trends that collectively form the Web 2.0.

Ajax and Rich Internet Applications

Rich Internet applications and widgets can either enhance the user experience of traditional page-oriented web sites, or replace them completely. Users are becoming more accustomed to finding interactive pages and will have less difficulty mastering the shift of metaphors between RIA applications and HTML pages in the future.

This is an opportunity for web designers to enhance existing applications with features such as auto-completion and validation-as-you-type for data entry forms, single-page functionality and configuration wizzards. Interesting and very effective data filtering and search applications can be built with this technology. There are already many existing examples out there.

Here is a word of caution. It is all too easy to go overboard with interactive features. Do not convert existing funtionality unless there is a good reason. Use Yahoo's design pattern library to validate your approach.

User-generated Content

User-generated content, in my opinion, is the biggest opportunity that the Web 2.0 brings to you. It all started with users reviewing and commenting on products on sites like amazon.com and epinions.com. Today, blogs and Web 2.0 related services such as social bookmarking sites are forming a sizeable piece of the web. Marketing experts have recognized this trend a while ago and have started to adopt it. Social marketing on the web is becoming an increasing part of the much larger trend of word-of-mouth marketing, which leads firms away from traditional channels such as radio and TV advertising.

Let's look at some early adopters in order to better understand how you can benefit from this trend and use it to generate traffic on your site. The basic recipe seems to be: generate attention within the blogger community, utilitze Web 2.0 infastructure such as blog search sites and social bookmarking sites by providing basic integration with these services, and let the community drive traffic to your site. Recent examples include the Most Blogged on the New York Times web site, or the ability to tag individual articles through an integration with Del.icio.us on the Washington Post's site.

Mashups

The value of services on the web was determined in the past by the underlying data more than by functionality. I believe, for example, that Googl's map service rose to popularity so quickly not because of the ability to scroll and pan maps dynamically (many people still do not know that this functionality exists), but because of the quality of the maps and the aerial imagery. By combining data that powers different service providers into a single new offering, even more valuable services can be created. This is the idea behind the wave of mashups. The programmableweb.com maintains a reference matrix by pairing existing services with each other and documenting where such a combination has been built.

It is not fully clear if and how this trend will impact business sites. On one hand, there is much uncertainty about the legal grounds on which data from various sources is combined (most of the sites that appear in the programmableweb's matrix are experimental and non-commercial). Google, for instance, is selective about who gets permission to use data from their infrastructure. Some site have been excluded from accessing Google in the past.
On the other hand, there is so much potential for driving traffic and creating revenue with this technology. New business models have yet to emerge to show the way how this can be done most effectively.

Read about my thoughts about how the Web 2.0 affects the business of web consulting at Donner's Daily Dose of Drama.

Wednesday, March 15, 2006

Ajax seminar in NYC notes

On Monday March 13th two colleagues of mine, Glenn and Christian attended an Ajax Seminar in NYC. They wrote up some notes with their impressions:

Some background: Ajax is not really a new technology. Instead, it's a collection of older technologies (late 90s-early 00s - JavaScript, CSS, DHTML, XML, etc) that are being combined together in a new way -- to produce an "asynchronous" browsing experience.

Put simply, the end result of using these technologies in the Ajax-fashion is that users can interact with a web page, and that web page can update small sections of itself without doing a full "browser refresh".

This was the first conference focused on Ajax, and there was an air of skepticism mixed with excitement. The range of presenters was diverse, discussing high-level UI design, detailed UI design, and a number of different technical approaches (some contradicting each-other).

___


The vibe from a User Experience perspective was that this technology allows technical capabilities on par with Flash/Flex, in terms of immediate responses, page activity occurring in the background, slick use of visual effects, transitions, etc.

One constant was the caution of not using Ajax just for the sake of it -- focus it primarily on high-interactivity areas.

The following presentations focused on the User Experience:


* Jesse James Garrett (Adaptive Path) coined the acronym AJAX ("Asynchronous Java and XML") to come up with a vocabulary word to encapsulate this combination and usage of technologies.

Jesse spoke on how Ajax changes the classic request-response web paradigm into one of constant, multi-threaded, asynchronous interaction, which opens new doors in terms of how users can interact with the web.

His original essay on Ajax is along the same lines.


* Bill Scott (Yahoo) spoke at length about UI patterns, which "describe an optimal solution to a common problem within a specific context".

He showed us Yahoo's new UE design pattern library, which attempts to concisely describe UI patterns such as:

- Auto-Complete
- Breadcrumbs
- Drag and Drop Modules
- Navigation Tabs
- Pagination
- Ratings

These are very detailed, and I'd think would be of interest to both UEs and Engineers in terms of functional requirements -- look here for an example.

Bill's blog can be found at http://looksgoodworkswell.blogspot.com/ .

___

Most of the other presentations were more technically-focused.

In the technical Ajax community, there an interesting divergence in opinion regarding what exactly should come across the XMLHTTPRequest pipe -- Model data, or View data.


* Kevin Hakman (TIBCO/General Interface/Perficient) gave us a sales pitch that described TIBCO's "General Interface" offering. This software allows users to visually construct a user interface which is ultimately rendered as a very fat JavaScript client.

They advocate using the request pipe purely to transact XML model data, and to build the entire MVC framework in JavaScript in the Web Browser.


* David Heinemeier Hansson (37signals), the creator of Ruby on Rails (!!!), begged to differ -- his approach of using Ruby on Rails with Prototype (a browser abstractor) and Scriptaculous (a DHTML scripting library) results in the web browser acting more or less like a frame-set and tile-set, with the server passing exclusively HTML snippets over the pipe.

David's approach has a number of advantages (lightweight client, memory leak avoidance, lower latency, generally improved performance, security, architectural elegance, etc.), but particularly interesting was that his demo would automatically function in a basic (fallback) mode if JavaScript is disabled. This would be tremendously important for sites that must adhere to accessibility standards.


* Rob Gonda, Editor-in-Chief of AJAX Developer's Journal and CTO of iChameleon, gave a rather dry presentation that essentially agreed with David's approach (transmit the View, not the Model) for other reasons -- specifically, security. Rob discussed a number of ways to address security concerns with Ajax technologies.


Our takeaway from this Model vs. View topic was that the Hansson/Gonda approach of sending only HTML View data over the XMLHTTPRequest should be used unless your client has specific needs necessitating an extremely heavyweight client.


Most of the rest of the presentations were sales-oriented, including:

* Christophe Coenraets (Adobe) showing how Flex can extend Ajax. The highlights were:

1.) Flex server is now free
2.) Using Flash/Flex events/sockets to send binary data around is useful (i.e. browser-to-browser streaming webcam video, for example for a CSR app)
3.) Using Flash/Flex events/sockets to PUSH data to the client is powerful

A particularly cool demo showed how one user's browser action could instantaneously affect the screen of another user. (David Hansson followed up on this and showed it working in conjunction with Rails). PUSH technology is coming back!


A number of presenters discussed Ajax toolkits / frameworks - there's a ton of competition for this space, and no real leaders as of yet (except Atlas for .NET)

* Sahil Malik showed telerik's R.A.D. Controls module, which essentially allows you to easily change .NET Postbacks into AJAX Callbacks, preserving the ViewState and all that. Interesting for .NET AJAX developers (not sure how it plays with Atlas)


* Scott Dietzen (Zimbra, formerly an exec at BEA) tried to sell us on Zimbra's "open source server and client technology for next-generation enterprise messaging and collaboration" (which uses Ajax heavily).


* Ross Dargahi (IBM) talked a bit about IBM Alphaworks (Apache)'s Ajax toolkit options, including Eclipse ATF (Ajax Toolkit Framework) proposal and Apache Kabuki (http://wiki.apache.org/incubator/KabukiProposal).

Seems like neither of these are officially out yet, but they were showing demos so I bet the alphas/betas are available.


* Jouk Pleiter (Backbase) talked about his company's toolkit / framework - http://www.backbase.com/ .

___

Some other quick tech takeaways:

* JavaScript is bad - use other technologies to abstract yourself from it

* You can never fully abstract yourself from JavaScript -- you will have to write some.

* Browsers were not meant to be Ajax platforms. Memory leaks are a real problem, especially in IE.

* Everyone grudgingly respected Microsoft's Atlas Ajax toolkit.

* Testing Ajax (unit or performance) is hard. No software framework has emerged as a leader yet.



Overall, the seminar was very exciting. It seem inevitable that Ajax will work its way into the web and our work at Molecular, once our clients start losing ground to their more innovative competitors.

It definitely opens up new doors for what can be done on the web -- it will be interesting to see what people can dream up.


I don't necessarily agree with the
JavaScript is bad
quote but it's just another way of saying: use frameworks as much as possible!

Technorati tags: , ,