Two New Effects, New Direction
Since this is supposed to be the “Midterm Evaluation Period” and “Coding Phase II” starts on Tuesday, I’ve been taking it easy this past week. However, I haven’t completely stopped working on my project; there are two new effects. Nothing to spectacular, just a wipe version of the previous “shear” effect (“pinwheel” was the best name I could think of; suggestions are welcome), and an effect where pieces simply fade out. The demo page is here.
My mentor suggested working on text effects, where each character in a block of text could be animated individually, much like the “pieces” of a whole element are handled in the effects I’ve created so far. He also suggested implementing text-replacement in which the current text disappears while new text appears. I think this is a great idea and plan to create a set of effects similar to those that I’ve been working on.
I’ve also been considering creating a simple non-linear slide effect that moves an element along a user-defined curve. This would allow even more complex effects, such as an “explode” effect in which the pieces travel in parabolas as if affected by gravity, or an effect where pieces spiral into place. This is my second priority, my first being the previously-mentioned text effects.
(Via The Dojo Toolkit blogs.)
Use AJAX Libraries API to speed up OpenSocial apps
Posted by Shawn Shen, Developer Programs
Do you use popular JavaScript frameworks like Prototype or jQuery in your OpenSocial applications? Do you share the pain your users might feel when they have to download a popular library like prototype.js yet another time even though it’s been already fetched 33 times? Wouldn’t it be nice if you don’t have to worry about gzipping or minifying these libraries and paying to have them cached on some expensive content delivery network in order to speed up your apps?
If your answer to any these questions is “yes,” you are in luck because Google’s AJAX Libraries API precisely addresses these common pain points that many app developers have.
For example, to load Prototype version 1.6.0.2 you would place the following in your HTML:
<script src=”http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js”></script>
Another way to load these libraries is with the Google AJAX API Loader’s google.load() method.
By loading popular JavaScript libraries from Google’s free content delivery network, you get:
- A faster user experience (for those that already have fetched the files)
- Automatic gzipping and minification, so the files themselves are really small
In short, while the AJAX Libraries API is geared toward all web apps using standard JavaScript frameworks, it is particularly handy for OpenSocial apps because they are rendered in iframes, often multiple times (e.g. on user profiles). The steps involved in optimizing your apps can be tricky (See the latency best practices article). By using AJAX Libraries API, app developers can spend more time building out functionality and less time worrying about latency.
(Via OpenSocial API Blog.)
Google Data APIs Java Client Eclipse Plug-in : Create projects in seconds
I’m pleased to announce the release of an Eclipse plug-in for new developers using the Java Client Library for Google Data APIs.
This plug-in aims to minimize the overhead involved in setting up external Java dependencies and in getting started with a new API released in Java client library. The plug-in lets you download the external dependencies automatically. It also creates boiler plate code to interact with the API that you are interested in. This provides an easy way for all the newbies to quickly start developing code using many of the Google Data APIs.
Curious how to use this plug-in? What are you waiting for? Checkout the project page and the wikis (especially the usage wiki ).
Note: This is an open source project and contributions are welcome.
(Via Google Data APIs Blog.)
Ojay 0.2: easy keyboarding, a validation DSL, and two new UI widgets
James Coglan has updated Ojay, the chaining wrapper for YUI that we posted on a few months back.
The new release features really simple keyboard and form scripting and couple of new UI widgets, a new event system and a stack of other improvements:
Ojay.Forms. By far the biggest new package, Ojay.Forms sorts out a real pain point for me in terms of app development. It does two things: it provides unobtrusive replacements for the YAHOO.widget.Button family of classes, and it provides a DSL for handling form validation and Ajax submission.
Ojay.Keyboard. The new keyboard package is an abstraction over YAHOO.util.KeyListener that lets you say what mean without worrying about character codes, for example:
Ojay.Keyboard.listen(document, 'ALT SHIFT S', function() { // handle key press });It lets you group sets of keyboard commands together so you can make context-sensitive keyboard controls, and gives you easy access to enable/disable key events and their default browser responses. Not much more to say except that you should check out the documentation.
We have two new UI packages, Ojay.Overlay and Ojay.Paginator. Overlay gives you a bunch of classes for positioning content on top of the document, producing lightbox effects and the like, and Paginator implements the content slider effect that’s got a lot of attention recently, including the ability to lazy-load pages of content via Ajax, and easy integration with Ojay.History. Both packages come with a collection of events to allow your code to react to changes to the components, just like you would for DOM elements.
Speaking of events, this release introduces Ojay.Observable, a JS.Class module that allows any class to support the on() method used for listening to events. This module underlies the custom events published by all the Ojay components. More information and examples are in the documentation.
(Via Ajaxian.)
EclipseLink 1.0 Released
The Eclipse Persistence Services project (EclipseLink) has completed its incubation phase and the 1.0 release is available for download. This release completes the transition of the persistence functionality developed in Oracle TopLink to being fully developed and maintained as an open source project at Eclipse. This also signifies the first release of a project under the recently created top-level Runtime (RT) project at Eclipse.
(Via Eclipse In The News.)
GFX 2.0 Implementation Overview
Hi dojoers,
As mid evaluation comes, I am prepared myself with a document to give brief explanation about my implementation. It is provided class diagram, sequence diagram, some explanation for each component and screenshot about some demonstration.
You can find about:
- Design Document
- Implementation Overview Document
- Simple Class Diagram
- Detailed Class Diagram
- StarUML Project File
- Latest Test Page
- GFX 2.0 Zip File
Note
- For maximum quality, please zoom the PDF document to 150%.
- Opera test page is buggy, pre-defined script does not want to load. Anyone know how to solve this?
- Please right click and choose save target as for downloading StarUML Project File.
I would really appreciate if you can provide me suggestion, opinion or critics! Thanks!
(Via The Dojo Toolkit blogs.)
Dojo, floating on AIR
Today SitePen, Inc. announced the release of a co-sponsored “demo” utilizing Adobe’s AIR runtime and The Dojo Toolkit affectionately named “The Dojo Toolbox“. Don’t let the term “demo” fool you though, this thing is a fully functioning application providing a pluggable API built around the question “what can be done offline to better Dojo?” … As you probably know, AIR provides a plethora of functionality not present in standard browser applications, and Dojo is the perfect toolkit to fully take advantage of the potential. From offline storage to native window interaction (which seems to fall perfectly in line with the idea of templated widgets, especially in “chromeless” mode) to the remote update capabilities of AIR, realizing powerful desktop-based cross-platform applications has never been easier. I can’t begin to confess how excited I am about being to use the stuff I know (html/css/js/Dojo) in the realm of Desktop application, so I won’t even try.
Enough jabbering … on to the good stuff! You can skip my wordiness and view the screencast Kevin Dangoor made up, or read along with the quick-and-dirty rundown from the SitePen press release:
Offline API documentation
The entire Dojo API Documentation has been taken offline and converted into a searchable index. Every piece of the public (and private) API in Dojo is now available on your desktop for browsing. Doc updates come out? No problem,
the application can be remotely updated anytime a new version of Dojo is released.
Build utility
The power of the Dojo build system has been ported to AIR. You can target an existing build profile, define common options, and build your dojo.js and layers all from a simple UI. Upcoming (planned) features include: ShrinkSafe web service (you can’t run Java from within AIR, so no ShrinkSafe is available just yet) to compress your code, as well as a custom Profile maker.
Quick Resources
Many vital resources are found in this simple Toolbox plugin giving you handy access to the most current and most important resources available for Dojo. One oversight in the 1.0 release the absence of a link to DojoCampus, though the automatic updating nature of the application means it will likely appear shortly.
Looking Forward
The application was released under a BSD license and is fully open source. SitePen has setup a dedicated mailing list to discuss any issues or enhancements about the Toolbox, so signup and throw some ideas out. What kind of cool mini tools can you imagine floating around on AIR to make your web-dev experience easier? I’m thinking of a set of pixel calculators/rulers to overlay and inspect layout nitpicking … The potential is endless.
Thanks be to Adobe and SitePen for their support of Dojo and Open Source Software. I can’t wait until other tool ideas start popping up …
(Via The Dojo Toolkit blogs.)
qUIpt: caching JS in window.name

Mario Heiderich has released qUIpt, a library that uses the window.name property to store away useful data, in this case JavaScript.
How does it work?
- It checks for the contents of window.name while your page is being loaded.
- If there’s nothing inside the window.name cache the JS files defined by you are fetched via XHR
- The same happens if the users enters your site for the first time of his current browser session or if document.referrer is off-domain or empty
- After that the contents of window.name are being evaluated
- If the user requests the next page on your domain the JS files are directly taken from window.name – no more requests necessary
You can check out an example of it at work
(Via Ajaxian.)



leave a comment