There's been a lot going on in Dojo-Land recently, though our blog is no indication of that fact. Here's a meta-update encompassing all that I can recall:
Zend Integration
The last we heard was the initial announcement. Alex and I have been lurking in #zftalk and fielding questions on and off. There's been a lot of bleed over from #zftalk into #dojo, Zend Framework community members poking around, feeling the waters as it were. Lots of great questions being asked, lots of interest all around. We also participated in a Zend Framework webinar, talking with ZF Team members and the community about the proposal:
Probably the most common question is: Valid HTML.
I'd like to take a second to remind everyone there is nothing invalid about using Dojo. Some see the dojoType attribute in most of our tests and cry foul, "standardss heresy I say!". What most people overlook, however, is that dojoType, and the dojo.parser is an additive characteristic of the Dojo Toolkit. You have to explicitly dojo.require("dojo.parser") in order for Dojo to even understand what a dojoType is. If you want to write valid (x)html pages: you can. Like everything else in Dojo: you don't have to if you don't want to, though it makes for exceptionally easy prototyping.
The djConfig attribute being the other invalid attribute we introduce, also entirely optional. To specify valid runtime configuration options for dojo.js:
var djConfig = { parseOnLoad:true, isDebug:true };
</script>
<script src="http://o.aolcdn.com/dojo/1.1.1/dojo/dojo.xd.js"></script>
... which is an interesting point, because parseOnLoad:true indicates you probably have a dojoType somewhere. Leaving djConfig null (as a var or attribute on the script tag) leaves parseOnLoad:false ... In it's most simple form, including Dojo is:
All that said, Zend and Dojo will be working very hard to provide all the available power of the Dojo Toolkit to the Zend Framework users, maintaining standards, though offering the option of the "invalid" convenience methods. It's all about choices and rapid development.
I've updated the dojo.moj.oe demo to be valid HTML 4.01 - it involved removing the trailing '/' in my self-closing LINK elements, and wrapping a div around some inputs, which I find to be more difficult on large sites than remembering not to use the dojoType attribute.
Speaking of the CDN
Google has started their own Ajax library delivery system, offering Dojo >= 1.1.1 as a cross-domain build: Give it a try just like you would the AOL CDN:
Note, there a some minor differences between the AOL and Google CDN, at least regarding this initial release. The theme CSS on the Google CDN has not been compressed or otherwise optimized, namely. Most examples you see using the AOL CDN, however, can simply be run by substituting the new URL for your dojo.xd.js - all the same X-Domain nuances still apply ...
More on Google
To follow up on Shane's recent Google dojo.data stores, I took the liberty of creating SMD's defining all the available Google Ajax API's: web, book, local, news, books, images, and videos, demo'd as a single test file, and a wrapper for the Google Translate API. Accessing the entire Google datacenter is as easy as:
dojo.require("dojo.io.script");
dojo.addOnLoad(function(){
var goog = new dojox.rpc.Service(dojo.moduleUrl("dojox.rpc","SMDLibrary/google.smd"));
goog.webSearch({ q:"Dojo Toolkit "}).addCallback(function(data){
/* first group of results */
});
});
The google.smd library will be available in Dojo 1.2, though you can use the SMD with 1.1, and probably 1.0 versions as well.
I'm also testing the lazy loading of google-analytics code over on my blog, in an attempt to speed up when the DOM is actually ready when including ga.js in a page. (For me, as often as I clear cache, google-analytics and ga.js (10k) can take upwards of 5 seconds to load, causing weird rendering issues on widget-riddled pages). So far, the test is producing data, but I'd like to let it run more than a day ... If everything goes okay, it will show up as a new tool in your favorite Toolkit, giving you the ability to dynamically track your static and Ajax-refreshed pages without adding any markup to the page, and simply specifying your Urchin tracking number. Currently, it's hacking it's way into djConfig, reading an urchin: param from there ... Ideally, you'd be able to specify it at runtime: new dojox.analytics.urchin("UA-123456-7") and the rest is taken care of. API details though,
I'm just glad it's working.
Updated Code Completion
Todd @ ActiveState updated my makeCix.php script, which was initially announced back in January as an experiment. There were some issues with my attributes (and overall understanding of the schema), so a big thanks to ToddW for stepping up and working out the bugs. If you don't remember makeCix: It scans across the Toolkit source tree, grabbing inline summaries and function signatures, and generates a .cix file compatible with the free Komodo Editor ... It's a great editor, and having full Dojo 1.1 API completion is great. They've updated their official release of the code completion plugin, and should work with all newer version
On a personal note
I'd like to welcome to our ranks the newest (and youngest ever) Dojo contributor: Ethan Zachary Peller, Spawn of our esteemed Adam Peller (DojoX BDFL). Adam has been on hiatus since the exciting moment though will be returning to 'work' shortly. We're currently checking the validity of a CLA signed by a 3-week-old, to ensure his contributions (and influnce on the Toolkit vicariously through peller) are clean. Looking forward to his, and all of your (yes, you), contributions. Salud, peller, may health, happiness, and an unnatural ability to write code bless your child's life.
You know, its hard to call what we do here "work" though, there is entirely too much fun involved ... which reminds me:
dojo.workers()
I secretly and silently added a new Dojo demo: dojo.workers(). I wanted to do something fun showcasing both the Dojo Toolkit's ability, and the hard working committed people behind it's maturity. We are a diverse bunch of people from all walks of life, and this demo gives them at least partial credit. There are a few omissions, unfortunately not everyone who has committed code to Dojo took the time to "approve" being listed (by adding themselves to the json file listing everyone) so it's a partially incomplete list. Feel free to update the users.json file in http://svn.dojotoolkit.org/dojoc/demos/skewDemo/ with your information, and alert me to the change ... viola. On an aside, the dojo.workers() page would validate by removing some trailing '/'s and removing an empty unordered-list.
Hope that gets everyone up to speed, and I apologize if I missed anything new and pressing.
