[Twisted-Python] Twisted book(s)?

John Santos JOHN at egh.com
Wed Jun 3 13:05:43 MDT 2009


On 3 Jun 2009 twisted-python at twistedmatrix.com wrote:

> Return-Path: <twisted-python-bounces at twistedmatrix.com>
> Received: from mia.egh.com ([198.179.132.105]) by egh.com with ESMTP
>           for john at ives.egh.com; Wed, 3 Jun 2009 13:38:38 -0400
> Received: from del02.madmax.securepipe.com (IDENT:AUser at del02.madmax.securepipe.com [64.194.204.171])
> 	by mia.egh.com (8.13.6+Sun/8.13.6) with ESMTP id n53HcaWC001609
> 	for <john at egh.com>; Wed, 3 Jun 2009 13:38:38 -0400 (EDT)
> Received: (qmail 11993 invoked from network); 3 Jun 2009 13:38:35 -0400
> Received: from unknown (HELO scan08.madmax.securepipe.com) (10.10.33.158)
>   by del02.madmax.securepipe.com with (DHE-RSA-AES256-SHA encrypted) SMTP; 3 Jun 2009 13:38:35 -0400
> Received: (qmail 24989 invoked from network); 3 Jun 2009 13:38:35 -0400
> Received: from unknown (HELO rec09.madmax.securepipe.com) (10.10.35.108)
>   by scan08.madmax.securepipe.com with (DHE-RSA-AES256-SHA encrypted) SMTP; 3 Jun 2009 13:38:32 -0400
> Received: (qmail 31889 invoked from network); 3 Jun 2009 13:38:32 -0400
> Received: from unknown (HELO cube.twistedmatrix.com) (66.35.39.65)
>   by rec09.madmax.securepipe.com with (AES256-SHA encrypted) SMTP; 3 Jun 2009 13:38:32 -0400
> Received: from localhost ([127.0.0.1] helo=cube.twistedmatrix.com)
> 	by cube.twistedmatrix.com with esmtp (Exim 4.69)
> 	(envelope-from <twisted-python-bounces at twistedmatrix.com>)
> 	id 1MBuO8-0004KZ-Mh; Wed, 03 Jun 2009 13:36:32 -0400
> Received: from web34206.mail.mud.yahoo.com ([66.163.178.121])
> 	by cube.twistedmatrix.com with smtp (Exim 4.69)
> 	(envelope-from <andrewfr_ice at yahoo.com>) id 1MBuO6-0004KR-88
> 	for twisted-python at twistedmatrix.com; Wed, 03 Jun 2009 13:36:30 -0400
> Received: (qmail 39125 invoked by uid 60001); 3 Jun 2009 17:36:21 -0000
> Message-ID: <921406.38429.qm at web34206.mail.mud.yahoo.com>
> X-YMail-OSG: 73h2Cn8VM1lmMGFusyxf6h98zHdF3HQfAwnB4cuREAqquEoiATofvuhS6ER696QlSssO6A_9SwkZmXd9o_psu2YRlt2.KVKdCLfd5umTY1Vrde2la87LgM4dpGfcmpAE9OSqLaqHQqlRK0CGokPbSU5RoTQlIur41w1czT4PohrDdPVBn3eDVdWALxE1M5r4B1CJ0oVVrjlPBHNChVuKXvHwAqQwA9lHAjZiaHDfDxPQHuBDAW
> K3vOycgXitYFHtsvQ0Y62F2po2R0XtcloVdZnFzPacwxyEdjEg6A_FBilrwUlFKeblAgDubuhK5RxRTXikB2nxt38-
> Received: from [132.216.45.109] by web34206.mail.mud.yahoo.com via HTTP;
> 	Wed, 03 Jun 2009 10:36:20 PDT
> X-Mailer: YahooMailClassic/5.3.9 YahooMailWebService/0.7.289.10
> Date: Wed, 3 Jun 2009 10:36:20 -0700 (PDT)
> From: Andrew Francis <andrewfr_ice at yahoo.com>
> To: twisted-python at twistedmatrix.com
> MIME-Version: 1.0
> Cc: dave.conradie at googlemail.com
> Subject: Re: [Twisted-Python] Twisted book(s)?
> X-BeenThere: twisted-python at twistedmatrix.com
> X-Mailman-Version: 2.1.9
> Precedence: list
> Reply-To: Twisted general discussion <twisted-python at twistedmatrix.com>
> List-Id: Twisted general discussion <twisted-python.twistedmatrix.com>
> List-Unsubscribe: <http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python>,
> 	<mailto:twisted-python-request at twistedmatrix.com?subject=unsubscribe>
> List-Archive: <http://twistedmatrix.com/pipermail/twisted-python>
> List-Post: <mailto:twisted-python at twistedmatrix.com>
> List-Help: <mailto:twisted-python-request at twistedmatrix.com?subject=help>
> List-Subscribe: <http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python>,
> 	<mailto:twisted-python-request at twistedmatrix.com?subject=subscribe>
> Content-Type: text/plain; charset="us-ascii"
> Content-Transfer-Encoding: 7bit
> Sender: twisted-python-bounces at twistedmatrix.com
> Errors-To: twisted-python-bounces at twistedmatrix.com
> 
> 
> Hi David:
> 
> Message: 5
> Date: Wed, 03 Jun 2009 14:55:23 +1200
> From: David Conradie <dave.conradie at googlemail.com>
> Subject: [Twisted-Python] Twisted book(s)?
> To: twisted-python at twistedmatrix.com
> Message-ID: <4A25E61B.5050900 at googlemail.com>
> Content-Type: text/plain; charset="iso-8859-1"
> 
> >I'm fairly new to Python and very new to Twisted.   I find I learn new
> >material best from a book, so although I know there's lots of great
> >documentation and examples on twistedmatrix.com, I was considering
> >getting O'Reilly's Twisted book ('Twisted Network Programming
> >Essentials' by Abe Fettig).  But that book dates back to Oct 2005 so I
> >was wondering if it's still a worthwhile purchase - I'd guess Twisted
> >has moved a good bit since the book was written.  Any opinions?
> 
> Well the Abe Fettig book got me over the initial hump at a critical time, so I am grateful the book was out there. Also I really enjoyed the introduction by Glyph. 
> 
> From what I recall, the Python involved in the examples isn't 
> complex(it is 2005 so I don't believe you are going to be 
> seeing more exotic Python language constructs: i.e., generators, 
> comprehensions, decorators). I found Fettig's explanations of HTTP 
> client, server, resources, and the other protocols adequate. It is 
> really important to run and modify the examples to get a feel for what 
> is happening. Again, from what I recall, the main place I think 
> Fettig's book falls flat is its explanation of creating a new protocol. Attending Steve Holden's legendary "Teach Me Twisted" pycon 2008 talk gave me a better clue (one of these days I should write a protocol).
> 
> 
> If I had to provide Fettig with advice on a second edition, my recommendations:
> 
> 1) Show an example with a nested call, for example a HTTP Request Handler making a client.getPage() call, processing it, and returning the result. This is a common idiom and it would get more into depth about how deferreds work.
> 
> 1B) Get more into the relationship between protocols and the reactor: I was really confused over why some protocols used a return, others returned a deferred, and some returned None. 
> 
> 1C) Use more Twisted idioms, i.e., using inner functions for defining callbacks.
> 
> 2) Use class relationship diagrammes to show the relationship between various Twisted objects.
> 
> 3) Show Twisted control flow. I tried to do this in my Pycon 2008 talk (which I need to rewrite one of these days).
> 
> 4) Use WAY MORE DIAGRAMMES!!!!
> 
> Cheers,
> Andrew

Lots of the replies have echoed my experience, that the book was very 
helpful getting over the initial hump, but insufficient on its own.

I'm both a Python and Twisted newbie, but have been writing event-driven
programs for decades, so my situation is obviously different from
someone experienced in Python but a newbie to Twisted and/or event-
driven programming, or from a student totally new to programming.  My
biggest obstacle is the OOPS mindset; I've done a little Java but am
not really comfortable yet.  On the plus side, I seem to be adapting
to Pythom much more easily.

Anyway, Andrew's list is really to the point.  Especially diagramming
the relationships (items 1B and 2) would be really useful to me.

-- 
John Santos
Evans Griffiths & Hart, Inc.
781-861-0670 ext 539





More information about the Twisted-Python mailing list