[Twisted-Python] Twisted Presentation Materials...

Scary thought...
I am giving a talk on Twisted at Sage Developer Days. Its a fairly broad audience WRT levels of Pythonism.. but with other talks having titles like "Cylindrical Algebraic Decomposition", I doubt complexity in and of itself is a concern.
This is a good opportunity to decompose Twisted into its core elements... kinda how it would be presented to mathematics folks. If I don't screw it up, it might even be useful to a broader audience trying to figure out what Twisted is and the kinds of problems it addresses.
I welcome all pointers / content / suggestions.
-glenn

Glenn H Tarbox, PhD wrote:
Scary thought...
I am giving a talk on Twisted at Sage Developer Days. Its a fairly broad audience WRT levels of Pythonism.. but with other talks having titles like "Cylindrical Algebraic Decomposition", I doubt complexity in and of itself is a concern.
This is a good opportunity to decompose Twisted into its core elements... kinda how it would be presented to mathematics folks. If I don't screw it up, it might even be useful to a broader audience trying to figure out what Twisted is and the kinds of problems it addresses.
I welcome all pointers / content / suggestions.
Random synaptic spark: there's probably several different decompositions you could use, e.g., architectural, functional, protocol, ...
Happy hunting,

On Tue, May 6, 2008 at 5:56 PM, Glenn H Tarbox, PhD glenn@tarbox.org wrote:
Scary thought...
I am giving a talk on Twisted at Sage Developer Days. Its a fairly broad audience WRT levels of Pythonism.. but with other talks having titles like "Cylindrical Algebraic Decomposition", I doubt complexity in and of itself is a concern.
This is a good opportunity to decompose Twisted into its core elements... kinda how it would be presented to mathematics folks. If I don't screw it up, it might even be useful to a broader audience trying to figure out what Twisted is and the kinds of problems it addresses.
Hi,
I totally agree that talks that give a "What is Twisted?" type of presentation are a good opportunity to decompose Twisted into its core elements.
Actually, the Sage project, and how it has been using Twisted, is actually a really good case study of a project trying to get the most out of what Twisted offers.
First, let me introduce myself, and tell you why I have a unique view on the Sage project's use of Twisted. My name is Alex Clemesha, and I have been involved with the Sage project since its beginning. I actually moved to Seattle from UCSD for a while to work on it, with William Stein, a couple of years ago.
I also once did a small "What is Twisted?" talk at the University of Washington to many Sage developers about a year and a half ago, and this was before I really understood the 'bigger picture' of Twisted, and how all its moving parts are related.
Now, here is how the Sage projects uses Twisted: (You probably know this, but others might be interested):
a) The Sage notebook: (sagenb.org , http://www.flickr.com/photos/sagescreenshots/sets/72157603532209437/) b) DSage (Distrubuted Sage; http://www.sagemath.org/doc/html/ref/module-sage.dsage.dsage.html ) c) In the future: math/computation web-service/API
DSage is a framework for parallel computation (similar to ipython1), and uses Perspective Broker a great deal. Yi Qiang is the developer, and he also subscribes to this mailing list, so he might have more to say about it.
The Sage notebook is something I know a lot more about. In summary, the Sage notebook is a way to program in a notebook like interface, in a web browser. Each abitrary code block is sent to the server to be executed, and the result is sent back, and displayed inline. It utilizes twisted.web2 (including a twisted.web2 version of "guard.SessionWrapper", written by me ... I have felt the impact of the twisted.web / twisted.web2 debacel, but that's a story for another time :)
---
Shifting gears slightly, I would like to tell you about a project that me and some others have been working very hard on. It is called Knoboo (pronounced 'nobu') (trac.knoboo.com / knoboo.com) It's one that is really trying to get that most out of Twisted to create a online computation notebook (with all the really pretty front end, kind of like Mathematica + Google Docs + Google Notebook) combined with remote backend computation 'kernels'.
From an implementation standpoint, with Twisted, it looks like this:
* A main "App Server", that controls high level access with "twisted.cred" * Web frontend: "twisted.web2" * Data: some "twisted.enterprise.adbapi", moving to SQLAlchemy. * "Kernels": lightweight XMLRPC servers, local namespace is the "computation enviroment" * "Kernel Connections": "twisted.pb" Perspective Broker * "Kernel Managers": start,stop, send signals with "twisted.internet.protocol.ProcessProtocol"
Now I would like to pause for a minute and say: "Damn!, look at the above list. Twisted does a lot ... it's pretty incredible!"
Knoboo is now a "optional package" in Sage, and it is still changing a lot, but I think it speaks of the general idea of what the Sage dev group is aiming to get out of Twisted: to utilize all the separate pieces as best as possible, to create a single very useful tool.
Probably my main suggestion for Presentation materials is to go to the Finger Tutorial: http://twistedmatrix.com/projects/core/documentation/howto/tutorial/index.ht... and try to tweak it to really highlight the pieces that are in Twisted that Sage can benefit from.
Some questions come to mind like: "We have the Sage notebook, and we have DSage, and we want a math web service API, how can we tie them together with Twisted?"
and more specifically: with "twisted.cred" what will a "Notebook" avatar look like compared to a "DSage" avatar, and how can we write their different data access methods and other business logic, so they can best work together?
So, good luck with your presentation! I'm looking forward to seeing it and hopefully learning more about Twisted as well.
-Alex
I welcome all pointers / content / suggestions.
-glenn
Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

alex clemesha wrote:
From an implementation standpoint, with Twisted, it looks like this:
- A main "App Server", that controls high level access with "twisted.cred"
- Web frontend: "twisted.web2"
- Data: some "twisted.enterprise.adbapi", moving to SQLAlchemy.
Interesting; how are you handling asynchrony in SA? I'm aware of sAsync, but haven't looked much into it. (I'm a step or two behind you, actively using adbapi, and thinking about moving to SA when I get some breathing room.)
participants (3)
-
alex clemesha
-
Don Dwiggins
-
Glenn H Tarbox, PhD