<?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 Developer Day &#187; python</title>
	<atom:link href="http://www.thedeveloperday.com/tag/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thedeveloperday.com</link>
	<description>Staying Curious</description>
	<lastBuildDate>Fri, 03 Feb 2012 12:03:22 +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>Expert Python Programming Book Review</title>
		<link>http://www.thedeveloperday.com/expert-python-programming-book-review/</link>
		<comments>http://www.thedeveloperday.com/expert-python-programming-book-review/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 18:26:00 +0000</pubDate>
		<dc:creator>Žilvinas Šaltys</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.thedeveloperday.com/?p=670</guid>
		<description><![CDATA[I&#8217;ve finished reading Expert Python Programming written by Tarek Ziade. This book is written for Python developers who wish to go further in mastering Python. Expert Python Programming covers a range of topics such as generators, meta programming, naming standards, packaging, continuous integration, writing documentation, test driven development, optimizations and design patterns. Even non Python [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.thedeveloperday.com/wp-content/uploads/2010/02/python-book.png"><img class="size-full wp-image-554 alignleft" style="margin-right: 20px; margin-bottom: 20px;" title="python-book" src="http://www.thedeveloperday.com/wp-content/uploads/2010/02/python-book.png" alt="Expert Python Programming Book" width="100" height="123" /></a>I&#8217;ve finished reading <a href="http://www.packtpub.com/expert-python-programming/book/mid/030310dzyab8?utm_source=thedeveloperday.com&amp;utm_medium=affiliate&amp;utm_content=blog&amp;utm_campaign=mdb_002637">Expert Python Programming</a> written by <a href="http://tarekziade.wordpress.com/">Tarek Ziade</a>. This book is written for <a href="http://www.python.org">Python</a> developers who wish to go further in mastering Python. Expert Python Programming covers a range of topics such as generators, meta programming, naming standards, packaging, <a href="http://en.wikipedia.org/wiki/Continuous_integration">continuous integration</a>, writing documentation, <a href="http://en.wikipedia.org/wiki/Test-driven_development">test driven development</a>, optimizations and <a href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)">design patterns</a>. Even non Python developers will find this book useful since it covers best practices which are well suited to other programming languages.</p>
<p>There&#8217;s a <a href="https://www.packtpub.com/sites/default/files/sample_chapters/expert-python-programming-sample-chapter-chapter-10-documenting-your-project.pdf">sample chapter available</a> which covers the topic of documentation. We all know how frustrating it is to write documentation. It&#8217;s boring, often it feels pointless and it tends to get out of date. The 7 rules of technical writing presented in the book changed my mind. It&#8217;s actually one of my personal favourite chapters in the book.</p>
<p>The <strong>first chapter</strong> of the book is very friendly and covers installation of many Python flavours, packaging tools such as EasyInstall and setuptools, prompt customization and choices of editors.</p>
<p>While the first chapter is very easy going the second chapters dives deep into syntactic intricacies of Python with it&#8217;s iterators, generators, decorators and context providers. If the <strong>second chapter</strong> won&#8217;t make your head spin then the <strong>third one</strong> on class level Python best practices certainly will. Author of the book does a great job at explaining the pitfalls of multiple inheritance, inconsistent <strong>super</strong> usage, Python&#8217;s method resolution order and finally meta programming which allows to change classes&#8217; and objects&#8217; definitions <em>on the fly</em>.</p>
<p>The rest of the book is a lot less confusing but nonetheless rewarding. <strong>Chapter four</strong> gives some very good advice on naming standards, building API&#8217;s and tools that ease might help along the way. <strong>Chapter five</strong> explains how to create python packages, distribute and deploy them.</p>
<p>What I really like in every book is examples. One example can explain more than a thousand words could. The examples in the second and third chapters are very valuable and help greatly to understand the concepts explained. The book goes even further and provides a complete example of a small application called <em>Atomisator</em>. This example is implemented following the best practices of previous five chapters.</p>
<p>Chapters <strong>eight</strong> and <strong>nine</strong> will be very interesting to team leads which explain distributed version control systems such as Mercurial, continuous integration and managing software in an iterative way.</p>
<p>Another very important topic on <strong>Test Driven Development</strong> or <strong>TDD</strong> is presented in <strong>chapter eleven</strong>. I cannot emphasize enough how valuable test driven development is. Though even today it&#8217;s not a widely adopted practice and not a well understood one either. This book will try to convince you why you should be doing <strong>TDD</strong> and if you&#8217;re already convinced it will present you with tools that you can use to do <strong>TDD</strong>. I was very interested to find out about the available unit testing framework alternatives. Further an interesting idea on <strong>doc testing</strong> is described which while seems a little exotic may be a very efficient way to keep your documentation up to date.</p>
<p>Reading further there&#8217;s a great chapter on optimization which describes general principles of <strong>optimization</strong> and various <strong>profiling techniques</strong>. Measuring performance may prove difficult on different hardware such as local development machines and stage servers. I was very intrigued to find out about <strong>pystones</strong> and the general concept behind it which helps to deal with the problem described.</p>
<p>Together with optimization techniques, various profiler tools which you never knew of, the book describes some generic optimization solutions available. Some are well known such as the <a href="http://en.wikipedia.org/wiki/Big_O_notation">Big-O notation</a>, some are less known such as <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity">Cyclomatic Complexity</a>. I think this book explains the concepts behind <strong>multi threading</strong>, <strong>multi processing</strong> and caching very well. Making an informed decision whether to use threads or multi processes for your Python application may as well mean if it&#8217;s going to be successful or not.</p>
<p>And finally the last chapter talks of design patterns. While it&#8217;s not the most mind blowing chapter of the book it provides some very interesting details why Python doesn&#8217;t have interfaces or how certain <a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612">GoF</a> patterns can be implemented in a Python specific way.</p>
<h2>Conclusion</h2>
<p>Should you read this book? My answer is yes. Especially if Python earns your bread and butter. Not only you will know the syntactic intricacies of python it will introduce you to many must know concepts of software development. Even if you&#8217;re not a day to day Python developer but you do write an occasional Python script or application by all means read the book and read the first six chapters. I will go even further and recommend this book to non Python developers. Simply because it explains concepts that every developer should understand. And as an extra it is always interesting to learn new ideas and to see how things can be done differently.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedeveloperday.com/expert-python-programming-book-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expert Python Programming Review</title>
		<link>http://www.thedeveloperday.com/expert-python-programming-review/</link>
		<comments>http://www.thedeveloperday.com/expert-python-programming-review/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 21:39:15 +0000</pubDate>
		<dc:creator>Žilvinas Šaltys</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.thedeveloperday.com/?p=552</guid>
		<description><![CDATA[I&#8217;ve always been interested in Python. Python is a dynamic programming language with a very clear and readable syntax, strong introspection, intuitive object orientation and so on. It&#8217;s been used in many successful projects such as Trac, Django, Mercurial, YUM. It&#8217;s used in companies such as Google or Yahoo. Python has a vast standard library [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.thedeveloperday.com/wp-content/uploads/2010/02/python-book.png"><img class="size-full wp-image-554 alignleft" style="margin-right: 20px; margin-bottom: 20px;" title="python-book" src="http://www.thedeveloperday.com/wp-content/uploads/2010/02/python-book.png" alt="Expert Python Programming Book" width="100" height="123" /></a>I&#8217;ve always been interested in <a href="http://www.python.org/">Python</a>. Python is a dynamic programming language with a very clear and readable syntax, strong introspection, intuitive object orientation and so on. It&#8217;s been used in many successful projects such as <a href="http://trac.edgewall.org/">Trac</a>, <a href="http://www.djangoproject.com/">Django</a>, <a href="http://mercurial.selenic.com/">Mercurial</a>, <a href="http://fedoraproject.org/wiki/Tools/yum">YUM</a>. It&#8217;s used in companies such as Google or Yahoo. Python has a vast standard library allowing to solve almost any domain problem. From the early beginning Python had a <a href="http://python-history.blogspot.com/2009/01/pythons-design-philosophy.html">design philosophy</a> behind it which is probably one of the reasons why Python is such a successful programming language now days.</p>
<p>All these and other reasons make Python an interesting and valuable language to learn. I&#8217;ve chosen to review <a href="http://www.packtpub.com/expert-python-programming/book/mid/030310dzyab8?utm_source=thedeveloperday.com&amp;utm_medium=affiliate&amp;utm_content=blog&amp;utm_campaign=mdb_002637">Expert Python Programming</a> as my next book. Having used Python for personal projects such as <a href="http://code.google.com/p/pydumpy/">PyDumpy</a> or work related tasks such as continuous integration with <a href="http://buildbot.net/trac">BuildBot</a> I hope it will be an interesting read that will help me to improve my understanding of Python.</p>
<p>For those interested Packt Publishing offers a <a href="http://www.packtpub.com/files/expert-python-programming-sample-chapter-chapter-10-documenting-your-project.pdf">sample chapter</a> of the book.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedeveloperday.com/expert-python-programming-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

