On 3 Jun 2009 twisted-python@twistedmatrix.com wrote: > Return-Path: <twisted-python-boun...@twistedmatrix.com> > Received: from mia.egh.com ([198.179.132.105]) by egh.com with ESMTP > for j...@ives.egh.com; Wed, 3 Jun 2009 13:38:38 -0400 > Received: from del02.madmax.securepipe.com > (IDENT:au...@del02.madmax.securepipe.com [64.194.204.171]) > by mia.egh.com (8.13.6+Sun/8.13.6) with ESMTP id n53HcaWC001609 > for <j...@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-boun...@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_...@yahoo.com>) id 1MBuO6-0004KR-88 > for twisted-python@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...@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_...@yahoo.com> > To: twisted-python@twistedmatrix.com > MIME-Version: 1.0 > Cc: dave.conra...@googlemail.com > Subject: Re: [Twisted-Python] Twisted book(s)? > X-BeenThere: twisted-python@twistedmatrix.com > X-Mailman-Version: 2.1.9 > Precedence: list > Reply-To: Twisted general discussion <twisted-python@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-requ...@twistedmatrix.com?subject=unsubscribe> > List-Archive: <http://twistedmatrix.com/pipermail/twisted-python> > List-Post: <mailto:twisted-python@twistedmatrix.com> > List-Help: <mailto:twisted-python-requ...@twistedmatrix.com?subject=help> > List-Subscribe: > <http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python>, > <mailto:twisted-python-requ...@twistedmatrix.com?subject=subscribe> > Content-Type: text/plain; charset="us-ascii" > Content-Transfer-Encoding: 7bit > Sender: twisted-python-boun...@twistedmatrix.com > Errors-To: twisted-python-boun...@twistedmatrix.com > > > Hi David: > > Message: 5 > Date: Wed, 03 Jun 2009 14:55:23 +1200 > From: David Conradie <dave.conra...@googlemail.com> > Subject: [Twisted-Python] Twisted book(s)? > To: twisted-python@twistedmatrix.com > Message-ID: <4a25e61b.5050...@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 _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python