| Ajax Experience Updates |
[12 Oct 2007|01:03pm] |
14:25 11.10.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:
- Aptana founder Paul Colton will present best practices and pitfalls on developing with the iPhone and iPod Touch. And while we're talking about talks from dev tool groups, we should mention that Michael Kaply will present on Eclipse's Ajax Toolkit Framework.
- We've added a few new performance-related talks: Bob Buffone from Nexaweb will present on performance tuning large-scale Ajax apps, and Michael Carter will present a case study on using Comet for highly scalable apps.
- Flex and AIR keep right on evolving, and we've got Adobe's Kevin Hoyt presenting on the very latest in AIR development.
- Google's Nathan Naze, who's currently working on the Google Book Search project, will discuss "Hybrid JavaScript"--his way of summarizing in two words an emerging set of techniques to extend browser capabilities in various creative ways using JavaScript itself, Flash, and even, yes... Java.
- We've added a new keynote: Kevin Survance, CTO of Mapquest, who will be sharing many Ajax lessons learned from experience running this massive web property. And, we should mention that the details of the previously announced Aza Raskin keynote are now on-line.
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!
;-)
read more at Ajaxian
|
|
| Ajaxian Featured Tutorial: Defining classes and inheritance using Prototype 1.60 |
[12 Oct 2007|01:03pm] |
14:50 11.10.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.
read more at Ajaxian
|
|
| Amazon.com Redesign |
[12 Oct 2007|01:03pm] |
14:54 11.10.2007
Amazon.com Redesign
Amazon was an early user of dHTML techniques, and one of the first mega-sites to do inline popups and such (See All Categories).
The new design takes this to the next level with many more menus that popup when you mouseover them. Since Amazon has so many products these days, it must be a nightmare to try to fit things in, in a way that people find them easily. I personally just use search with the one exception of browsing "what's new".
The new design is in a test phase, so you may or may not see it:
read more at Ajaxian
|
|
| JSON News: JSON Schema and JSON Referencing |
[12 Oct 2007|01:03pm] |
15:01 11.10.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:
-
-
obj = {name:"foo", child: {"name" : "bar"}};
-
obj.child.parent = obj;
-
and shows:
JAVASCRIPT:
-
-
// fixups scheme
-
-
{"result":{"name":"foo", "child": {"name" : "bar"}},
-
"fixups":[[["child","parent"],[]]]}
-
-
// id referencing
-
-
{"name":"foo", "id":"1", "child": {"name" : "bar","parent":{"id":"1"}}}
-
-
//or
-
-
{"name":"foo", "$id":"1", "child": {"name" : "bar","parent":{"$idref":"1"}}}
-
-
// path referencing
-
-
{"name":"foo", "child": {"name" : "bar","parent":{"id":"$"}}}
-
-
// or
-
-
{"name":"foo", "child": {"name" : "bar","parent":"$jref:this"}}
-
JSON Schema Proposal
Kris has proposed a schema definition which would look a bit like this:
JAVASCRIPT:
-
-
{
-
"name": {"type":"string",
-
"required":true},
-
"age" : {"type":"number",
-
"maximum":125}
-
}
-
There are some questions and thoughts about it and he is looking for community feedback on all of this stuff!
read more at Ajaxian
|
|
| Inheritance is evil, and must be destroyed: part 1 |
[12 Oct 2007|01:03pm] |
15:10 11.10.2007
Inheritance is evil, and must be destroyed: part 1
When we wrote about Bernard Sumption’s Animator.js there was a lot of “interest” in Bernies position that OO inheritance sucks.
Bernie decided to fuel the fire and expanded his thoughts, explaining how the strategy pattern is in fact your saviour ;)
All of the pain caused by inheritance can be traced back to the fact that inheritance forces ‘is-a’ rather than ‘has-a’ relationships. If class R2Unit extends Droid, then a R2Unit is-a Droid. If class Jedi contains an instance variable of type Lightsabre, then a Jedi has-a Lightsabre.
The difference between is-a and has-a relationships is well known and a fundamental part of OOAD, but what is less well known is that almost every is-a relationship would be better off re-articulated as a has-a relationship.
The article takes the world of Jedi and then writes a real example using Balls and BouncingBalls. He also explains why he thinks that Flash’s DisplayObject hierarchy is good, and that EventDispatcher is bad.
read more at Ajaxian
|
|
| Ext 2.0 Beta 1 released |
[12 Oct 2007|01:03pm] |
15:51 11.10.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.
read more at Ajaxian
|
|
| GWT Wrapper for Rialto |
[12 Oct 2007|01:03pm] |
18:10 11.10.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.
read more at Ajaxian
|
|
| Ajaxian 2007 Survey Results |
[12 Oct 2007|01:03pm] |
06:52 12.10.2007
Ajaxian 2007 Survey Results
Back in July, we held our third annual Ajax Reader Survey. The results are in. Some interesting observations:
- Prototype and Scriptaculous still dominate the field with 68% and 59% of readers using them, respectively. jQuery has a respectable 48% share. Yahoo UI!, Dojo, and Ext JS round out the top six. Google Gears enjoys usage by 22% of survey participants–pretty amazing for its youth. Despite Java’s popularity amongst our readers, DWR is only used by 13% of readers, which surprised us.
- A little over 50% of readers use PHP, and about 40% use Java. Only 20% of readers use .NET technologies.
- The biggest concern on your mind? Cross-browser rendering issues, with 60% of you listing it as your biggest concern.
What questions/frameworks did we leave out? What do you think of the results?
read more at Ajaxian
|
|
|
|