Web Info & Tutorials

October 11th, 2007

GWT WRAPPER FOR RIALTO

Supplementing GWT’s basic set of widgets with wrappers around those of existing widget frameworks has become a bit of a cottage industry. There are wrappers for Scriptaculous, JsGraphics, TinyMCE (see the GWT Widget Library for these), Ext Js and many more. Now add Rialto to that list. (For a demo of the Rialto widgets, such as the interesting GridTreeView, see here.)

One shortcoming of Rialto’s GWT wrapper, however, is that all of the widgets are subclasses of JavaScriptObject rather than Widget. A best practice that has emerged for wrapping other frameworks is to wrap a Widget adapter around a JavaScriptObject so that the wrapped framework’s widgets can play nice and integrate with other existing GWT widgets. The Rialto wrapper doesn’t do that and also implements a parallel set of event, clicklistener and other classes. This shortcoming needs to be resolved in order for this particular framework wrapping to be useful.

October 11th, 2007

EXT 2.0 BETA 1 RELEASED

The Ext team continues to move forward on Ext 2.0, announcing the availability of Ext v2.0 Beta 1. This release of the Ext framework features updated portal and desktop examples, documentation updates, and bug fixes.

Big enhancements were done to two sample applications, Web Desktop and Portal, which make extensive use of new functionality in Ext 2.0.

The Web Desktop has been drastically enhanced to include a start menu as well as functional icons on the desktop. It truly looks like you’re working within an operating system like Windows.

Web Desktop:

Portal:

All of the updated Ext 2.0 Beta 1 samples can be seen at the Ext 2.0 Samples page.

In addition, the documentation continues to be updated to incorporate the new features of Ext 2.0 and a migration guide is soon to be released.

Ext 2.0 Beta 1 is available for download at the Ext website.

October 11th, 2007

INHERITANCE IS EVIL, AND MUST BE DESTROYED: PART 1

When we wrote most physiologist Sumption’s Animator.js there was a aggregation of “interest” in Bernies function that OO acquisition sucks.

Bernie definite to render the blast and swollen his thoughts, explaining how the strategy ornament is in fact your deliverer ;)

All of the discompose caused by acquisition crapper be derived backwards to the fact that acquisition forces ‘is-a’ kinda than ‘has-a’ relationships. If collection R2Unit extends Droid, then a R2Unit is-a Droid. If collection Jedi contains an happening uncertain of identify Lightsabre, then a Jedi has-a Lightsabre.

The disagreement between is-a and has-a relationships is substantially famous and a basic conception of OOAD, but what is inferior substantially famous is that nearly every is-a relation would be meliorate soured re-articulated as a has-a relationship.

The article takes the concern of Jedi and then writes a actual warning using Balls and BouncingBalls. He also explains ground he thinks that Flash’s DisplayObject organisation is good, and that EventDispatcher is bad.

October 11th, 2007

JSON NEWS: JSON SCHEMA AND JSON REFERENCING

Kris Zyp has been plugging away on a couple of interesting JSON topics:

JSON Referencing Schemes

There has been a lot of discussion about handling referencing schemes, so Kris has gotten the various ideas and summarized them.

He takes the following object call:

JAVASCRIPT:
  1.  
  2. obj = {name:"foo", child: {"name" : "bar"}};
  3. obj.child.parent = obj;
  4.  

and shows:

JAVASCRIPT:
  1.  
  2. // fixups scheme
  3.  
  4. {"result":{"name":"foo", "child": {"name" : "bar"}},
  5.   "fixups":[[["child","parent"],[]]]}
  6.  
  7. // id referencing
  8.  
  9. {"name":"foo", "id":"1", "child": {"name" : "bar","parent":{"id":"1"}}}
  10.  
  11. //or
  12.  
  13. {"name":"foo", "$id":"1", "child": {"name" : "bar","parent":{"$idref":"1"}}}
  14.  
  15. // path referencing
  16.  
  17. {"name":"foo", "child": {"name" : "bar","parent":{"id":"$"}}}
  18.  
  19. // or
  20.  
  21. {"name":"foo", "child": {"name" : "bar","parent":"$jref:this"}}
  22.  

JSON Schema Proposal

Kris has proposed a schema definition which would look a bit like this:

JAVASCRIPT:
  1.  
  2. {
  3.   "name": {"type":"string",
  4.     "required":true},
  5.   "age" : {"type":"number",
  6.     "maximum":125}
  7. }
  8.  

There are some questions and thoughts about it and he is looking for community feedback on all of this stuff!

October 11th, 2007

AMAZON.COM REDESIGN

Amazon was an primeval individual of dHTML techniques, and digit of the prototypal mega-sites to do inline popups and much (See All Categories).

The newborn organisation takes this to the incoming take with some more menus that popup when you mouseover them. Since Amazon has so some products these days, it staleness be a situation to essay to sound things in, in a artefact that grouping encounter them easily. I personally meet ingest wager with the digit omission of feeding “what’s new”.

The newborn organisation is in a effort phase, so you haw or haw not wager it:

October 11th, 2007

AJAXIAN FEATURED TUTORIAL: DEFINING CLASSES AND INHERITANCE USING PROTOTYPE 1.60

Straight from the source, today's Ajaxian Featured Tutorial is about how to use inheritance within Prototype 1.60:

Prototype 1.6.0 now comes with inheritance support through the Class module, which has taken several steps further since the last version; you can make richer classes in your code with more ease than before.

Here's an example of the old syntax:

/** obsolete syntax **/

var Person = Class.create();
Person.prototype = {
initialize: function(name) {
this.name = name;
},
say: function(message) {
return this.name + ': ' + message;
}
};

var guy = new Person('Miro');
guy.say('hi');
// -> "Miro: hi"

var Pirate = Class.create();
// inherit from Person class:
Pirate.prototype = Object.extend(new Person(), {
// redefine the speak method
say: function(message) {
return this.name + ': ' + message + ', yarr!';
}
});

var john = new Pirate('Long John');
john.say('ahoy matey');
// -> "Long John: ahoy matey, yarr!"

and now the updated version using Prototype 1.60:

/** new, preferred syntax **/

// properties are directly passed to `create` method
var Person = Class.create({
initialize: function(name) {
this.name = name;
},
say: function(message) {
return this.name + ': ' + message;
}
});

// when subclassing, specify the class you want to inherit from
var Pirate = Class.create(Person, {
// redefine the speak method
say: function($super, message) {
return $super(message) + ', yarr!';
}
});

var john = new Pirate('Long John');
john.say('ahoy matey');
// -> "Long John: ahoy matey, yarr!"

The full details are available on Prototype's website.

October 11th, 2007

AJAX EXPERIENCE UPDATES

With the Ajax Experience East in Boston coming up just around the corner (Oct. 24 - 26, just about two weeks away), we thought we'd provide a few updates:

For more details on the other sessions this year, see the complete agenda.

Oh yes, and, the marketing hook: We've added tutorials this year; they're included in the conference fee, but because we're running these the day before the conference, we are limited in space. If you're thinking about attending, register now to save yourself a seat! Supplies are limited! Chairs may run out! The developer hoards may beat you to it! Don't be the only one left home!

;-)