Google Gears, Dojo Offline, and SitePen

June 23, 2007

Shortly after we began working on Dojo Offline, our friends at Google invited us over to the Googleplex to tell us about their efforts in building an open source project similar to Dojo Offline called Google Gears. Since the release of Dojo Offline, we’ve been working with Google to make Dojo Offline and Google Gears work well together. The Dojo Offline API now works with Google Gears, providing a flexible and easy extension to Google’s API and offline platform. We’re very excited about this collaboration, and will be demonstrating this work at the Google Developer Day in San Jose on May 31. If you are attending, we hope to see you there and show some great examples of what is possible with Dojo Offline + Google Gears!


Dojo 0.9 Update: M2

June 23, 2007

This past Friday, we pushed Dojo 0.9 Milestone Release 2 out of the nest. This is the last milestone before Beta and the system is starting to take a recognizable shape. Only thinner.

Here’s what’s new and awesome in M2:

  • Dijit has landed! Holy cow is it fast. Stay tuned for themes and more widgets.
  • Layered builds. Slice and dice your builds any way you like to achieve maximum performance
  • Style code is now even faster
  • Lots of new modules, bug fixes, and quality APIs

DWR 2.0 RC4 Released

June 23, 2007

DWR has a new release that should be pretty stable, with a final release coming soon.


  • The biggy is Guice support. If it wasn’t for the fact that we could add this in without touching the core of DWR, I’d say this was too big a change at this point in the release cycle, however Tim Peierls (who you might know from this project) has done a stack of work to make DWR and Guice play really well together. You can read more about the background on Tim’s blog.
  • Security: The Fortify review highlighted some areas where DWR was lacking. You can read more about what DWR now does to protect you in the DWR security documentation.
  • Reverse Ajax: There have been some cases where reverse ajax has not been as stable as it should be. I hope that most of those are now behind us.

The reverse Ajax features are really quite something. If you haven’t checked them out yet, do so.


June 23, 2007

JSON was born in 2002, and has really flourished alongside Ajax in the past eighteen months. And now Doug Crockford has established a a JSON RFC: The application/json Media Type for JavaScript Object Notation (JSON) (via Sleepyhead).

JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.

JSON standardization is presumably a priority in light of’s JSONRequest proposal … the component, if implemented, will work like XMLHttpRequest but allow secure calls across domains.

JSONRequest Proposal

June 23, 2007

Douglas Crockford of Yahoo, a pioneer of JSON, presented “JSON: The X in Ajax” at The Ajax Experience Tuesday afternoon.

In the presentation, Douglas discussed his proposal for native support of a new JavaScript object named JSONRequest. The object would provide a simple API for issuing Ajax requests to exchange JSON data using the following methods:

var request =, data, callbackFn);
var request = JSONRequest.get(url, callbackFn);

Other key points about the proposed object included:

  • Requests are transmitted in order
  • Requests can have timeouts
  • Requests can be cancelled
  • Connections are in addition to the browser’s ordinary two connections per host

Douglas has published more information about his proposal. The object itself is also available for download.

yui-ext 0.33 RC3 – What’s New?

June 17, 2007

This release is primarily a maintenance release with fixes for the bugs reported since the RC2 release and more documentation updates. There are also several enhancements made to the Grid component, JsonView and a new KeyMap class.

Creating a reCreating a reusable Ajax driven dialog

June 9, 2007

Along with the official release of 0.33, on Thursday I posted a new Image Chooser example which can be found in the yui-ext Documentation Center. In this post we will go over the important parts of the code behind the chooser, and hopefully give you a better understanding of how you can combine different components to create a new component – one that is more suited for your application.

Difference between Hibernate’s get() and load() ?

June 9, 2007

Ganeshji Marwaha, in “Hibernate – Difference between session’s get() and load(),” shows how load() can optimize Hibernate’s performance compared to get(), by avoiding trips to the database. With Hibernate now being a JPA implementation, this might or might not remain to be the case.

Many… Every time a Bid is placed, is it wise to hit the database and retrieve the corresponding Item just to supply it as a reference? I guess not. That is where session.load() comes in. All the above scenarios remaining the same, if you just used session.load() instead of get(), hibernate will not hit the database. Instead it will return a proxy, or an actual instance if it was present in the current session, and that can be used to serve as a reference.

What does this buy you? At least 2 advantages. First, you save a trip to the database. Second, the error handling code just got elegant.

One hopes that JPA automatically provides caching through the EntityManager in Hibernate, making tips like this slightly less valuable – Hibernate folks, care to chime in?

ข้อมูลเพิ่มเติม Difference between Hibernate’s get() and load()?