.:
total 300
-rw-r--r-- 1 wesc wesc  64987 Jul 19  2012 all.tgz
-rw-r--r-- 1 wesc wesc 141550 Jul 19  2012 all.zip
drwxr-xr-x 2 wesc wesc   4096 Mar  1  2012 ch01/
drwxr-xr-x 2 wesc wesc   4096 Feb 25  2012 ch02/
drwxr-xr-x 2 wesc wesc   4096 Feb 27  2012 ch03/
drwxr-xr-x 2 wesc wesc   4096 Feb 27  2012 ch04/
drwxr-xr-x 2 wesc wesc   4096 Feb 28  2012 ch05/
drwxr-xr-x 2 wesc wesc   4096 Feb 27  2012 ch06/
drwxr-xr-x 2 wesc wesc   4096 Feb 28  2012 ch07/
drwxr-xr-x 3 wesc wesc   4096 Feb 27  2012 ch08/
drwxr-xr-x 2 wesc wesc   4096 Feb 27  2012 ch09/
drwxr-xr-x 2 wesc wesc   4096 Feb 29  2012 ch10/
drwxr-xr-x 4 wesc wesc   4096 Mar  2  2012 ch11/
drwxr-xr-x 2 wesc wesc   4096 Mar 23  2012 ch12/
drwxr-xr-x 2 wesc wesc   4096 Sep  2  2015 ch13/
drwxr-xr-x 2 wesc wesc   4096 Sep  2  2015 ch14/
drwxr-xr-x 2 wesc wesc   4096 Aug 16  2012 ch15/
-rw-r--r-- 1 wesc wesc   1791 Mar  8  2012 COLOPHON.txt
-rw-r--r-- 1 wesc wesc    320 Mar  8  2012 COPYRIGHT.txt
-rw-r--r-- 1 wesc wesc    824 Mar  8  2012 LICENSE.txt
-rw-r--r-- 1 wesc wesc      0 Jul 28 09:01 ls-lFR.txt
-rw-r--r-- 1 wesc wesc  12995 Jul 19  2012 README.html

./ch01:
total 40
-rwxr-xr-x 1 wesc wesc 643 Feb 25  2012 gendata3.py*
-rwxr-xr-x 1 wesc wesc 591 Feb 25  2012 gendata-64b.py*
-rwxr-xr-x 1 wesc wesc 620 Feb 25  2012 gendata.py*
-rwxr-xr-x 1 wesc wesc 745 Feb 25  2012 gendataU.py*
-rw-r--r-- 1 wesc wesc 347 Feb 25  2012 README.html
-rwxr-xr-x 1 wesc wesc 236 Feb 24  2012 retasklist.py*
-rwxr-xr-x 1 wesc wesc 209 Feb 25  2012 rewho3-hacker.py*
-rwxr-xr-x 1 wesc wesc 162 Feb 24  2012 rewho3.py*
-rwxr-xr-x 1 wesc wesc 157 Feb 24  2012 rewho.py*
-rwxr-xr-x 1 wesc wesc 205 Feb 24  2012 rewhoU.py*

./ch02:
total 60
-rw-r--r-- 1 wesc wesc 452 Feb 25  2012 README.html
-rwxr-xr-x 1 wesc wesc 429 Sep 11  2010 tsTclnt3.py*
-rwxr-xr-x 1 wesc wesc 424 Sep 11  2010 tsTclnt3V6.py*
-rwxr-xr-x 1 wesc wesc 400 Sep 11  2010 tsTclnt.py*
-rwxr-xr-x 1 wesc wesc 413 Sep 11  2010 tsTclntSS.py*
-rwxr-xr-x 1 wesc wesc 724 Sep 11  2010 tsTclntTW.py*
-rwxr-xr-x 1 wesc wesc 395 Sep 11  2010 tsTclntV6.py*
-rwxr-xr-x 1 wesc wesc 665 Sep 11  2010 tsTserv3.py*
-rwxr-xr-x 1 wesc wesc 666 Sep 11  2010 tsTserv3V6.py*
-rwxr-xr-x 1 wesc wesc 560 Mar 19  2009 tsTserv.py*
-rwxr-xr-x 1 wesc wesc 492 Mar 19  2009 tsTservSS.py*
-rwxr-xr-x 1 wesc wesc 535 Sep 11  2010 tsTservTW.py*
-rwxr-xr-x 1 wesc wesc 561 Sep 11  2010 tsTservV6.py*
-rwxr-xr-x 1 wesc wesc 391 Sep 11  2010 tsUclnt.py*
-rwxr-xr-x 1 wesc wesc 431 Mar 19  2009 tsUserv.py*

./ch03:
total 36
-rwxr-xr-x 1 wesc wesc 1342 Feb 25  2012 email-examples.py*
-rwxr-xr-x 1 wesc wesc 2390 Feb 27  2012 getFirstNNTP3.py*
-rwxr-xr-x 1 wesc wesc 2367 Sep 12  2010 getFirstNNTP.py*
-rwxr-xr-x 1 wesc wesc 1129 Feb 27  2012 getLatestFTP3.py*
-rwxr-xr-x 1 wesc wesc 1119 Feb 27  2012 getLatestFTP.py*
-rwxr-xr-x 1 wesc wesc 2217 Feb 25  2012 gmail.py*
-rwxr-xr-x 1 wesc wesc  728 Feb 25  2012 myMail.py*
-rw-r--r-- 1 wesc wesc  430 Feb 25  2012 README.html
-rwxr-xr-x 1 wesc wesc 2290 Feb 25  2012 ymail.py*

./ch04:
total 104
-rwxr-xr-x 1 wesc wesc  861 Feb 27  2012 bookrank3CF.py*
-rwxr-xr-x 1 wesc wesc  977 Feb 27  2012 bookrank3.py*
-rwxr-xr-x 1 wesc wesc  951 Feb 27  2012 bookrank.py*
-rwxr-xr-x 1 wesc wesc 1252 Apr  5  2011 candy3.py*
-rwxr-xr-x 1 wesc wesc 1229 Apr  5  2011 candy.py*
-rwxr-xr-x 1 wesc wesc 1016 Sep 12  2010 mtfacfib3.py*
-rwxr-xr-x 1 wesc wesc  994 Nov 16  2011 mtfacfib.py*
-rwxr-xr-x 1 wesc wesc  515 Feb 27  2012 mtsleepA3.py*
-rwxr-xr-x 1 wesc wesc  506 Sep 20  2006 mtsleepA.py*
-rwxr-xr-x 1 wesc wesc  732 Feb 27  2012 mtsleepB3.py*
-rwxr-xr-x 1 wesc wesc  719 Sep 12  2010 mtsleepB.py*
-rwxr-xr-x 1 wesc wesc  726 Feb 27  2012 mtsleepC3.py*
-rwxr-xr-x 1 wesc wesc  716 Sep 12  2010 mtsleepC.py*
-rwxr-xr-x 1 wesc wesc  978 Feb 27  2012 mtsleepD3.py*
-rwxr-xr-x 1 wesc wesc  968 Sep 12  2010 mtsleepD.py*
-rwxr-xr-x 1 wesc wesc  897 Feb 27  2012 mtsleepE3.py*
-rwxr-xr-x 1 wesc wesc  872 Mar 27  2011 mtsleepE.py*
-rwxr-xr-x 1 wesc wesc 1121 Apr  4  2011 mtsleepF3.py*
-rwxr-xr-x 1 wesc wesc 1118 Apr  4  2011 mtsleepF.py*
-rwxr-xr-x 1 wesc wesc  589 Sep 12  2010 myThread3.py*
-rwxr-xr-x 1 wesc wesc  587 Sep 12  2010 myThread.py*
-rwxr-xr-x 1 wesc wesc  423 Sep 12  2010 onethr3.py*
-rwxr-xr-x 1 wesc wesc  423 Sep 20  2006 onethr.py*
-rwxr-xr-x 1 wesc wesc 1039 Sep 11  2010 prodcons3.py*
-rwxr-xr-x 1 wesc wesc 1027 Sep 11  2010 prodcons.py*
-rw-r--r-- 1 wesc wesc  673 Feb 25  2012 README.html

./ch05:
total 84
-rwxr-xr-x 1 wesc wesc 1575 Feb 27  2012 animalGtk.pyw*
-rwxr-xr-x 1 wesc wesc  675 Feb 27  2012 animalPmw3.pyw*
-rwxr-xr-x 1 wesc wesc  675 Feb 27  2012 animalPmw.pyw*
-rwxr-xr-x 1 wesc wesc  641 Feb 27  2012 animalTix3.pyw*
-rwxr-xr-x 1 wesc wesc  633 Feb 27  2012 animalTix.pyw*
-rwxr-xr-x 1 wesc wesc  606 Apr 12  2011 animalTtk3.pyw*
-rwxr-xr-x 1 wesc wesc  597 Apr 12  2011 animalTtk.pyw*
-rwxr-xr-x 1 wesc wesc 1388 Feb 27  2012 animalWx.pyw*
-rwxr-xr-x 1 wesc wesc 3454 Feb 27  2012 listdir3.py*
-rwxr-xr-x 1 wesc wesc 3454 Feb 27  2012 listdir.py*
-rwxr-xr-x 1 wesc wesc 1169 Feb 27  2012 pfaGUI3.py*
-rwxr-xr-x 1 wesc wesc 1163 Feb 27  2012 pfaGUI.py*
-rw-r--r-- 1 wesc wesc  886 Feb 27  2012 README.html
-rwxr-xr-x 1 wesc wesc  146 Feb 27  2012 tkhelloA3.py*
-rwxr-xr-x 1 wesc wesc  146 Sep 21  2000 tkhelloA.py*
-rwxr-xr-x 1 wesc wesc  168 Feb 27  2012 tkhelloB3.py*
-rwxr-xr-x 1 wesc wesc  168 Sep 21  2000 tkhelloB.py*
-rwxr-xr-x 1 wesc wesc  273 Feb 27  2012 tkhelloC3.py*
-rwxr-xr-x 1 wesc wesc  273 Sep 20  2006 tkhelloC.py*
-rwxr-xr-x 1 wesc wesc  550 Feb 27  2012 tkhelloD3.py*
-rwxr-xr-x 1 wesc wesc  550 Sep 21  2000 tkhelloD.py*

./ch06:
total 32
-rw-r--r-- 1 wesc wesc  337 Feb 27  2012 README.html
-rwxr-xr-x 1 wesc wesc 4680 Sep 10  2011 ushuffle_db.py*
-rwxr-xr-x 1 wesc wesc 5389 Feb 27  2012 ushuffle_dbU.py*
-rwxr-xr-x 1 wesc wesc 2169 Sep 10  2011 ushuffle_mongo.py*
-rwxr-xr-x 1 wesc wesc 3474 Feb 12  2012 ushuffle_sad.py*
-rwxr-xr-x 1 wesc wesc 2832 Sep 10  2011 ushuffle_so.py*

./ch07:
total 52
-rwxr-xr-x 1 wesc wesc 1424 Feb 27  2012 estock3.pyw*
-rwxr-xr-x 1 wesc wesc 1404 Feb 27  2012 estock.pyw*
-rwxr-xr-x 1 wesc wesc  754 Feb 27  2012 excel3.pyw*
-rwxr-xr-x 1 wesc wesc  741 Feb 27  2012 excel.pyw*
-rwxr-xr-x 1 wesc wesc  908 Feb 27  2012 olook3.pyw*
-rwxr-xr-x 1 wesc wesc  896 Feb 27  2012 olook.pyw*
-rwxr-xr-x 1 wesc wesc 1141 Feb 27  2012 outlook_edit.pyw*
-rwxr-xr-x 1 wesc wesc  874 Feb 27  2012 ppoint3.pyw*
-rwxr-xr-x 1 wesc wesc  862 Feb 27  2012 ppoint.pyw*
-rw-r--r-- 1 wesc wesc  437 Feb 27  2012 README.html
-rwxr-xr-x 1 wesc wesc 3098 Apr 20  2011 txt2ppt.pyw*
-rwxr-xr-x 1 wesc wesc  764 Feb 27  2012 word3.pyw*
-rwxr-xr-x 1 wesc wesc  752 Feb 27  2012 word.pyw*

./ch08:
total 16
-rw-r--r-- 1 wesc wesc  891 Sep 20  2006 Extest1.c
-rw-r--r-- 1 wesc wesc 1713 Sep 20  2006 Extest2.c
-rw-r--r-- 1 wesc wesc  272 Feb 27  2012 README.html
-rwxr-xr-x 1 wesc wesc  164 Apr 30  2006 setup.py*

./ch09:
total 40
-rwxr-xr-x 1 wesc wesc 4180 Feb 27  2012 crawl3.py*
-rwxr-xr-x 1 wesc wesc 3986 Feb 27  2012 crawl.py*
-rwxr-xr-x 1 wesc wesc 2366 Feb 27  2012 mech.py*
-rwxr-xr-x 1 wesc wesc  851 Feb 27  2012 myhttpd3.py*
-rwxr-xr-x 1 wesc wesc  851 May 22  2011 myhttpd.py*
-rwxr-xr-x 1 wesc wesc 2016 Feb 27  2012 parse_links.py*
-rw-r--r-- 1 wesc wesc  372 Feb 27  2012 README.html
-rwxr-xr-x 1 wesc wesc  940 Feb 27  2012 urlopen_auth3.py*
-rwxr-xr-x 1 wesc wesc  853 Feb 27  2012 urlopen_auth.py*

./ch10:
total 52
-rwxr-xr-x 1 wesc wesc 6218 Feb 27  2012 advcgi3.py*
-rwxr-xr-x 1 wesc wesc 6070 Aug 31  2011 advcgi.py*
-rwxr-xr-x 1 wesc wesc  400 Feb 27  2012 friendsA3.py*
-rwxr-xr-x 1 wesc wesc  399 Dec 30  2000 friendsA.py*
-rwxr-xr-x 1 wesc wesc 1449 Feb 27  2012 friendsB3.py*
-rwxr-xr-x 1 wesc wesc 1446 Aug 28  2011 friendsB.py*
-rwxr-xr-x 1 wesc wesc 2295 Feb 27  2012 friendsC3.py*
-rwxr-xr-x 1 wesc wesc 2283 Aug 28  2011 friendsC.py*
-rw-r--r-- 1 wesc wesc  570 Aug 26  2011 friends.htm
-rw-r--r-- 1 wesc wesc  361 Feb 27  2012 README.html
-rwxr-xr-x 1 wesc wesc  392 Feb 27  2012 uniCGI.py*

./ch11:
total 12
drwxr-xr-x 5 wesc wesc 4096 Mar  2  2012 myproject/
drwxr-xr-x 3 wesc wesc 4096 Mar  2  2012 mysite/
-rw-r--r-- 1 wesc wesc 1157 Mar  2  2012 README.html

./ch11/myproject:
total 28
drwxr-xr-x 2 wesc wesc 4096 Mar  1  2012 approver/
-rw-r--r-- 1 wesc wesc    0 Jan 11  2011 __init__.py
-rw-r--r-- 1 wesc wesc  503 Mar  2  2012 manage.py
drwxr-xr-x 2 wesc wesc 4096 Apr  4  2012 poster/
-rw-r--r-- 1 wesc wesc 5311 Mar  2  2012 settings.py
drwxr-xr-x 2 wesc wesc 4096 Jan  5  2012 templates/
-rw-r--r-- 1 wesc wesc  596 Mar  1  2012 urls.py

./ch11/myproject/approver:
total 16
-rw-r--r-- 1 wesc wesc    0 Jan 11  2011 __init__.py
-rw-r--r-- 1 wesc wesc   57 Jan 11  2011 models.py
-rw-r--r-- 1 wesc wesc  514 Jan 11  2011 tests.py
-rw-r--r-- 1 wesc wesc  174 Jan 12  2011 urls.py
-rw-r--r-- 1 wesc wesc 3810 Jan 30  2012 views.py

./ch11/myproject/poster:
total 20
-rw-r--r-- 1 wesc wesc   91 Mar 27  2012 admin.py
-rw-r--r-- 1 wesc wesc    0 Dec  4  2010 __init__.py
-rw-r--r-- 1 wesc wesc  878 Jan 30  2012 models.py
-rw-r--r-- 1 wesc wesc  514 Dec  4  2010 tests.py
-rw-r--r-- 1 wesc wesc  200 Dec 23  2010 urls.py
-rw-r--r-- 1 wesc wesc 1666 Apr  4  2012 views.py

./ch11/myproject/templates:
total 20
-rw-r--r-- 1 wesc wesc 1227 Dec  6  2010 list_tweets.html
-rw-r--r-- 1 wesc wesc  531 Dec 20  2010 login.html
-rw-r--r-- 1 wesc wesc  237 Dec  5  2010 post_tweet.html
-rw-r--r-- 1 wesc wesc  920 Dec  6  2010 review_tweet.html
-rw-r--r-- 1 wesc wesc  376 Dec  4  2010 thank_you.html

./ch11/mysite:
total 20
drwxr-xr-x 3 wesc wesc 4096 Mar  1  2012 blog/
-rw-r--r-- 1 wesc wesc    0 Dec  8  2010 __init__.py
-rw-r--r-- 1 wesc wesc  517 Mar  2  2012 manage.py
-rw-r--r-- 1 wesc wesc 5039 Mar  2  2012 settings.py
-rw-r--r-- 1 wesc wesc  466 Dec 17  2010 urls.py

./ch11/mysite/blog:
total 24
-rw-r--r-- 1 wesc wesc  192 Dec 16  2010 admin.py
-rw-r--r-- 1 wesc wesc    0 Dec  9  2010 __init__.py
-rw-r--r-- 1 wesc wesc  374 Mar  1  2012 models.py
drwxr-xr-x 2 wesc wesc 4096 Mar  1  2012 templates/
-rw-r--r-- 1 wesc wesc 1205 Jan 30  2012 tests.py
-rw-r--r-- 1 wesc wesc  158 Mar  1  2012 urls.py
-rw-r--r-- 1 wesc wesc  647 Jan 12  2011 views.py

./ch11/mysite/blog/templates:
total 4
-rw-r--r-- 1 wesc wesc 696 Dec 19  2010 archive.html

./ch12:
total 28
-rw-r--r-- 1 wesc wesc 174 Feb 29  2012 app.yaml-default
-rw-r--r-- 1 wesc wesc 195 Feb 29  2012 app.yaml-py27
-rw-r--r-- 1 wesc wesc 361 Feb 29  2012 main.py-clean
-rw-r--r-- 1 wesc wesc 398 Feb 29  2012 main.py-default
-rw-r--r-- 1 wesc wesc 192 Mar 23  2012 main.py-py27
-rw-r--r-- 1 wesc wesc 374 Dec 13  2011 main.py-py27-users
-rw-r--r-- 1 wesc wesc 483 Feb 29  2012 README.html

./ch13:
total 52
-rw-r--r-- 1 wesc wesc  606 Jul 28 08:57 README.html
-rw-r--r-- 1 wesc wesc 1873 Aug 30  2015 settings_TMPL.py
-rwxr-xr-x 1 wesc wesc  520 Feb 28  2012 stock3.py*
-rwxr-xr-x 1 wesc wesc  485 Feb 28  2012 stock-orig.py*
-rwxr-xr-x 1 wesc wesc  666 Aug 30  2015 stock.py*
-rwxr-xr-x 1 wesc wesc 5970 Feb 28  2012 twapi-orig.py*
-rwxr-xr-x 1 wesc wesc 5458 Aug 30  2015 twapi.py*
-rw-r--r-- 1 wesc wesc  591 Aug 16  2012 twe_a.py
-rw-r--r-- 1 wesc wesc  423 Aug 16  2012 twe_u.py
-rw-r--r-- 1 wesc wesc  765 Aug 16  2012 twy_a.py
-rw-r--r-- 1 wesc wesc  570 Aug 16  2012 twy_u.py

./ch14:
total 40
-rwxr-xr-x 1 wesc wesc  633 Feb 27  2012 csvex-orig.py*
-rwxr-xr-x 1 wesc wesc  657 Sep  2  2015 csvex.py*
-rwxr-xr-x 1 wesc wesc  755 Feb 27  2012 dict2json-orig.py*
-rwxr-xr-x 1 wesc wesc  618 Sep  2  2015 dict2json.py*
-rwxr-xr-x 1 wesc wesc 1176 Feb 27  2012 dict2xml-orig.py*
-rwxr-xr-x 1 wesc wesc 1211 Sep  2  2015 dict2xml.py*
-rwxr-xr-x 1 wesc wesc 1367 Feb 27  2012 goognewsrss.py*
-rw-r--r-- 1 wesc wesc  591 Jul 28 08:58 README.html
-rwxr-xr-x 1 wesc wesc  762 Feb 27  2012 xmlrpcclnt.py*
-rwxr-xr-x 1 wesc wesc 1585 Feb 27  2012 xmlrpcsrvr.py*

./ch15:
total 36
-rwxr-xr-x 1 wesc wesc 1082 Aug 16  2012 plus_a.py*
-rwxr-xr-x 1 wesc wesc  514 Apr  6  2012 plus.py*
-rwxr-xr-x 1 wesc wesc 4126 Feb 28  2012 plus_top_posts.py*
-rwxr-xr-x 1 wesc wesc  644 Aug 16  2012 plus_u.py*
-rw-r--r-- 1 wesc wesc  334 Jul 19  2012 README.html
-rwxr-xr-x 1 wesc wesc 1545 Aug 16  2012 settings_TMPL.py*
-rw-r--r-- 1 wesc wesc 1095 Sep 20  2006 swhello.java
-rwxr-xr-x 1 wesc wesc  477 Sep 20  2006 swhello.py*
