Infrequently Noted

Alex Russell on browsers, standards, and the process of progress.


Tomorrow is my last day at JotSpot.


For some months it has been clear that the Dojo is now on a path that requires more hands-on management, and either I can choose to double-down or get out of the way. People use the word "vibrant" to describe the Dojo community, but I think that hardly begins to cover it. The amount of traffic on the Dojo lists is stupendous. Contributions and committers are coming out of the woodwork, companies are looking to Dojo for a solid platform to build on, and our next release has been languishing. Clearly something has to change.

At the same time, I care deeply about Jot. Yeah, I know, companies can't love you back, but Jot is an amazing place, has a truly unique product, and is chock full of people I'd love to keep working with.

My friends have had to put up with this kind of agonizing for months now.

I don't talk much about Jot here, and I think it's probably because of the classic engineering apathy towards marketing. All I see is my bug list, not the cool stuff we just built. But now I've got a little time to reflect.

Jot isn't a Wiki. Not really. It may also be the most kickass wiki the world has ever seen, but in many ways that's incidental to the overlap with the core system capabilities. I often say that "it's an application platform cleverly disgusied as a Wiki", but that doesn't really capture it. When people think "application platform", they see something that requires them to set up a database, install some gunk, get Apache correctly configured, get the rest of the environment bootstrapped, and then voila! Programming nirvana. A lot of these supposedly "elegant" platforms require that you cough up this giant configuration hairball before you can even start. The justifcation for this seems to usually fall into either the "but we're using a pretty language!" or the "we're using the standard business language!" buckets.

Bah. Humbug.

Now, of course, I too used to accept the apache-database-blah-blah-blah dance as a cost of doing business. But as with most things where there is an entire business devoted to making something just appear to happen magically (web hosting), these businesses are just filling in the gaps until the root inefficency can be elided entirely.

Jot represents the first system that I've ever seen that gets this right. Instead of forcing you to think about some kind of MVC fuss-and-bother, you build what you were after in the first place, usually a form, and then start iterating on the implied structure of that data.

You don't change a model and upgrade a schema, you just add the property you wanted to add. This has been the secret to building applications like Tracker. We don't worry about a data model when building apps like this. The data evolves as our understanding of how people will use the UI evolves, and because it's all versioned, experimentation is non-destructive.

In the same way that test-driven coding allows you to make changes with confidence, the deployment environment playing "version nanny" is a great liberator in development freedom and process. Loading anything, data or program, into the system has the effect of strapping the suspenders on, and isn't that when you really need them? Not when it occurs to you that you might be doing something destructive, but at the point where you might otherwise be doing something destructive.

Add to that some awesome Dojo integration with Jot (which I'll talk more about when the new version hits the servers), and Jot really is the first of the next generation of application platforms. Web services make the configuration dance transparent on the macro scale, and Jot can do the same thing for apps on the local scale. It's a level of power that I've never encountered before, and don't expect that I will again anytime soon.


Wednesday is my first day at SitePen.

Dylan has quietly been "getting the band back together" under the umbrella of a small consulting firm that he helped to found back in The Day (TM). SitePen is nothing short of the A-Team of Dojo-based application development. In addition to employing two of the project's co-founders, a large number of core Dojo committers are working on projects large and small for a diverse set of clients who value great UI married to top-notch engineering. Along with the great guys at TurboAjax, SitePen helps to fill in the gaps that the Open Source nature of Dojo leaves unfilled.

But what about that whole "need to spend more time on Dojo" bit? Well, SitePen is hiring me to work on Dojo full time. Sure I'll be fixing high-priority bugs for SitePen customers, but all of my work will be rolled into the Open Source project. Most of the time though, I'll be focusing on what the community needs and how we can best make the project's goals of universal adoption a reality.

My new job will be to push Dojo forward as fast as we can possibly make it go. There's a long list of improvements for Dojo that I've been putting to the side for when I stumble onto a large pile of "free time". SitePen is going to allow us to make those things a reality.

Time to see how high this "Dojo" thing can really fly.

Bees is gonna be pissed

So it was good natured ribbing at Cal when Leonard set up fancytrousers after a discussion at dinner the night before where it was pointed out that we Americans use the wrong words for everything.

But perhaps it's just mean-spirited to point out that apparently there is a picture on the internets that shows Cal with a facial expression that might, in some jurisdictions, be considered smiling.

I fully expect my Flickr account to be suspended any minute now.

I'm ordering this book...right....NOW

Hot damn! The Python Essential Reference has a new version out! Huzzah!

The 2nd edition of this book has been in my backpack for going on 3 years now. It is the only Python book I can't live without. No offense to O'Reilly, but with the exception of "Learning Python" and the "Python Cookbook" books, their core Python language books have sucked major donkey. New Riders has them licked with just this one title. If you want a book on the best damned language this side of C and the other side of Scheme, "Python Essential Reference" is the way to go.

Conference Season!

Been bitten by Dojo bugs or have feature requests? Going to a conference any time in the next month or so? Odds are you'll be able to get your very own pound of flesh. The rundown:

That people keep asking us to talk about Dojo and are using it to build truly awesome apps is humbling. I always learn so much by talking to people at conferences, and I'm looking forward to doing that a lot in the next month.

See you there, wherever "there" may be!


Apparently a new XUL app called "ajaxWrite" was just launched. I think this thing is going to be my poster child for what's wrong with single-renderer markup languages from now on. It might be a fine app, I haven't used it long enough to have a strong opinion, but its marketing is truly reprehensible. I'm sure someone assured Michael Robertson that they couldn't launch a web-ish app without tacking the word "ajax" in the title and the folks with sense were shouted down. A pity.

This thing is appropriating the necessarily amorphous terminology of "Ajax" for an implementation that is directly at odds with why Ajax is an important technology. A XUL app being billed as "Ajax" is just as laughable as a Flex or XAML app suddenly growing the same moniker. That it's Mozilla's walled-garden language doesn't really excuse the gaffe.

But, I hear you ask, aren't Firefox/MoFo our only hope?

Perhaps, but only insofar as Firefox is a good HTML and SVG renderer. XUL is not a standard. No one else implements it, and it's not likley that anyone else ever will. And that's OK. What's not OK is when these walled-garden-web technologies start getting passed off as somehow being more open, more cost-lowering than they really are. The unspoken promise of Ajax is that it makes cross-browser apps that are more responsive possible. Stunts like "ajaxWrite" not only break the contract locally, they start to cast aspersions on the efforts of scripters everywhere who are dedicated to an open application platform.

The web has succeeded in part because in trade for control over UIs, businesses gained the ability to deploy to everyone everywhere. In a world where the web is how business gets done, "cross platform" really means "cross browser". Single-render apps are bad for the web and bad business. What (aside from a larger potential to succeed as an app) would have the functional "open vs. closed" difference been if this thing had been written in Flex? Or XAML? All of these platforms are highly capable. More capable than the Open Web is today, but they are not the Open Web. The term "Ajax" is a proxy and an ambassador for Open Web technologies today. The message that "javascript works now" means that the same kinds of universal access to information that the static web made possible is now available to application authors. But not if shameless marketing shills co-opt the term to mean something that's harmful to the web. "ajaxWrite" is just such an abomination.

So I'm calling on Michael Robertson to do the right thing and rename this product. A quick check shows "" as still being available. There's still time to change course. Still time to avoid giving the Open Web the bird.

Older Posts

Newer Posts