TAE Talk On Dojo 1.0

In addition to the panel discussion and keynote which the Ajaxians were gracious enough to let me participate in. I also gave a “regularly scheduled” talk on Dojo 1.0, many of the lessons we’ve learned leading up to it, and the philosophy of construction (and why it benefits you and your users).

openweb-001.png

The talk was packed, with folks actually standing at the back of the room. Thanks to everyone who turned up and especially to everyone who asked questions. Getting the kinds of focused, thoughtful questions that were asked always makes talks like these better for everyone.

Update: after my talk Andreas of the excellent qooxdoo framework made the point that my examples of how to use Dojo 0.9/1.0 widgets didn’t clearly enunciate how fully we support programmatic creation of all Dojo widgets. While beginning Dojo users may see markup-driven examples like:


...

Dojo 1.0′s method of building widgets programmatically is hugely simplified from the 0.4.x days:

var pb = new dijit.ProgressBar({ progress: "20%" });
dojo.body().appendChild(pb.domNode);
...

Both examples create an equivalent widget, and every property that can be set via markup is also available to be passed via the configuration property bag that every widget expects when calling its constructor function via the “new” keyword. This lightweight convention, in conjunction with the alternate script types, allows for full feature parity between markup and programmatic construction of widgets. Both are first-class citizens in Dojo 0.9/1.0 and you can build your entire app with programmatic construction if you so choose.

Dealing with the Flexibility of JavaScript

This is a continuation of my previous post A Fine Line Between Abstraction and Obfuscation and, of course, deals with the same material.

JavaScript is flexible in almost every way, and many people end up either abusing the flexibility, or creating strategies of overcoming the flexibility that only create confusion and messy code. I’d like to go over one of my favorite topics today, JavaScript’s function signature, although lack of a function signature is probably a better way to say it. You’ll see that can employ some strategies that can solve these problems without increasing the amount of code you have, while at the same time, providing context for those using your code in the future. Even if you don’t use everything I’m setting out below, I hope it will reveal what to be cautious of, and help you create meaningful solutions of your own.

Continue reading

Dojo Grid Update

Recently, the first draft of the new Dojo Grid made its way into the DojoX trunk. There’s still a significant amount of work to complete prior to the Dojo 1.0 launch date of October 31, but if you update your subversion checkout to head, you can follow along at home.

Thanks again to Redfin, Mozilla, Nexaweb, and SnapLogic for joining us in making this happen, and for Steve and Scott of Activegrid for their efforts in working rapidly to make the grid to work with Dojo 1.0.

Dojo Grid Test

Clue++: The IE Team Stops Treating Their Customers Like Criminals

I can only imagine what kind of a political nightmare it must have been for the IE team to pull this off, but they deserve praise for finally liberating their browser from the clutches WGA (whose “advantage” has always been unclear).

When it became clear that IE 7 was going to be tied to WGA in an early beta, it left a lot of angry developers scratching their heads. Perhaps smart moves like this are enough to counter the lack of public communication about the future of IE and the stunning paucity of debugging tools for Redmond’s browser (among other things), but anything that cycles IE 6 out of circulation faster is good for the web. Kudos to the IE team for doing the right thing by their users.

Be Careful With XML-RPC Dates

A lot of my work involves 3rd party API integration. We have plenty of tools at our disposal: protocols like SOAP, XML-RPC, JSON-RPC, and conventions like RESTful URI schemes. You would think it’d be a no-brainer to hook services together. Not always.

I was recently writing some code that called an XML-RPC method to retrieve logging data for an external service. The method signature itself was simple (names changed to protect the, all right, for the heck of it):

log(id, start, end)

Continue reading