Thursday, September 4, 2008

Chrome

Wanderer
Blogosphere is buzzing with talks about Chrome, Google's new browser. What is so special about this browser?

StoryTeller
Browser is an indespensible tool. An average user meets the internet through browser interface. In fact, his browsing defines his internet experience. Google with its search service has redefined the browsing experience. Furthering its vision to organize knowledge on the net, Google developed services like Gmail, Calendar and now Google apps. However, this is all on the server side. Client side has traditionally not been a strong hold of Google. With release of Google desktop, Google declared its presence on the client side. Technologies like Google Gears are already in place to be used by the developers to develop offline applications, that automatically synchronize themselves online.
To create a strong presence on the client side, Google needed its own browser. Chrome has finally emerged after gestation period of two years. As you know, Internet Explorer and Firefox have been instrumental in defining the browsing experience. Today, you have several options, when selecting your browsing tool. Browsers like Opera, Flock, Safari carry their own distinctive personalities and do have huge fan following. Google Chrome is dubbed to unleash next generation browsing experience.
Amidst a constantly evolving eco-system on the Internet. Browsers need to adapt quickly to new realities. Browsers have been keeping pace with and even defining the direction of Internet's evolution. Early day browsers had a simple goal of rendering HTML pages, but now they have grown into a full-fledged platform capable of accessing variety of services and information scattered on the net. The existing browser architectures are buckling under the pressure of these new demands. Chrome is an effort to redefine the browser architecture in ways that will eliminate known bottlenecks and make browser ready for cutting edge web applications.

Wanderer
What is the major architectural change?

StoryTeller
They have changed the process model. Browsers like Firefox run in a single process. Tabs in Firefox share the same process space. In Chrome, each tab gets its own process Each process has its own independent address space. Applications running in one tab are isolated from applications running in the other tab at the process boundaries. If one application misbehaves then it can crash it's own tab, but not the whole browser.

Wanderer
Have they really written in from scratch?

StoryTeller
No, they have used several existing open source libraries. They have used "WebKit" which is a layout engine responsible for rendering HTML content. They selected webkit because of its simplicity. Other option could have been "gecko", a layout engine used by Firefox. However they wrote V8 from scratch. V8 is a high performance javascript engine that uses concepts like hidden classes to enhance performance. They have also used sandbox model to keep the tabs isolated and secure.

Wanderer
What is a minimalist design?

StoryTeller
This means, that Chrome must not come in the way of browsing experience. Browsers show the web contents in their client area. All the other elements like menus, toolbars etc taken together forms the chrome of the browser. Goggle wanted Chromes's chrome to be minimalist. If you see the browser's UI , it is very simple, useful and intelligent. For example you have a universal box. The same box can be used for searching and pointing to a URL. The box displays contextual intelligence and remembers the history. It offers options and narrows them down as it gets more details. Opening a new tab gets you fast dial service, which means that the new tab will display the thumbnails of most recently visited sites. You can go to the desired site , just by clicking on the relevant thumbnail.

Wanderer
What are the central design goals of Chrome?

StoryTeller
The central design goals are
  • Simplicity
  • Speed
  • Stability
  • Security

Wanderer
Do you think people will now stop using Firefox and start using Chrome?

StoryTeller
Firefox is a matured product. One of the reason why people use Firefox is the variety of plugins available for Firefox. Google has not declared any plugin architecture for Chrome. So Chrome will be what Google wants it to be. Developers cannot extend it. I think ,Firefox power users will still continue using Firefox, till Google really comes up with compelling plugin architecture and a lots of plugins.

Wanderer
What do you think of flock?

StoryTeller
Flock is an interesting browser. It is a browser with a social focus. It has solid inbuilt support for socializing. Its integrated with blogging tools, mailing tools and sites like digg, twitter etc. It has quite a few plugins and its community is active and thriving.

Wanderer
How do you compare flock with Chrome?

StoryTeller
Flock is about turning a simple browser into a socializing specialist. You get many socializing features inbuilt. In Firefox these features would need plugins. In Chrome, these features are simply not available. Chrome is not trying to specialize in any domain. Its trying to rethink and revamp the browser architecture. So both these products have separate goals. For those heavily in socializing can try flock . Those who are early adopters, looking for complex and cutting edge web application development, can think on Chrome. Chrome can easily integrate with google gears.

Wanderer
Is Chrome Open Source?

StoryTeller
Yes it is.

Tuesday, September 2, 2008

Second Life - Linden Script

Wanderer
What is Second Life?

StoryTeller
Second Life is a virtual world created by Linden Labs. A virtual world is a 3D world, which has 3D structures built in it. Virtual world tries to simulate the real world and thus has lakes, rivers, trees and even people in it. People moving around in the virtual world are called avatars. To be a part of this virtual world you have to create your avatar by registering with Second Life. After moving around in the virtual world for a while, you would get interested in building your own 3D artifacts.Second Life allows you to purchase a piece of land and construct 3D structures on it. Depending on your land size, you are allocated a fixed set of prims. These prims are your fundamental building blocks for creating your virtual world. For viewing, creating and manipulating your virtual world you need to install a special software called Second Life viewer. Second Life offers a rich set of 3D editing WYSIWYG ( what you see is what you get) features for manipulating the virtual world and the objects within it. The most interesting part of Second Life for developers like me, is a facility for scripting the objects with Linden Script.

Wanderer
What is Linden Script?

StoryTeller
Linden script is a DSL ( Domain Specific Language) for imparting behavior to prims. Each prim can have a set of scripts associated with it.These scripts can be used for several purposes
  • Change the prim's dimensions and other properties like colors and textures.
  • Change the prim's location and orientation.
  • Allow prim to react to events received from the virtual environment.
  • Exchange messages with other prims.
  • Exchange messages with user agents.
Linden script is a state based , event driven, imperative programming language.

Tuesday, August 19, 2008

Open Source License

Wanderer
There are so many open-source licenses being approved by OSI( Open Source Initiative). On what basis should I decide on the license to be adopted for my new opensource project?

StoryTeller
There are some licenses that are permissive and some that are reciprocal. Generally, permissive licenses allow you to take the code , modify it or enhance it and sell it without any obligation. For instance, BSD is a permissive license. In a reciprocal license, if you make enhancements to open source code, you are suppose to give your enhancements back to the community. GPL(GNU General Public License), is an example of reciprocal license. That's all I can tell you now. Better consult your lawyer before you take any decision.

Wanderer
I heard Java is opensourced by sun, which license does java use?

StoryTeller
Sun has released Java under GPL( version 2).





Friday, August 8, 2008

JavaFx

Wanderer
What is JavaFx?

StoryTeller
How many times have you seen a car dealer unable to sell a fully functional and robust car, for the want of a good interior? What are the prospects, if the car has a few visible dents and scratches?

Wanderer
It's substance that has enduring value ,but looks do matter.

StoryTeller
Java has proven its strength on the server side. Java developers can write powerful Web Applications using Java. Java has concentrated on substance for over a decade, but now its working on its looks. Great looking Internet ( Web) applications are dubbed as RIA ( Rich Internet Applications) . JavaFx technology enables Java Web Application Developers to develop RIAs. Next generation Java Web Applications will be powered by JavaFx technology. The current generation of Java Web Applications are Intelligent. The next generation will be Intelligent and Gorgeous.

Wanderer
Is JavaFx the only alternative for RIA?

StoryTeller
No, there are other technologies in RIA space. They say that the whole RIA movement started with AJAX. Now, you have Adobe's Flex technology, Microsoft's Silverlite and Curl. JavaFx will have to compete with these technologies to be the leader in RIA space.

Wanderer
Will a Java Developer need to learn a new language to use this technology or is knowledge of Java sufficient?

StoryTeller
You can create good looking screens with animation, 2D and 3D graphics in Java. However, it will be too much work. It is always better to use a DSL ( Domain Specific Language ) for such specific purpose. JavaFx is a scripting language just designed towards this end. Its a DSL for HCI ( Human Computer Interaction). JavaFx scripts are declarative in nature and can take advantage of rich and powerful Java Libraries.





Tuesday, March 18, 2008

The C Story...

Wanderer
What is C ?

StoryTeller
C is a programming language. Programming languages are used to write software. C is called a high level programming language. There are several ways of classifying programming languages. One way is mentioning its generation. C is referred to as a third generation programming language.

First Generation : Machine Language
Second Generation : Assembly Language
Third Generation : C, Fortran, Pascal etc.

Another way of classifying languages is placing them in one or more of the following groups

  • Imperative
  • Object Oriented
  • Functional
  • Logical
C is an imperative programming language.

Wanderer
Where is C programming used?

StoryTeller
It has been widely used in creating Industrial strength Software. The following list of Software developed using C , suggest the power and flexibility of C programming.

Linux ( Operating System)
MySQL ( Database)
GIMP ( Image editing program)
PHP ( Web Application programming Language)

C is a preferred language in developing Embedded Systems. C is also heavily used in Gaming industry. A very popular virtual world "Second Life" has its client written in C.