<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Mouse Vs. The Python &#187; Book Review</title>
	<atom:link href="http://www.blog.pythonlibrary.org/tag/book-review/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blog.pythonlibrary.org</link>
	<description>Python Programming from the Frontlines</description>
	<lastBuildDate>Sun, 08 Jan 2012 12:45:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Book Review: Numpy 1.5 Beginner’s Guide</title>
		<link>http://www.blog.pythonlibrary.org/2011/12/15/book-review-numpy-1-5-beginners-guide/</link>
		<comments>http://www.blog.pythonlibrary.org/2011/12/15/book-review-numpy-1-5-beginners-guide/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 01:04:06 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://www.blog.pythonlibrary.org/?p=2147</guid>
		<description><![CDATA[This is an unorthodox review of Numpy 1.5 Beginner&#8217;s Guide by Ivan Idris. I have to say two things right off before we get into the review: This book was given to me in ebook and physical form directly from Packt Publishing I actually don&#8217;t think I have enough math to review this On that [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-counturl="http://www.blog.pythonlibrary.org/2011/12/15/book-review-numpy-1-5-beginners-guide/" data-url="http://bit.ly/sNWDpc" data-text="Book Review: Numpy 1.5 Beginner’s Guide" data-count="vertical" data-via="socializeWP" ><!--Tweetter--></a></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.blog.pythonlibrary.org/2011/12/15/book-review-numpy-1-5-beginners-guide/&amp;layout=button_count&amp;show_faces=true&amp;width=100&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px !important; height:65px;" allowTransparency="true"></iframe></div><div class="socialize-in-button socialize-in-button-left"><script type="text/javascript">
			<!-- 
			reddit_url = "http://www.blog.pythonlibrary.org/2011/12/15/book-review-numpy-1-5-beginners-guide/";
			reddit_title = "Book Review: Numpy 1.5 Beginner’s Guide";	//-->
		</script><script type="text/javascript" src="http://www.reddit.com/static/button/button2.js"></script></div><div class="socialize-in-button socialize-in-button-left"><g:plusone size="small" href="http://www.blog.pythonlibrary.org/2011/12/15/book-review-numpy-1-5-beginners-guide/"></g:plusone></div></div><p>This is an unorthodox review of <em>Numpy 1.5 Beginner&#8217;s Guide</em> by <a href="http://ivanidris.net/wordpress/" target="_blank">Ivan Idris</a>. I have to say two things right off before we get into the review:</p>
<ul>
<li>This book was given to me in ebook and physical form directly from Packt Publishing</li>
<li>I actually don&#8217;t think I have enough math to review this</li>
</ul>
<p>On that second one, I took college Calculus, but this book talks about terms I either don&#8217;t remember or they just weren&#8217;t covered. I had Statistics I and II as well, but the author deals more with matrix manipulation and linear algebra. I think my old Finance and Accounting classes helped the most, but that was at the end of the book.<span id="more-2147"></span></p>
<h2>The Book&#8217;s Audience</h2>
<p>So who is this book actually aimed at? I think it&#8217;s aimed at high level mathematicians, scientists and stock market number crunchers. The prose is pretty good, if a bit dry. Most of the book is made up of a section introduction, a problem, how to solve it with NumPy / Matplotlib and some code examples. The code examples are snippets instead of full fledged runnable code, but you should be able to piece together most of it easily. The author doesn&#8217;t spend time importing libraries or creating fancy classes, so all the examples are very straight-forward, especially if you already understand the math equations. Note that the equations are not explained, so if you don&#8217;t know them, you&#8217;ll have to do some digging yourself.</p>
<h2>What is Covered</h2>
<p>Oodles and oodles of equations and math terms. For example, you&#8217;ll learn how to do various moving averages, Bollinger bands, trend lines, factorials, matrices (lots and lots of &#8216;em),  hanning, hamming, ufuncs, Lissajous curves, determinants, Fourier transforms, various logarithms, matrice sorting and lots more. All of that is within NumPy with occasional SciPy stuff thrown in. The examples focused on the stock market and finance and seemed to work well within that context. </p>
<p>Near the end of the book, in chapter 9, the author switches gears slightly and discusses Matplotlib a little more in depth. He had been using it off and on in previous chapters, but he covers a lot more of its basic functions in this chapter. Then in the 10th and final chapter, he delves in SciPy and even manages to mention SciKits.</p>
<p>I noticed a few minor grammatical or sentence structure issues here and there, but this is one of the better written Packt books. </p>
<h2>Wrapping Up</h2>
<p>As I mentioned, I don&#8217;t really understand a lot of this book due to the high level math. It saddens me that I either didn&#8217;t cover this when I was in high school or college or that I&#8217;ve managed to forget so much of it. However, while the author doesn&#8217;t spend much time explaining the examples, I think that the quick nature in which it is written, works. Feel free to download <a href="http://www.packtpub.com/sites/default/files/5306OS-Chapter-3-Get-into-Terms-with-Commonly-Used-Functions.pdf?utm_source=packtpub&#038;utm_medium=free&#038;utm_campaign=pdf" target="_blank">Chapter 3</a> to get a taste of what it&#8217;s like. If you&#8217;re into this sort of thing or want to learn how to apply this sort of thing in Python, than I think this book may be right up your alley.</p>
<table>
<tr>
<td><a href="http://www.blog.pythonlibrary.org/wp-content/uploads/2010/12/numpy_book.jpg"><img src="http://www.blog.pythonlibrary.org/wp-content/uploads/2010/12/numpy_book-241x300.jpg" alt="" title="numpy_book_cover" width="241" height="300" class="aligncenter size-medium wp-image-2061" /></a></td>
<td>
<h3>Numpy 1.5 Beginner&#8217;s Guide</h3>
<p><p>By Ivan Idris</p>
<p><strong><a href="http://www.amazon.com/gp/product/1849515301/ref=as_li_ss_tl?ie=UTF8&#038;tag=thmovsthpy-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399373&#038;creativeASIN=1849515301" rel="nofollow">Buy from Amazon</a></strong></p>
<p><strong><a href="http://www.packtpub.com/numpy-1-5-using-real-world-examples-beginners-guide/book">Packt</a></strong></br>
</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.pythonlibrary.org/2011/12/15/book-review-numpy-1-5-beginners-guide/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>eBook Review: Treading on Python</title>
		<link>http://www.blog.pythonlibrary.org/2011/11/26/ebook-review-treading-on-python/</link>
		<comments>http://www.blog.pythonlibrary.org/2011/11/26/ebook-review-treading-on-python/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 20:55:51 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://www.blog.pythonlibrary.org/?p=2083</guid>
		<description><![CDATA[This week, I discovered a new book on Python titled Treading on Python Vol. 1 by Matt Harrison. The book is only in draft form, so it&#8217;s still pretty rough, but the author was kind enough to send me a free copy in epub and mobi formats. I read part of it using EPUBReader, an [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-counturl="http://www.blog.pythonlibrary.org/2011/11/26/ebook-review-treading-on-python/" data-url="http://bit.ly/uPXRBT" data-text="eBook Review: Treading on Python" data-count="vertical" data-via="socializeWP" ><!--Tweetter--></a></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.blog.pythonlibrary.org/2011/11/26/ebook-review-treading-on-python/&amp;layout=button_count&amp;show_faces=true&amp;width=100&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px !important; height:65px;" allowTransparency="true"></iframe></div><div class="socialize-in-button socialize-in-button-left"><script type="text/javascript">
			<!-- 
			reddit_url = "http://www.blog.pythonlibrary.org/2011/11/26/ebook-review-treading-on-python/";
			reddit_title = "eBook Review: Treading on Python";	//-->
		</script><script type="text/javascript" src="http://www.reddit.com/static/button/button2.js"></script></div><div class="socialize-in-button socialize-in-button-left"><g:plusone size="small" href="http://www.blog.pythonlibrary.org/2011/11/26/ebook-review-treading-on-python/"></g:plusone></div></div><p><a href="http://www.blog.pythonlibrary.org/wp-content/uploads/2011/11/treading_on_py.png"><img src="http://www.blog.pythonlibrary.org/wp-content/uploads/2011/11/treading_on_py-224x300.png" alt="" title="treading_on_py" width="224" height="300" class="aligncenter size-medium wp-image-2084" /></a></p>
<p>This week, I discovered a new book on Python titled <em><a href="http://www.hairysun.com/blog/2011/11/21/introducing-treading-on-python/" target="_blank">Treading on Python Vol. 1</a></em> by<a href="http://twitter.com/#!/__mharrison__" target="_blank"> Matt Harrison</a>. The book is only in <strong>draft form</strong>, so it&#8217;s still pretty rough, but the author was kind enough to send me a free copy in epub and mobi formats. I read part of it using <a href="https://addons.mozilla.org/en-US/firefox/addon/epubreader/versions/" target="_blank">EPUBReader</a>, an add-on to Firefox so I could read it in my browser. Then I switched to the PC Kindle software to finish the book.</p>
<p>The book is your typical introductory text to Python. I felt like it was a tad shorter than some of the intro books I&#8217;ve read though, but that may be because it was an eBook. He covers what you would expect, but here&#8217;s a short list of topics:</p>
<ul>
<li>Installation of Python</li>
<li>The Interpreter</li>
<li>Numbers and Strings</li>
<li>dir and help (introspection, although he never uses that word)</li>
<li>comments</li>
<li>Sequences (lists, tuples and dicts)</li>
<li>Functions, Classes, and Methods</li>
<li>File I/O</li>
<li>Exceptions &#8211; very brief, doesn&#8217;t show how to make your own</li>
</ul>
<p>He uses a few odd terms that I&#8217;ve never heard, like calling the double-underscore methods of Python &#8220;dunder methods&#8221; (like __init__ or __seq__). The only name I&#8217;ve ever heard for those are &#8220;magic methods&#8221;. He also says the following: <em>It is common to hear in Python parlance of &#8220;truthy&#8221; or &#8220;falsey&#8221;</em> (Kindle location 700) regarding bools and bool-like objects. I&#8217;ve read a lot of books on Python and never come across that before either. It&#8217;s no big deal, they just kind of jumped out at me and left me scratching my head.</p>
<p>Anyway, I can&#8217;t be too hard on it because it&#8217;s still only a draft. I did notice that some of the first sections in the book seem to get repeated later on. I&#8217;m not sure if that was intentional or not. Maybe it was a way of emphasizing the material. Regardless, the information in the book is pretty good for someone who is just coming to the language. I should mention that it&#8217;s more of an overview book though. Every topic has only 1-4 pages of information on it on average, so this book will give you enough information to get going, but you&#8217;ll still need to read the docs if you hit a wall. For example, he mentions comprehensions, but never says what they are. You don&#8217;t need those when you program, but they sure can be nice. On the other hand, he does talk about the &#8220;with&#8221; statement quite a bit. </p>
<p>Overall, I would say this is a pretty good introductory text on Python. The reader will get a nice overview of the language without the confusion of 3rd party packages or even very much of the included modules. They get a little introduction to Python introspection tools, which is pretty nice. When the book is finished, this is one you may want to keep in mind for your budding Pythonista. You can actually purchase the book from his <a href="http://www.hairysun.com/books/tread/" target="_blank">website </a>now for $4.99 and I think you get the final version when it&#8217;s done, kind of like Manning&#8217;s Early Access Program (MEAP).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.pythonlibrary.org/2011/11/26/ebook-review-treading-on-python/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Mini Book Review: MySQL for Python</title>
		<link>http://www.blog.pythonlibrary.org/2010/12/09/mini-book-review-mysql-for-python/</link>
		<comments>http://www.blog.pythonlibrary.org/2010/12/09/mini-book-review-mysql-for-python/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 03:09:10 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Book Review]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.blog.pythonlibrary.org/?p=1416</guid>
		<description><![CDATA[MySQL for Python By Albert Lukaszewski Amazon Packt Last month, I was approached by Packt Publishing&#8217;s Marketing department to do a review of their new book, MySQL for Python by Albert Lukaszewski. The book is 440 pages and I was expected to read this pretty quickly. Unfortunately, real life got in the way and I [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-counturl="http://www.blog.pythonlibrary.org/2010/12/09/mini-book-review-mysql-for-python/" data-url="http://bit.ly/tlKq9L" data-text="Mini Book Review: MySQL for Python" data-count="vertical" data-via="socializeWP" ><!--Tweetter--></a></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.blog.pythonlibrary.org/2010/12/09/mini-book-review-mysql-for-python/&amp;layout=button_count&amp;show_faces=true&amp;width=100&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px !important; height:65px;" allowTransparency="true"></iframe></div></div><table>
<tr>
<td><a href="http://www.blog.pythonlibrary.org/wp-content/uploads/2010/12/mysql_for_python.jpg"><img src="http://www.blog.pythonlibrary.org/wp-content/uploads/2010/12/mysql_for_python.jpg" alt="" title="mysql_for_python" width="150" height="185" class="aligncenter size-full wp-image-1426" /></a></td>
<td>
<h3>MySQL for Python</h3>
<p><p>By Albert Lukaszewski</p>
<p><strong><a href="http://www.amazon.com/exec/obidos/ASIN/1849510180/thmovsthpy-20/" rel="nofollow">Amazon</a></strong></p>
<p><strong><a href="https://www.packtpub.com/mysql-for-python-database-access-made-easy/book">Packt</a></strong></br>
</td>
</tr>
</table>
<p><span id="more-1416"></span></p>
<p>Last month, I was approached by Packt Publishing&#8217;s Marketing department to do a review of their new book, <a href="http://www.amazon.com/exec/obidos/ASIN/1849510180/thmovsthpy-20/" rel="nofollow">MySQL for Python</a> by Albert Lukaszewski. The book is 440 pages and I was expected to read this pretty quickly. Unfortunately, real life got in the way and I am just going to do a mini-review of what I&#8217;ve managed to read of the book (i.e. 161 pages + skimming). Why? Because they&#8217;re marketing department keeps bugging me. In future, I plan to just buy my own books so I don&#8217;t have these silly time limits.</p>
<p>Another reason that it&#8217;s taking me so long to read this is because I only got an ebook copy, which makes it less than convenient to read. I admit that I like real books better. They don&#8217;t dry out my eyes nearly as quickly as a monitor does. That and I discovered that MySQL doesn&#8217;t really interest me a great deal&#8230;But you didn&#8217;t come to my blog to read about my whining did you? Let&#8217;s get to the meat and see if this book is worth your hard earned pennies!</p>
<h2>On with the Review!</h2>
<p>This book has some pretty serious credentials behind it. The author writes the &#8220;About Python&#8221; column on About.com and the reviewers cover the gamut of author, primary coder behind MySQL for Python and a member of the MySQL support team at Sun/Oracle. The writing in the book is (as expected) quite good. I will admit to finding it a little dry though. However, I have yet to read a thrilling database book.</p>
<p>Anyway, the book&#8217;s first chapter is all about getting MySQL and MySQL for Python set up on your machine. You can get this information off each of the respective project&#8217;s websites. The second and third chapter go over basic SQL syntax with a few Python examples here and there. This threw me a little because I had assumed that the book was for people who already knew SQL and were getting the book to learn how to interface with MySQL using the Python programming language. There&#8217;s nothing particularly wrong with these chapters, but I was hoping for more Python, less SQL. Your tastes will probably differ.</p>
<p>The last chapter I read was the 4th one, which is about Exception Handling. The author spends a lot of time talking about the differences between warnings and exceptions and how you should handle them. The text also goes over the various custom errors that the MySQL for Python package can catch.</p>
<p>I read about half of chapter 5. It covers how to retrieve results record-by-record using the fetchone() and fetchmany() methods along with loops and iterators. I didn&#8217;t get to the movie database project at the end of the chapter.</p>
<p>The chapters  I haven&#8217;t gotten to yet cover the following topics: Inserting multiple entries, creating and dropping (tables, I assume); creating users and granting access (permissions or security, I think); date and time values, aggregate functions and clauses; SELECT alternatives; string functions; showing MySQL metadata; and finally, disaster recovery.</p>
<h2>The Verdict?</h2>
<p>From what I read, I think the book covers the topics well. While I found much it to be review (and thus, kind of boring), I would think that I would have found this book very helpful as a new programmer learning SQL and Python. I tend to use SqlAlchemy for all my database work now though. Still, if you need to know this topic or want to learn how to connect to MySQL with Python and NOT use an ORM like SqlAlchemy, then this is the book for you! Otherwise, try to preview it on Amazon&#8217;s website or in a book store to make sure it will fit your needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.pythonlibrary.org/2010/12/09/mini-book-review-mysql-for-python/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Book Review: Python Multimedia Application Beginner&#8217;s Guide</title>
		<link>http://www.blog.pythonlibrary.org/2010/10/06/book-review-python-multimedia-application-beginners-guide/</link>
		<comments>http://www.blog.pythonlibrary.org/2010/10/06/book-review-python-multimedia-application-beginners-guide/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 02:01:01 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[A/V]]></category>
		<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Multimedia]]></category>

		<guid isPermaLink="false">http://www.blog.pythonlibrary.org/?p=1276</guid>
		<description><![CDATA[Python Multimedia Application Beginner&#8217;s Guide By Ninad Sathaye Amazon Packt I received this a review copy of this book in ebook format from Packt Publishing. I like free books, but I won&#8217;t let that cloud my judgment about whether or not this is a worthy book for you to spend your hard earned money on. [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-counturl="http://www.blog.pythonlibrary.org/2010/10/06/book-review-python-multimedia-application-beginners-guide/" data-url="http://bit.ly/tVpyX2" data-text="Book Review: Python Multimedia Application Beginner&#8217;s Guide" data-count="vertical" data-via="socializeWP" ><!--Tweetter--></a></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.blog.pythonlibrary.org/2010/10/06/book-review-python-multimedia-application-beginners-guide/&amp;layout=button_count&amp;show_faces=true&amp;width=100&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px !important; height:65px;" allowTransparency="true"></iframe></div><div class="socialize-in-button socialize-in-button-left"><script type="text/javascript">
			<!-- 
			reddit_url = "http://www.blog.pythonlibrary.org/2010/10/06/book-review-python-multimedia-application-beginners-guide/";
			reddit_title = "Book Review: Python Multimedia Application Beginner&#8217;s Guide";	//-->
		</script><script type="text/javascript" src="http://www.reddit.com/static/button/button2.js"></script></div><div class="socialize-in-button socialize-in-button-left"><g:plusone size="small" href="http://www.blog.pythonlibrary.org/2010/10/06/book-review-python-multimedia-application-beginners-guide/"></g:plusone></div></div><table>
<tr>
<td><a href="http://www.blog.pythonlibrary.org/wp-content/uploads/2010/10/python_mul_book_small.jpg"><img src="http://www.blog.pythonlibrary.org/wp-content/uploads/2010/10/python_mul_book_small.jpg" alt="" title="python_mul_book_small" width="250" height="309" class="aligncenter size-full wp-image-1279" /></a></td>
<td>
<h3>Python Multimedia Application Beginner&#8217;s Guide</h3>
<p><p>By Ninad Sathaye</p>
<p><strong><a href="http://www.amazon.com/gp/product/1849510164?ie=UTF8&#038;tag=thmovsthpy-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1849510164" rel="nofollow">Amazon</a></strong></p>
<p><a href="http://www.packtpub.com/python-multimedia-application-beginner%27s-guide/book?utm_source=blog.pythonlibrary.org&#038;utm_medium=bookrev&#038;utm_content=blog&#038;utm_campaign=mdb_004782">Packt</a></br>
</td>
</tr>
</table>
<p><span id="more-1276"></span></p>
<p>I received this a review copy of this book in ebook format from Packt Publishing. I like free books, but I won&#8217;t let that cloud my judgment about whether or not this is a worthy book for you to spend your hard earned money on. Packt Publishing does more niche Python books then any other publisher and I think that&#8217;s pretty cool. Unfortunately, they don&#8217;t seem to spend nearly enough time polishing the books before publishing them, so their books tend to be hit or miss. For example, their<a href="http://www.blog.pythonlibrary.org/2010/08/22/book-review-python-3-object-oriented-programming/"> Python 3 book</a> was quite good. Alas, this one tends to lean more towards the mediocre.</p>
<p>Now don&#8217;t get me wrong. The content of the book has inspired me to write about some of the topics that this book covers, so it&#8217;s not all mediocre. The problem lies mostly in the fact that the author&#8217;s native language is obviously not English and the fact that Packt&#8217;s editing process didn&#8217;t smooth out the &#8220;un-English&#8221; sounding prose to such an extent that it&#8217;s just painful to read from time to time. Here are a couple examples:</p>
<ul>
<li>A simple PyGame application with a circle drawn within the Surface (window).<br />
The image on the right side is a screenshot taken after maneuvering the position<br />
of the circle with the help of arrow keys (pg 17)</li>
<li>If a 4-tuple box is specified, the size of the image to be pasted must be same as the size of the region. (pg 40)</li>
</ul>
<p>And here is a Packt editing mistake:</p>
<ul>
<li>The box argument can be a 4-tupleError: Reference source not found or a 2-tuple.</li>
</ul>
<p>Oops&#8230;they did this weird find and replace mistake twice in this text.</p>
<p>Anyway, I don&#8217;t really want to bash the book too much. Writing books is hard (writing blog posts all the time is hard too!). Criticizing is easy. Let&#8217;s take a look at what the book&#8217;s eight chapters cover:</p>
<ul>
<li>Chapter 1 &#8211; Python and Multimedia: an introductory chapter to the various modules you can use to play and edit music, video and image files</li>
<li>Chapter 2 &#8211; Working with Images: a fast-paced tour of the Python Imaging Library (PIL) that shows how to resize, rotate, and flip images, among other things</li>
<li>Chapter 3 &#8211; Enhancing Images: more recipes involving PIL, such as how to adjust an images brightness and contrast, swap colors, blend photos, smoothing effects, sharpening, blurring, edge sharpening, embossing and more</li>
<li>Chapter 4 &#8211; Fun with Animations: an intro to Pyglet 2D animation</li>
<li>Chapter 5 &#8211; Working with Audios: this chapter shows you how to use GStreamer with Python 2.6 only to play audio, convert audio between formats, record audio and more. This chapter also butchered the use of the word &#8220;audio&#8221; repeatedly, saying such things as &#8220;playing an audio&#8221;, &#8220;extracting an audio&#8221; etc.</li>
<li>Chapter 6 &#8211; Audio Controls and Effects: more GStreamer tips and tricks such as how to add echo and fading to your audio files, mixing audio files and adding some visualization effects</li>
<li>Chapter 7 &#8211; Working with Videos: how to use Python 2.6 + GStreamer to manipulate videos</li>
<li>Chapter 8 &#8211; GUI-based Media Players Using QT Phonon: use the PyQt GUI framework to create a media player</li>
</ul>
<p>I think the most frustrating part of the book was chapters 5-7. For some reason, the only semi-recent Python bindings for GStreamer are for only Python 2.6! The installation directions in the book versus the links provided in the book were confusing, so I didn&#8217;t give this a try. I did find some GStreamer bindings for 2.4 and 2.5, but they were for an ancient version of GStreamer. There were no bindings whatsoever for the latest GStreamer version (at least, I couldn&#8217;t find them). Thus, while these chapters can be useful, if you use the bleeding edge Python or need to use an older version, you&#8217;re screwed.</p>
<p>I didn&#8217;t manage to get the last chapter read, so I don&#8217;t have any comments on it. </p>
<p>The PIL chapters were my favorite and I plan to use them for a project of my own. The Pyglet chapter inspired me once again to look into figuring that framework again&#8230;but I haven&#8217;t done that yet. And I suspect that the PyQt Phonon chapter will be interesting on a technical level. </p>
<p>By this time, you&#8217;re probably wondering: what&#8217;s the verdict? I think you should try to find a free chapter or find the book in a book store and read some of it before you buy it. The list price is almost $45 USD after all, so use your money wisely. </p>
<p>UPDATE (10/15/2010) &#8211; Here&#8217;s a <a href="http://www.blog.pythonlibrary.org/2010/10/15/the-wxpython-demo/">link </a>to chapter 2, Working with Images</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.pythonlibrary.org/2010/10/06/book-review-python-multimedia-application-beginners-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: Python 3 Object Oriented Programming</title>
		<link>http://www.blog.pythonlibrary.org/2010/08/22/book-review-python-3-object-oriented-programming/</link>
		<comments>http://www.blog.pythonlibrary.org/2010/08/22/book-review-python-3-object-oriented-programming/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 18:48:23 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Book Review]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://www.blog.pythonlibrary.org/?p=1152</guid>
		<description><![CDATA[Python 3 Object Oriented Programming By Dusty Phillips Amazon Packt A few months ago, I wrote a preview of this book. A little over a week ago, I received my copy of the book. Before we get to the review though, I want to give full disclosure: Packt contacted me to be a &#8220;Reviewer&#8221; (read: [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-counturl="http://www.blog.pythonlibrary.org/2010/08/22/book-review-python-3-object-oriented-programming/" data-url="http://bit.ly/szaaih" data-text="Book Review: Python 3 Object Oriented Programming" data-count="vertical" data-via="socializeWP" ><!--Tweetter--></a></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.blog.pythonlibrary.org/2010/08/22/book-review-python-3-object-oriented-programming/&amp;layout=button_count&amp;show_faces=true&amp;width=100&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px !important; height:65px;" allowTransparency="true"></iframe></div><div class="socialize-in-button socialize-in-button-left"><script type="text/javascript">
			<!-- 
			reddit_url = "http://www.blog.pythonlibrary.org/2010/08/22/book-review-python-3-object-oriented-programming/";
			reddit_title = "Book Review: Python 3 Object Oriented Programming";	//-->
		</script><script type="text/javascript" src="http://www.reddit.com/static/button/button2.js"></script></div><div class="socialize-in-button socialize-in-button-left"><g:plusone size="small" href="http://www.blog.pythonlibrary.org/2010/08/22/book-review-python-3-object-oriented-programming/"></g:plusone></div></div><table>
<tr>
<td><a href="http://www.blog.pythonlibrary.org/wp-content/uploads/2010/08/python3_oop.jpg"><img src="http://www.blog.pythonlibrary.org/wp-content/uploads/2010/08/python3_oop-243x300.jpg" alt="" title="python3_oop" width="243" height="300" class="aligncenter size-medium wp-image-1154" /></a></td>
<td>
<h3>Python 3 Object Oriented Programming</h3>
<p><p>By Dusty Phillips</p>
<p><strong><a href="http://www.amazon.com/exec/obidos/ASIN/1849511268/thmovsthpy-20/" rel="nofollow">Amazon</a></strong></p>
<p><strong><a href="http://www.packtpub.com/python-3-object-oriented-programming/book?utm_source=blog.pythonlibrary.org&#038;utm_medium=bookrev&#038;utm_content=blog&#038;utm_campaign=mdb_004190">Packt</a></strong></br>
</td>
</tr>
</table>
<p><span id="more-1152"></span><br />
A few months ago, I wrote a <a href="http://www.blog.pythonlibrary.org/2010/05/20/book-preview-python-3-object-oriented-programming/">preview </a>of this book. A little over a week ago, I received my copy of the book. Before we get to the review though, I want to give full disclosure: Packt contacted me to be a &#8220;Reviewer&#8221; (read: technical editor) for this book last December. The payment? They gave me a copy of the book, one copy of any other book from their catalog that I wanted and my name appears in the book. If you think that remuneration will cause me to biased, so be it. Everyone is biased in some way or another. I tend to be harsher on things that I&#8217;m involved in though.</p>
<p>Well, enough of the baring of my soul. Let&#8217;s take a look at the book. The author of this book really likes Unified Modeling Language (UML) class diagrams, so if you find those helpful in learning, then you&#8217;ll like this book. The entire first chapter is made up of text and UML diagrams, after all and it gives a brief introduction to the Object Oriented philosophy. Chapter 2 jumps into Python Objects, modules and packages. Chapter 3 digs into inheritance (basic and multiple) and polymorphism. Chapter 4 is all about exceptions in Python. Chapter 5 attempts to explain when to use object oriented programming. I thought that was an interesting chapter because it seems to me that colleges browbeat their students into thinking they should use OOP for everything. Chapters 6 and 7 dig into the Python standard library by covering tuples, lists, dicts, sets, various comprehensions, generators and functions. I learned a lot about comprehensions from these chapters that made me wish I used Python 3 more. Chapters 8 and 9 cover Python Design Patterns. I found these chapters to be the highlight of the book and very interesting. He covers the following patterns: decorator,  observer, strategy, state, singleton, template, adapter, facade, flyweight, command, abstract factory and composite.</p>
<p>Chapter 10 covers the basics of files and strings; chapter 11 goes overs testing with unit tests and py.test. Last, chapter 12 does a quick overview of common Python 3 libraries, like SqlAlchemy, Tkinter, PyQt, lxml and CherryPy.</p>
<p>When I was reviewing the book, Chapters 5 and 8 had some Python Imaging Library examples. The author had noted that PIL hadn&#8217;t been ported to Python 3 at the time, but he thought it would be by publishing. Alas, the people behind PIL still do not have a Python 3 port. So I was curious how the author handled this conundrum. It turns out that he ended up replacing PIL with pygame. An interesting choice that appears to work all right for the examples. I didn&#8217;t re-read the book (although I plan to at some point). Instead, I just did a spot check to see if the author followed any of my suggestions or fixed errors. It appears that he did.</p>
<p>This book was good before he fixed the problems with it. There&#8217;s more theory here than you normally find in Python textbooks, but I found the examples intriguing and he has unusual exercises at the end of the chapters that should keep you thinking. I&#8217;m pretty sure I would have been quite happy if I had purchased this book. If you&#8217;re new to Python 3 and specifically object oriented programming or you want to learn about programming patterns, I recommend this book. If you want a sneak peak, Packt has Chapter 7 available on their website <a href="https://www.packtpub.com/sites/default/files/1261-chapter-7-Python%20object-oriented-shortcuts.pdf">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.pythonlibrary.org/2010/08/22/book-review-python-3-object-oriented-programming/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Book Review: Practical Programming: An Introduction to Computer Science Using Python</title>
		<link>http://www.blog.pythonlibrary.org/2010/08/14/book-review-practical-programming-an-introduction-to-computer-science-using-python/</link>
		<comments>http://www.blog.pythonlibrary.org/2010/08/14/book-review-practical-programming-an-introduction-to-computer-science-using-python/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 13:46:50 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Computer Science]]></category>

		<guid isPermaLink="false">http://www.blog.pythonlibrary.org/?p=1115</guid>
		<description><![CDATA[Practical Programming: An Introduction to Computer Science Using Python By Jennifer Campbell, Paul Gries, Jason Montojo and Greg Wilson Amazon I received the book, Practical Programming: An Introduction to Computer Science Using Python as a gift last month from a family member. This book is by four authors: Jennifer Campbell, Paul Gries, Jason Montojo and [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-counturl="http://www.blog.pythonlibrary.org/2010/08/14/book-review-practical-programming-an-introduction-to-computer-science-using-python/" data-url="http://bit.ly/tcRENm" data-text="Book Review: Practical Programming: An Introduction to Computer Science Using Python" data-count="vertical" data-via="socializeWP" ><!--Tweetter--></a></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.blog.pythonlibrary.org/2010/08/14/book-review-practical-programming-an-introduction-to-computer-science-using-python/&amp;layout=button_count&amp;show_faces=true&amp;width=100&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px !important; height:65px;" allowTransparency="true"></iframe></div><div class="socialize-in-button socialize-in-button-left"><script type="text/javascript">
			<!-- 
			reddit_url = "http://www.blog.pythonlibrary.org/2010/08/14/book-review-practical-programming-an-introduction-to-computer-science-using-python/";
			reddit_title = "Book Review: Practical Programming: An Introduction to Computer Science Using Python";	//-->
		</script><script type="text/javascript" src="http://www.reddit.com/static/button/button2.js"></script></div><div class="socialize-in-button socialize-in-button-left"><g:plusone size="small" href="http://www.blog.pythonlibrary.org/2010/08/14/book-review-practical-programming-an-introduction-to-computer-science-using-python/"></g:plusone></div></div><table>
<tr>
<td><a href="http://www.blog.pythonlibrary.org/wp-content/uploads/2010/08/pragmaticPython.jpg"><img src="http://www.blog.pythonlibrary.org/wp-content/uploads/2010/08/pragmaticPython.jpg" alt="Pragmatic Python Cover  Image" title="pragmaticPython.jpg" width="300" height="300" class="aligncenter size-full wp-image-1126" /></a></td>
<td>
<h3>Practical Programming: An Introduction to Computer Science Using Python</h3>
<p><p>By Jennifer Campbell, Paul Gries, Jason Montojo and Greg Wilson</p>
<p><strong><a href="http://www.amazon.com/exec/obidos/ASIN/1934356271/thmovsthpy-20/7" rel="nofollow">Amazon</a></strong></p>
</td>
</tr>
</table>
<p>I received the book, <em>Practical Programming: An Introduction to Computer Science Using Python</em> as a gift last month from a family member. This book is by four authors: Jennifer Campbell, Paul Gries, Jason Montojo and Greg Wilson. I&#8217;d been interested in reading another Python-related textbook for a while, and this happens to be one of the few out there. The only other Python textbook I&#8217;ve read is <em><a href="http://www.amazon.com/exec/obidos/ASIN/1590282418/thmovsthpy-20/" rel="nofollow">Python Programming: An Introduction to Computer Science</a></em> by John Zelle. I&#8217;m aware of one or two others, but those books are beyond what I&#8217;m willing to pay.<span id="more-1115"></span></p>
<p>Normally when I see something that required multiple authors, the results are less than stellar. However, this book does a pretty good job of introducing students to computer science using Python. Of course, when I was taking classes in computer science, we spent multiple classes on just theory. Most of this book is on learning the basics of Python, such as how to use strings, lists, dicts, tuples, etc. So if you were hoping to learn algorithms and data structures using Python, you won&#8217;t be finding much of that here. There is one chapter on algorithms that covers sorts and search algorithms though, and I thought that was one of the highlights of the book.</p>
<p>On the other hand, you will get a nice introduction to one of the easiest and most fun to use programming languages ever created. Not only do you get a nice introduction, but each chapter ends with a series of exercises based on the text of the chapter. I like having review questions or problems to solve that make what I learned stick in my brain. I mostly skimmed the exercises though because the chapters were designed for college Freshmen with no programming experience.</p>
<p>This book covers basic testing in two places. It&#8217;s not thorough, but it does give the reader a taste and I think it conveys the reasoning behind testing fairly well. At the end of the book, they get a little more topical on us. The book gives an overview of the following topics: debugging, the object-oriented philosophy (classes, inheritance, polymorphism), graphical user interfaces using Tkinter, and databases (sqlite). </p>
<p>After reading Dusty Phillips&#8217; <a href="http://www.amazon.com/exec/obidos/ASIN/1849511268/thmovsthpy-20/" rel="nofollow">book </a>on Object Oriented Programming with Python, I found the one chapter in this book lacking. However, it is typical of an introduction, so I can&#8217;t knock it too much. The Tkinter chapter was fun as I have been planning on brushing up on that for other articles on this blog. The authors even spend some time on the Model-Viewer-Controller paradigm. I didn&#8217;t really like how they laid out the code though since it was hard to tell which code fit where in the whole MVC schema. The database section was almost straight-up SQL code using Python 2.5&#8242;s sqlite module. While there&#8217;s nothing particularly bad with that approach, I know I would have been a little confused by it because of all the new syntax that doesn&#8217;t match anything I had learned previously in the book.</p>
<p>There are some instances of weird or poor grammar, but I didn&#8217;t find any obvious coding errors that weren&#8217;t there on purpose. The book is priced reasonably, especially considering that it&#8217;s supposed to be a college textbook. If you are new to computer science or to Python, I think you&#8217;ll find this book helpful. If you&#8217;re an experienced programmer or you&#8217;ve already had several courses in computer science, than you&#8217;ll probably want to skip this book (unless you&#8217;re looking to learn Python).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.pythonlibrary.org/2010/08/14/book-review-practical-programming-an-introduction-to-computer-science-using-python/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Book Review: Python Testing</title>
		<link>http://www.blog.pythonlibrary.org/2010/03/06/book-review-python-testing/</link>
		<comments>http://www.blog.pythonlibrary.org/2010/03/06/book-review-python-testing/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 16:01:08 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.blog.pythonlibrary.org/?p=663</guid>
		<description><![CDATA[Before PyCon, I was approached by a representative from Packt Publishing to review one of their books. They wanted me to read Daniel Arbuckle&#8217;s Python Testing: Beginner&#8217;s Guide. I&#8217;m not really into testing frameworks or test driven development and thought this would be a good excuse to learn the methodology and see if it was [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-counturl="http://www.blog.pythonlibrary.org/2010/03/06/book-review-python-testing/" data-url="http://bit.ly/rZcuAw" data-text="Book Review: Python Testing" data-count="vertical" data-via="socializeWP" ><!--Tweetter--></a></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.blog.pythonlibrary.org/2010/03/06/book-review-python-testing/&amp;layout=button_count&amp;show_faces=true&amp;width=100&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px !important; height:65px;" allowTransparency="true"></iframe></div><div class="socialize-in-button socialize-in-button-left"><script type="text/javascript">
			<!-- 
			reddit_url = "http://www.blog.pythonlibrary.org/2010/03/06/book-review-python-testing/";
			reddit_title = "Book Review: Python Testing";	//-->
		</script><script type="text/javascript" src="http://www.reddit.com/static/button/button2.js"></script></div><div class="socialize-in-button socialize-in-button-left"><g:plusone size="small" href="http://www.blog.pythonlibrary.org/2010/03/06/book-review-python-testing/"></g:plusone></div></div><p>Before PyCon, I was approached by a representative from <a href="http://www.packtpub.com/python-testing-beginners-guide/book?utm_source=blog.pythonlibrary.org&#038;utm_medium=bookrev&#038;utm_content=blog&#038;utm_campaign=mdb_002508">Packt Publishing</a> to review one of their books. They wanted me to read Daniel Arbuckle&#8217;s <em><a href="http://www.amazon.com/Python-Testing-Beginners-Daniel-Arbuckle/dp/1847198848/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1267883216&#038;sr=8-1" rel="nofollow">Python Testing: Beginner&#8217;s Guide</a></em>. I&#8217;m not really into testing frameworks or test driven development and thought this would be a good excuse to learn the methodology and see if it was something that was actually valuable or just a lot of hype. The book is only 256 pages long, so I told the Packt contact that it would probably take me a week or so to review. After a week, she seemed kind of anxious that I wasn&#8217;t done. Thus, this is a partial review. I don&#8217;t like being pressured to review something fast. I want my reviews to be thorough and of the best quality I can make them. You will get a thorough review of the chapters that I did manage to finish. If you want a full review, I&#8217;m pretty sure someone else on Python Planet said they were doing one.<span id="more-663"></span></p>
<p>I read chapters 1-6 and then skimmed 7-10. The author writes in an engaging manner and the chapters are broken up into sections, which makes it easy to pick up, do a section, and put it back down without losing your place. The primary reason that I was slow to review this book is that it has lots of code examples and it takes quite a while to re-type them all. I hate technical books that are riddled with broken code, so I wanted to make sure that this book&#8217;s code and tests worked. If I review a book with lots of code in the future, I will insist on lots of time or an e-book copy so I can just copy and paste the code. </p>
<p>Anyway, the first couple of chapters went by with only minor errors in the text itself. The content was pretty good, but the editors missed simple stuff where the author used &#8220;white&#8221; instead of &#8220;write&#8221;. There are silly mistakes like this in most chapters. The real problems don&#8217;t happen until chapter 3, which is about creating unit tests with doctest. On page 45, there&#8217;s a code example that includes the following line:</p>
<pre class="python"><span style="color: #008000;">self</span>.<span style="color: black;">integrated_error</span> +q= err <span style="color: #66cc66;">*</span> delta</pre>
<p>Since the author recommends using Python 2.6, I thought that &#8220;+q=&#8221; might be some kind of new format that I was unaware of. But it&#8217;s just a typo. On page 48-50, he has a revised test from earlier in the chapter. The text clearly states that all revisions will be clearly marked. They are not and I was unable to find all the revisions to make the new version work. I didn&#8217;t want to re-type the entire thing in again, so I skipped it and decided to download the author&#8217;s code bundle from the publisher&#8217;s website.</p>
<p>Here is where things really went downhill for me. After getting the code, I noticed that the files and folders were not arranged by chapter, but by some other method. This made it very difficult to find what I was looking for. I eventually did find a chapters sub-folder in the &#8220;tests&#8221; folder (I think). My plan was to do a diff on that code versus mine. When I opened the book code though, I noticed that the author had included a bunch of mock tests in it. He doesn&#8217;t cover mock until chapter 4. I considered stopping here and just telling everyone I knew to avoid this book, but since I got it for free, I decided to soldier on.</p>
<p>Chapter 4 is on the <a href="http://labix.org/mocker">Python Mocker</a> package by Labix. This chapter was quite good and I think I learned a lot from it. The only downer was that the author mentioned that you could use easy_install to install this module and that by so doing, <a href="http://pypi.python.org/pypi/nose/0.11.3">Nose</a> would be ready to run. That was just plain dumb. Other than that, I thought this was a good chapter.</p>
<p>Chapter 5 introduced the reader to Python&#8217;s <a href="http://docs.python.org/library/unittest.html">unittest library</a>. I don&#8217;t recall if I tested all the code in this chapter or not, but I didn&#8217;t note anything that was wrong. I thought this was a good introduction to unittest, especially for a beginner. </p>
<p>For chapter 6, the topic is changed to Nose. As you may have noticed from my descriptions so far, the author is quite gradual in how he went through the topics. He started with doctests, moved to mock, then unittests and then Nose, which is kind of a test runner and enhancer. I had weird issues with Nose when I tried to easy_install it. For some reason, I ended up with the 0.10.1 version which didn&#8217;t work with all the commands in this book. Once I got the current version, everything worked better. I should note that I was unable to get the example on page 112 to pass nosetests. I have no idea what the problem is, although it has to do with the Python Mocker module. It may be that I mistyped something, but I couldn&#8217;t figure it out.</p>
<p>The author covers Nose&#8217;s configuration file briefly and goes over a few command line flags for nosetests. He also covers fixtures and how to use them to enhance your tests. Finally he shows how to use Nose&#8217;s pattern matching abilities to run tests that match a certain naming convention. Pretty cool stuff!</p>
<p>I started to skim in earnest after this chapter though. In seven, he does a step-by-step walk-through depicting how to test and create a personal scheduling program. I look forward to reading this section and seeing how complex or simple this is. There is certainly code aplenty in this section and lots of tests (or he may just be re-printing some of the examples in smaller parts for commentary). I have no idea if any of it is functional though.</p>
<p>In chapter 8, the book moves on to Web Testing with <a href="http://twill.idyll.org/">Twill</a>. I thought this was an interesting choice since Twill&#8217;s website says that it hasn&#8217;t been updated in over 3 years. I tested a few of the examples in this chapter and they worked as advertised. Much of this section is made up of explanations of Twill commands though. The last section purportedly shows how to integrate Twill tests with unittest tests. I didn&#8217;t do that part though.</p>
<p>Chapter 9 talks about Integration and System testing. I thought the idea of drawing concentric circles in a diagram to figure out how to create integrated units for testing was a good concept. That will probably appeal to the readers who like visuals. Alas, I didn&#8217;t really read anything more than the first couple of pages, but it looks like he uses his schedule planner example here as well.</p>
<p>The final chapter entitled &#8220;Other Testing Tools and Techniques&#8221;. I think this chapter looks fairly interesting, but didn&#8217;t get a chance to read it. Looking at the text now, it would seem to briefly cover the following: <a href="http://nedbatchelder.com/code/coverage/">coverage.py</a>, version control hooks (Bazaar,  Mercurial, Darcs, Subversion), and buildbot.</p>
<p>There is also an appendix with Pop Quiz answers.</p>
<p>Overall, I think the chapters that I read had a lot of good information and that is was very well organized. Unfortunately, the good was pretty badly marred by minor grammatical or sentence structure issues and the occasionally larger issue of broken code/tests. If it happens once, then I expect that there probably other code or tests that are broken as well. If this is the case, then I recommend buying it used or wait for a Packt sale of some sort. On the other hand, if the book is pristine after chapter 6&#8230;well, I guess that really doesn&#8217;t matter since that would mean that over half the book had problems.</p>
<p>Okay. Here&#8217;s a better recommendation: Find a Borders or Barnes &#038; Nobles near you that has the book and free wi-fi. Go there, find the book, and read it and mess around with the examples BEFORE you buy it. </p>
<p><strong>Rating Scale: 1 (low) &#8211; 5 (high)</strong></p>
<p>Code rating = 3<br />
Writing = 4<br />
Organization = 5</p>
<p>Average Score = 4  (take a point or two off if broken code annoys you)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.pythonlibrary.org/2010/03/06/book-review-python-testing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Book Review: Django 1.0 Web Site Development</title>
		<link>http://www.blog.pythonlibrary.org/2009/06/07/book-review-django-10-web-site-development/</link>
		<comments>http://www.blog.pythonlibrary.org/2009/06/07/book-review-django-10-web-site-development/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 17:37:00 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Web Framework]]></category>
		<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.blog.pythonlibrary.org/?p=208</guid>
		<description><![CDATA[I received Ayman Hourieh’s Django 1.0 Web Site Development from Packt Publishers a few weeks ago for review. I had worked with Django before when I went through another book on Python web frameworks as well as one of their official tutorials. I had my doubts about this book because it was only 257 pages [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-left"><a href="http://twitter.com/share" class="twitter-share-button" data-counturl="http://www.blog.pythonlibrary.org/2009/06/07/book-review-django-10-web-site-development/" data-url="http://bit.ly/suvfIM" data-text="Book Review: Django 1.0 Web Site Development" data-count="vertical" data-via="socializeWP" ><!--Tweetter--></a></div><div class="socialize-in-button socialize-in-button-left"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.blog.pythonlibrary.org/2009/06/07/book-review-django-10-web-site-development/&amp;layout=button_count&amp;show_faces=true&amp;width=100&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px !important; height:65px;" allowTransparency="true"></iframe></div><div class="socialize-in-button socialize-in-button-left"><script type="text/javascript">
			<!-- 
			reddit_url = "http://www.blog.pythonlibrary.org/2009/06/07/book-review-django-10-web-site-development/";
			reddit_title = "Book Review: Django 1.0 Web Site Development";	//-->
		</script><script type="text/javascript" src="http://www.reddit.com/static/button/button2.js"></script></div><div class="socialize-in-button socialize-in-button-left"><g:plusone size="small" href="http://www.blog.pythonlibrary.org/2009/06/07/book-review-django-10-web-site-development/"></g:plusone></div></div><p>I received Ayman Hourieh’s <em><a href="http://www.packtpub.com/django-1-0-website-development-2nd-edition/book">Django 1.0 Web Site Development</a></em> from Packt Publishers a few weeks ago for review. I had worked with <a href="http://www.djangoproject.com/">Django</a> before when I went through another book on Python web frameworks as well as one of their official tutorials. I had my doubts about this book because it was only 257 pages long and I didn’t think it would be able to teach me much in so few pages.<br />
<span id="more-208"></span></p>
<p>However, I was pleasantly surprised at its readability and the quality of the code examples. I have read a lot of Python books and other programming texts and more often than not, the examples are wanting in one way or another. Some of the books have downright broken examples. Hourieh does a very good job of explaining his code by going through just about everything he wrote line-by-line. While that can get a little monotonous after a while, his meticulousness does make sure that the reader grasps what’s going on.</p>
<p>The main thrust of this book is to teach the audience how to build a social bookmarking application. In fact, that is the only thing you will create in the entire book. The last two chapters are on deploying the application on a web server and improving the application with caching and security enhancements.</p>
<p>I read the core of the book. I didn’t really need to know how to install Django as I had done that before and I didn’t mess with deploying it either since I don’t have a development box at the moment to use for a web server. What I did read was really good. </p>
<p>This book teaches you all the fundamentals you’ll need to create a web application in Django, from start to finish. There were a couple of minor sentence structure goof ups and some lightheartedness that seemed kind of out of place, but other than that, it is a very solid book. You will learn how Django’s user management model works, how to AJAX with jQuery, add voting and commenting to the bookmarking application, create an admin interface using Django’s built-in tools, add some basic searching capabilities, and build a social network where you can invite your friends. If you’ve ever wondered about the internals of a site like Facebook, this book will give you a taste. I should note that the cover implies that it teaches how to build web applications, while the text only really shows the reader how to create one application. The concepts to create other applications are there, but I thought that statement was a little mis-leading.</p>
<p>Overall, I recommend this book. Let me know what you think when you’ve had a chance to read it as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.pythonlibrary.org/2009/06/07/book-review-django-10-web-site-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 3.050 seconds -->

