This is my personal blog. The views expressed on these pages are mine alone and not those of my employer.

Thursday, October 15, 2009

Saying Goodbye to Dojo

Dojo has been good to me. I remember in 2005 when I was a whee JavaScript programmer hacking around with weird stuff like AMASS to do client-side storage when Alex Russell contacted me and asked me to port the work over to Dojo. I was blown away; what an opportunity! I had heard of Dojo but never thought I would get the chance to contribute.

Being a part of the Dojo project has been an amazing opportunity for me. Dojo Storage helped legitimize the idea of doing client-side storage, and the experience working on it helped shape parts of the HTML5 Local Storage API when it was being developed. Creating Dojo Offline went from crazy prototype idea to real shipping code thanks to SitePen and Google, and led to my involvement with Gears and also helped shape aspects of the HTML5 Offline work.

And what an awesome community Dojo is! I got a chance to meet fellow JavaScript hackers who had a mad gleam in their eye on trying out some interesting new scheme to try out in the browser. I consider many Dojo-ites close friends and colleagues and continue enjoying meeting up and scheming strange browser ideas.

The last year and a half, though, I really haven't been able to be a part of the Dojo community, and I don't see that changing. Dojo Storage and Dojo Offline are being used by real users and real sites but I simply haven't had the bandwidth to fix important bugs or add new functionality. There comes a time when an open source programmer has to admit that they simply can't juggle so many balls in the air at once.

I've essentially left the Dojo community the last year and a half but consider this blog post more formal. Other things have swept me up and forced my time. I can no longer maintain Dojo Storage and Dojo Offline. This is a great chance for the users and developers who use both of these packages to step up to maintain them and continue developing them; I pass the baton to you. You won't be sorry being a part of Dojo; I know I haven't.

I wish I was good at everything; I'm obviously not ;) The particular thing I'm good at is coming up with some strange new idea, then doing several passes of engineering and work to make it real and bring it to a shippable state and get it past the 'giggle factor'. I've done this with things like Really Simple History, coworking, and more. I'm good at the 0.1, 1.0, and 2.0 phases. Past that, I'm not particularly good. I guess the wisdom of 'old age' is accepting your strengths and weaknesses ;)

So long, and thanks for all the fish!

Labels: , ,

Thursday, April 10, 2008

An idea for Dojo from GWT land

Now that I'm at Google I've been getting a bit more exposed to GWT (the Google Web Toolkit). I used to dismiss it because I'm a JavaScript hacker and GWT is in Java-land, but I've been learning some interesting things about it that I think could help in Dojo-land if we adopted them.

Ray Cromwell rolled something called GQuery, which is basically JQuery inside of GWT. What is unique is you can do JQuery style selectors inside of Java. Dojo has this as well, with dojo.query, but what Ray is doing is crazy. Because GWT gets compiled, he can turn something like this:


into this:


in the source. Here's Ray describing it:

"GQuery is progressing nicely. I implemented all of CSS3 selectors by following ExtJS's DomQuery implementation, only I added the ability to parse at runtime as well as via a generator at compile time. The compile time generator turns a CSS selector into 100% inlined code. That is, a selector like "#foo", will turn into "return document.getElementById("foo");", no parsing step involved. I've still got a bunch of optimizations to make, add support for XPath and native getElementsByClassName, but even now working with the library in GWT is very cool. I just started looking at DomAssistant as well, to incorporate (i.e. steal) the best algorithms from each."

One of the comments sums up the benefits of this nicely:

"You have an unfair advantage; since your selectors are compiled you can do any number of optimizations to them, and basically beat any other selector engine out there."

GWT itself does some interesting optimizations like this around what code is sent to specific browsers. I'm seeing numbers that blow me away, that because you can only send down the code needed for a specific browser you can really slim things down. For example, something like Dojo GFX has code paths for IE (VML), Firefox (SVG), and Safari (Canvas). If we could just send which one you need then the code would be 1/3 the size.

How can we get these kinds of benefits in Dojo? We already have a build time that runs through a JavaScript interpreter; can we start to do magic like this? The performance and size benefits I'm seeing in the GWT-world seem to indicate that it is useful.

Labels: , , ,

Wednesday, March 26, 2008

Updated Dojo Storage ZIP file + Demos

[Updated with correct ZIP file download link]

The ZIP file I put up for the new release of Dojo Storage was broken. Here is a new one with the critical bug fixed (basically the test file did not point to the right location). Also, I'm now hosting the new Dojo Storage release on my web server so you can play with the testing file here and the Hello World demo here to get a taste of Dojo Storage without having to download things yourself. Note that this is based on Dojo 1.1 and is a pre-release, since Dojo 1.1 will go out Real Soon Now (tm) but is not out yet. Thanks to Andrew Woolridge for pointing out that things were broken.

Labels: , , ,

Thursday, March 13, 2008

Easy Download of Dojo Storage for Developers

I've put up a simple ZIP file that has just Dojo Storage. This is an optimized build of Dojo with just the small files necessary to use Dojo Storage. I've also created a simple Hello World example that folks can use to get started with Dojo Storage quickly. Note that this is a pre-release version of Dojo 1.1 which is coming out soon but has not been wrapped up yet. This version has a fully functioning Flash Storage Provider, HTML 5 storage, and Google Gears storage.

Labels: , , , ,

Thursday, December 13, 2007

Congrats to Joe Walker and SitePen

I'm very excited to see that Joe Walker has joined SitePen and that DWR is now part of the Dojo Foundation! Joe is a great guy, and SitePen is a great place to work. SitePen is amassing quite the intellectual think tank of Ajax gurus... expect cool things from them.

Labels: , , ,

Friday, July 06, 2007

New Dojo Offline Release

I am proud to announce a new beta release of Dojo Offline. This release has a huge amount of exciting new functionality, including a full port to Google Gears, a port from Dojo 0.4 to 0.9, and more.

Dojo Offline is an open-source toolkit that makes it easy to create sophisticated, offline web applications. It sits on top of Google Gears, a plugin from Google that helps extend web browsers with new functionality. Dojo Offline makes working with Google Gears easier; extends it with important functionality; creates a higher-level API than Google Gears provides; and exposes developer productivity features. In particular, Dojo Offline provides the following functionality:

To get started: See the Dojo Offline home page; read the new tutorial titled "Creating Offline Web Applications With Dojo Offline"; download the new Dojo Offline 0.9 beta SDK; and play with the demos.

Labels: , , , , ,

Saturday, June 16, 2007

Cool Demo Using Dojo Storage

Lucas Birdeau, one of the TIBCO GI folks, pointed me to this awesome Ajax web site he created with Dojo Storage and the Flash storage provider. He emailed me recently:

I just wanted to let you know that I had been using dojo storage on several GI applications and have had a really good experience. With all of the marketing behind the new entrants to this space, I think I've got a pretty robust implementation of dojo storage that really showcases how mature your technology is. Feel free to check it out. It's just a personal page that I put together on the side. It's a reorganization of craigslist that uses dojo storage to save and annotate posts.

Labels: , ,

Thursday, May 31, 2007

Presenting at Google Developer Day

Hi folks; I'll be talking today at the Google Developer Day on Dojo Offline + Google Gears integration down in San Jose. I'll be showing a prototype of integration, with some cool exciting functionality that I haven't discussed before. The combined Dojo Offline/Google Gears release will happen in a few weeks. My Google Dev Day presentation is at 4:30 PM, and is part of the Nuts and Bolts session near the end of the day (the GWT team will be there too). Google is helping to fund the Dojo Offline/Google Gears port, and I am consulting with them through SitePen.

Labels: , , ,

Tuesday, May 29, 2007

Dojo Offline Interview

My buddies Jay Dedman and Ryanne Hodson, video bloggers extraordinaire, did a video interview of me about Dojo Offline:

Labels: , , , , ,

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]