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

Posted by name at Sat Jul 19 11:52:30 2008

Smotri i y4is,

Posted by name at Sun Jul 27 19:25:26 2008

neploxo tak, i`m glad,

Posted by Eduarda at Sat Dec 6 03:57:29 2014

I made it back home safely. I hope you did too. We made a great team, me maikng sure we didn't get late and you maikng sure we didn't get lost. ;-)

Posted by Hope at Wed Mar 11 00:45:58 2015

I think Tarek's work enables what you wnat but won't have the tools to do all of it.  vitrealunv will still be needed.  A tool to freeze requirements might still be needed (I haven't followed that aspect of what he's doing very well).  Also, implementation details may vary.  For instance, last I talked to Tarek, using .pth files was not necessary to achieve the same features.

Posted by Natia at Fri Apr 10 15:03:33 2015

I think everyone who uses zc.buildout sesuoirly has a ~/.buildout/default.cfg file with[buildout]eggs-directory = /home/(yourusername)/tmp/buildout-eggsdownload-cache = /home/(yourusername)/tmp/buildout-download-cacheThis makes buildout mostly usable, as it doesn't keep reinstalling the same version of the same package into each new buildout environment that you use.  (BTW it sucks that you cannot specify pathnames relative to your home directory in buildout config files.  There's an open bug about that.)