On Jan 23, 2008 4:36 PM, <glyph@divmod.com> wrote:
On 12:10 am, clemesha@gmail.com wrote:
>Thanks Steve Holden for organizing this, it's a great idea.

Indeed!
>Some nice topics might include:

Thanks for the suggestions.  Do you have any others?  :-)  

For my usage of twisted, these are important to me and I am
the most familiar with them. (See below)


I hate to
rain on your parade here, but I think maybe my explanation of why I
don't like these suggestions will spark discussion of more different
ones...
>a) Start off simple with a " twisted.web2" example (everyone "gets"
>http)

I think that this is actually something we should avoid in a tutorial.
The web situation in Twisted is complicated
( http://twistedmatrix.com/trac/wiki/WebDevelopmentWithTwisted).  web2 in
particular is suffering from an extreme lack of maintenance and still
has never "officially" been released; work is just starting to get
underway to unify t.web2 and nevow into t.web and reduce the confusion,
but this is all still in progress and who knows when, how, or even if it
will be completed.  
 
Oh yes, I know, I know.  While learning twisted I read *most* (that's alot ;)
of posts to the twisted-web mailing list.  So I am very familiar with the state.

That said, oh how I wish you guys could make twisted.web2 the one and only!!!
It would be good for beginners and others alike.

Note however: I can only barely imagine how hard that might be,
so I am *definitely not* complaining ... Twisted is excellent, thanks very much for it.


If you get a group of experienced Twisted folks
together to talk about writing web applications, you're more likely to
spark a debate than an educational session.

Even if all these problems were fixed, and there were a really good,
well-supported, universally understood web server for Twisted, the
benefits of Twisted's programming model are not immediately obvious to
the bread and butter of the web programming world.  Learning how to use
some combination of Twisted tools to generate a web page will always be
at least a little bit harder than writing the sort of glorified CGI
script that most web frameworks require these days - unless you're using
something like Athena, which might be too much complexity to address in
a single tutorial session.  (And while Athena is more polished and "one
right way" than the lower-level HTTP stuff, there is still a painful
dearth of documentation, not to mention the fact that you need to write
JavaScript as well as Python.)

"Comet" (aka what Athena does) is one of my main uses of twisted, see

http://svn.xantus.org/shortbus/trunk/cometd-twisted/

is some code that I use. 

That and other ajax-y stuff.  Not much templating html, etc.



Twisted really shines best when you're writing a client as well as a
server.  Chat is the quintessential application where Twisted makes the
most sense - and the lack of a well-documented chat server is much less
of a problem than the lack of a well-documented web server, since you
can easily define a wire protocol and wacky semantics for your purpose-
built tutorial chat application.
Yes!
 

>b) then plug that into a simple sqlite database using
>" twisted.enterprise"

twisted.enterprise is similarly a scary and inconsistent area, and
requires understanding the interaction of the DB thread and the reactor
thread.  (And at least part of this section would have to be dedicated
to "and never, ever touch anything in this package aside from adbapi".)

I only ever use 'adbapi'.  The reason I say this is database functionality
is pretty darn important for all non-trivial programs, so programmers need/want
to know about this functionality, wouldn't you agree?
 

>d) Show how using "twistd" is really convient
>(i.e. "twistd -ny server.tac" and "twistd -y server.tac", with some
>logging
>capability, etc)

This, however, is a great suggestion.  Twisted plugins should be part of
this discussion. 
Yes.


Thanks again for Twisted!

-Alex
 


_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python