Tue, 08 Jul 2008

TurboGears2 slides & code from FUDCon 2008 Boston

I posted my TurboGears2 slides from FUDCon 2008 Boston here. Since I gave a TurboGears1 talk at the previous FUDCon (slides here), I based this recent talk on the assumption that people already understand some of the basic concepts of TG1. During the session I covered a wide range of technologies, including WSGI, Pylons, ToscaWidgets, Paste, SQLAlchemy, SQLObject, Kid, Genshi, Beaker, DBSprockets, DBMechanic, jQuery, Comet, Orbited, etc.

So, for this presentation I wanted to start a new application from scratch to use as an example. Turns out, I ended up implementing something similar to brainstorm.ubuntu.com -- but better. Not only does it allow you to share, rank, and collaborate on ideas, but you can also ask, answer, and rate questions as well. The thing that makes this application really stand out is that once you land on the page, the widgets update themselves in *real-time*. To accomplish this, I created a bunch of ToscaWidgets, which are re-usable bundles of xhtml+css+javascript that I can easily use all over my application. When the widgets are rendered in the clients browser, they open a persistent comet connection back to our Orbited server. From here, our TurboGears application sends events to Orbited as they happen, which then get sent asynchronously back to our clients where jQuery handles rendering the results.

For more details about this app, including screenshots and code snippets, take a look at my slides. You can also grab the code and dive in (note: you'll need to setup TG2 in a virtualenv (instructions) until the stack makes its way into Fedora):

git clone git://fedorapeople.org/~lmacken/manas

Now, this app is merely a prototype that I started writing as an example for teaching TG2. As it turns out, this project could potentially be extremely useful, and I've received a lot of positive feedback around it. However, there is still a little bit of work to do before it is deployable. If you're interested in helping out, please drop me a line.

posted at: 21:47 | link | Tags: , , , , | 5 comments