There has always been a debate about the definition of the term "Web 2.0". Back in 2004, Tim O'Reilly first introduced the term "Web 2.0" as the business revolution in the computer industry caused by the move to the Internet as platform, and an attempt to understand the rules for success on that new platform. However, since then, the term "Web 2.0" has gained new dimensions. In another common point of view, Web 2.0 applications are observed in terms of usability; how close does a web application's usability and performance approach those of desktop applications. Regarding both definitions, meOwns is truly Web 2.0.
meOwns web widget, It's all in
meOwns widget can be considered as a perfect example of packing a maximal set of features in a minimal screen space, at the same time that usability and performance are given the top priority. The user interface is intuitive and almost everything is done in place without leaving the current web page. The widget owner can manage his collections from within the widget. He can add, edit and delete collections and items, and even upload pictures to items through the easy to use widget interface. Anybody else can view the widget and play around with it, and will be only required to log in (in place) when taking certain actions.
Talking technical
The meOwn widget is indeed an HTML iframe element that refers to a user-specific url within meOwns website. Feel free to view the frame source, and to your surprise, you'll see that the source HTML is almost nothing. The reason is that the widget contents is totally managed using JavaScript. The server side of the application is modelled as a uniform REST web service. The widget client side extensively relies on JavaScript to consume the application's REST resources in a JSON representation. Then the JSON representation of the resources is evaluated into JavaScript objects, which are used to update the view of the widget HTML.
meOwns web widget adopts the priciple of Web 2.0 in both senses:
- Users collaboration: all of the application data is supplied by users. The main target of the application is to enhance blogging and social networking experience.
- Usability and performance: The widget interface and usability is closest to desktop applications. Performance is enhanced to its maximum by extensive use of caching and minimizing trips to the server. Server requests are not made except for committing updates, with minimal request and response sizes for bandwidth optimization.
Tools
Let's take a look at the main tools used in the development of meOwns. The server side of the application is deveolped using the magnificent Ruby on Rails. As mentioned before, the sever side is developed as a unifom REST web service that can be consumed by multiple clients in different representations. The client side of the application is mainly developed using JavaScript, along with a set of mini-tools that fit right in. Prototype Ajax is used for server requests that consume the REST resources in a JSON representation. Then the views updates are done using a great client-side templating invention called "JavaScript Templates". JavaScript objects that are evaluated from the retrieved JSON is used to evaluate JavaScript templates into pure HTML that's directly used in the view update. To me, being a part of meOwns development team was a great opportunity to work with this set of bleeding-edge technology tools.