We were discussing RuleDispatch and how it determines which set of predicates are “more specific” and I asked, “is isinstance() more specific than hasattr()?” at which point Aaron Bickell asked an very interesting related question:
Are bowling balls more tasty than love?
Thus pointing out the absurdity of my original question. But now I want to know! Are bowling balls more tasty than love?
The Michigan Unix Users Group will be hosting a talk on the one laptop per child laptop. Ivan Krstik will be doing the talk, and I saw him talk about the OLPC at PyCon 2007, and he was a huge hit talking to a packed out (500+ people) room. I’m flying back to michigan overnight tonight, and I’m hoping I’ll be able to make it out to the talk.
They are doing some fantastic things with Python in the One Laptop Per Child project.
Looks like somebody packaged up ext.js’s great javascript grid into a reusable turbogears widget. I’ve been using ext.js for a project, and I have to say that the grid is powerful, flexible, and easy to modify.
We’re doing some crazy drag and drop within grids, between multiple grids, and custom formated cells, and it was remarkably easy to get ext.js to do what we wanted. But, our app is very much a javascript client with a turbogears server backend, and that kind of application isn’t particularly conducive to widgets. But, it’s been great to have TurboGears automatically transform our python dictionaries, into the JSON we need for the data store
I’d love to have some better documentation of how to use turbogears and ext.js together because it really is easy and provides a fun way to build rich javascript based web clients.
The last TurboGears 2 sprint and the following mad coding rush, resulted in lots of good stuff, both for Pylons, and TurboGears 2. Now we have a usable tg2 package, hopefully we’ll be able to create some docs, polish a few things up, and get ready for a tg2 technology preview release in the next few weeks.
Pylons gets TurboGears style controllers:
Pylons also has a controller that lets you return a dictionary from your controller objects to get a “TurbGears like” development experience within Pylons itself. Not only that, we’ve added a controller to Pylons that allows you to object dispatch within Pylons. You create a route to your controller’s route method, and pass the rest of the URL to there. These new controllers should bring the Pylons and TurboGears development experiences closer together all by themselves.
Improved code re-use in TurboGears2:
The changes in Pylons also made it possible for us to share code for even more components, including object dispatch, and the @expose decorator. So the latest version of TurboGears 2 relies on the latest development version of Pylons, and makes use all the new stuff we just added, dramatically reducing the amount in TurboGears2 and increasing our shared code.
The TurboGearsController went from a couple hundred lines of code to less than a half dozen. ;)
This opens up space to for the TurboGears2 project to focus on some improvements to the generated project template, and on building pluggable application components on top of the TG2 core. There are components already in the works for project documentation, automatic CRUD interfaces, and hopefully these will be joined by things like reusable user registration tools, blogs, web based forums, and a whole host of re-usable components.
Right now, TurboGears and has very little documentation — but things are moving forward quickly on the code side, and I’m very committed to documenting everything we do, and I’m really excited about the next sprint this weekend.
Upcomming Sprint, November 10
We should be able to improve the documentation, the tg2 test infrastructure, and test suite, and possibly make some progress on things like automatic transactions, and user authorization, etc. If you’re interested and available to help out stick your name on the wiki and come and join us either at Stanford, or virtually on IRC, and we’ll see how much we can get done.
I’ll be hosting a TG2 sprint here in Ann Arbor Michigan on October 27th, hopefully we’ll also have a large virtual presence from folks around the world.
If the sprint goes well it could get us very, very close to the point where we could reasonably do a TurboGears 2 technology preview release.
The main things we’ll need to do is sync up with the latest pylons, improve our tests, and do some basic doc organization work (migrate some information from the doc strings to the docs wiki, and create some pages which link to external docs). There’s lots of other things I want to do like improve out user authentication/authorization/registration support, or create a toolbox tool for helping create SQLAlchemy models. So, there’s tasks for anybody who can lend a hand.
If you’re available and want to help out (either attending physically or virtually), feel free to add your name to the wiki.
Likewise, if you can host a in-person sprint in another location, please feel free to edit the wiki with that information.