WSGI goodness spreading to other languages

In Python, we’ve been enjoying the convenience of mixing and matching various things that follow the WSGI convention for a while. More recently, Rack brought those good features to a very similar interface for Ruby. And now I see:

Jack: Rack for JavaScript

echo “Rack provides an minimal interface between webservers supporting Ruby and Ruby frameworks” | sed -e s/Rack/Jack/g -e s/Ruby/JavaScript/g

Jack comes from Tom Robinson, one of the developers of Cappuccino/Objective-J.

Reinhardt: a client-side web framework

At PyCon in March, I spoke about how applications can be browser-driven. For the past few months, I’ve been involved with a browser-driven app. Remarkably, some of the same kinds of problems crop up when making a browser-driven app as when you’re making a traditional server-driven webapp. So, today I introduced something called Reinhardt, a client-side web framework. Using Dojo’s Django Template Engine implementation (dojox.dtl), Dojo’s data model ( and Reinhardt’s new Django-inspired URL dispatcher you get something that approximates a server-side web framework all on the client side.

Let’s meet up in Atlanta at PyWorks!


This year has seemed like a big year for Python conference activity in the US. Of course, there was PyCon in March, which topped 1,000 attendees. I’ve also seen announcements for a bunch of regional Python gatherings (like PyOhio, which was close by but I couldn’t attend).

This year, we also get PyWorks, which is joined at the hip with php|works in Atlanta in November. This is the first year for PyWorks, and they’ve got a good lineup going. There’s a day of tutorials and two days of talks, so this is more like a PyCon than it is like those regional conferences.

In addition to attending talks myself, I’m hoping to meet some more good Python and/or JavaScript folks in the “hallway track”. I’m sure there will be lots of Dojo users mixed in with the Python and PHP people, so we should get together.

I have four speaking slots (one of which isn’t listed yet) over the two conference days (gadzooks!). I’ll be doing a revised and expanded version of my PyCon talk “Rich Client Web Applications with TurboGears 2 and Dojo”. I’ll also be giving an updated version of the “Easy build and deployment automation with Paver” talk that Mark Ramm gave in my stead at PyOhio. Paver really puts the “scripting” back in “Python scripting language” (Python certainly does a lot more than “scripting”!)

I’ll also be giving a talk called “ZODB: The Most Underappreciated Library in Python”. The ZODB is great. More people should use it. This is a talk I gave a couple months back at MichiPUG, so it’s only been seen by a small group at this point.

My fourth talk is one I haven’t given anywhere before: “Beyond the Source: Growing Your Community”. I’m going to talk in concrete terms about things you can do to grow an open source community. Open source projects really need to get to a certain level of use before they become viable open source projects, and there are many, many ways in which people interested in a project can help it get there.

I hope to see you there!

The Tech of SitePen Support

I’ve just posted an article with some details on how SitePen’s Support system is built. We use Python on the server and Dojo-driven JavaScript on the browser to create a responsive system. The model we use is similar to what I described in my PyCon 2008 talk where the client is driving the interaction rather than the server.

SitePen’s Support service is built using a variety of interesting techniques and technologies. Read on to see how we built a system that treats the web browser as a real client tier and bridges the worlds of JavaScript, Python and PHP seamlessly to provide a great experience for our customers.

[From SitePen Blog » The Tech of SitePen Support]

A change in Dojo leadership

Alex Russell has announced on his blog:

Two days ago I dusted off the rarely-used voting procedure for Dojo Foundation projects in order to kick off a transition that I’m very excited about: as of this afternoon, the committers of the Dojo project have elected Peter Higgins the new Project Lead for the toolkit project.

[From Dojo Transitions | Continuing Intermittent Incoherency]

So far at SitePen, I’ve had more of an opportunity to work with Peter than with Alex. Peter’s been a knowledgeable, always helpful and fun coworker. He’s going to do a terrific job for Dojo.

Alex has done amazing work to bring Dojo to where it is today (and it’s in quite a good spot). I’m certain that we (the web development community) are going to see very cool new stuff show up as a result of Alex taking a step away from day-to-day leadership on the Dojo Toolkit.

Congrats on the transition, guys!

Dojo Toolbox around the web

Rey Bango at Ajaxian says that “This is a “must-have” for Dojo developers.”. I also enjoyed jdalton’s comment “I totally love this. I don’t even use Dojo and I totally love this. Well done :)”.

Adobe AIR evangelist Ryan Stewart mentions that “it’s basically 100% Dojo”. I did get an email from someone who was curious about what it’s like to create an AIR app using JavaScript. It’s really just like creating any JavaScript-intensive webapp, except you only target one, very capable browser engine (WebKit) and have additional APIs available for things like files, sqlite databases and native windows. Everything you know about web development translates very nicely.

Alex Russell mentions that we were able to port James Burke’s excellent work on the Rhino-based build tool that comes with Dojo. James did a great job on Dojo’s build system. Had he structured things differently, or not written the build system in JavaScript, it would have been difficult to impossible to create the Builder tool. But, as it was things fell into place fairly neatly. We need to get a patch together against Dojo’s build scripts and then the Toolbox will be able to share the code with the Rhino build directly.

Vote us up on DZone!

Peter Higgins, who was quite involved in the development of the Toolbox, put his take up on

And for the German speakers among you, here’s a take on the Toolbox for you. Vielen dank!

What I’ve been up to: The Dojo Toolbox

Today, we unveiled a project that I’ve been quite busy with the past few weeks: The Dojo Toolbox. Check out my First Look article to learn more about it or watch my 5 minute screencast:

The short story is that it’s an Adobe AIR-based app, built with Dojo itself, that gives you a zippy offline API documentation viewer and a graphical user interface for running Dojo builds.

This was my first interaction with the development side of AIR and my overall impression is quite good. The APIs are nicely done, and only having to target WebKit is quite a blessing.

Of course, I’m better known for my Python projects than JavaScript-related projects. In this case, we are using Paver to manage our builds and we also have Python code that processes the API documentation and generates the search index.

My colleagues and I had a great time putting this together. Thanks to SitePen and Adobe for sponsoring this project!

Easy, Repeatable Building/Deployment of Python+Dojo Projects

My latest substantial blog post is now up: SitePen Blog » Easy, Repeatable Building/Deployment of Python+Dojo Projects

Dojo on the client and Python on the server make for a great combination. They’re easy, productive and powerful. In this article, I’ll show you how to use Python + Dojo to cut the number of requests to your server by 95% and simplify development and deployment while you’re at it.

Why Java remains the most popular language on the JVM

My latest blog post is up on the SitePen blog:

Mark Ramm-Christensen posed some questions about using the JVM as a platform for dynamic languages. Many people do, in fact, use dynamic languages on the JVM (Groovy, Beanshell, Rhino, Jython, JRuby are some big ones… and don’t forget Scala, Nice and other “non-dynamic” languages that target the JVM). But Java the platform has not gotten widespread or serious attention until recently (witness the recent resurgence of Jython, the rise of JRuby and the coming of the Da Vinci Machine).
[From Why Java remains the most popular language on the JVM]

Answering the question “Why Java remains the most popular language on the JVM” gives clues as to what might be the next most popular language on that platform.