Re: [Twisted-Python] Twisted book(s)?
On 3 Jun 2009 twisted-python@twistedmatrix.com wrote:
Return-Path: <twisted-python-bounces@twistedmatrix.com> Received: from mia.egh.com ([198.179.132.105]) by egh.com with ESMTP for john@ives.egh.com; Wed, 3 Jun 2009 13:38:38 -0400 Received: from del02.madmax.securepipe.com (IDENT:AUser@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@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@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@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.qm@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@yahoo.com> To: twisted-python@twistedmatrix.com MIME-Version: 1.0 Cc: dave.conradie@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-request@twistedmatrix.com?subject=unsubscribe> List-Archive: <http://twistedmatrix.com/pipermail/twisted-python> List-Post: <mailto:twisted-python@twistedmatrix.com> List-Help: <mailto:twisted-python-request@twistedmatrix.com?subject=help> List-Subscribe: <http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python>, <mailto:twisted-python-request@twistedmatrix.com?subject=subscribe> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: twisted-python-bounces@twistedmatrix.com Errors-To: twisted-python-bounces@twistedmatrix.com
Hi David:
Message: 5 Date: Wed, 03 Jun 2009 14:55:23 +1200 From: David Conradie <dave.conradie@googlemail.com> Subject: [Twisted-Python] Twisted book(s)? To: twisted-python@twistedmatrix.com Message-ID: <4A25E61B.5050900@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
participants (1)
-
John Santos