<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.doughellmann.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkENRXgyeCp7ImA9Wx5QEU0.&quot;"><id>tag:blogger.com,1999:blog-5440028356946346379</id><updated>2010-08-29T12:51:34.690-04:00</updated><title>Doug Hellmann</title><subtitle type="html">&lt;p&gt;&lt;i&gt;Code Interstices&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;All the little things that happen between bouts of coding.  Covering internet technologies, Python, Mac OS X, and open source.&lt;/p&gt;</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.doughellmann.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.doughellmann.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5440028356946346379/posts/default?start-index=4&amp;max-results=3&amp;redirect=false&amp;v=2" /><author><name>Doug Hellmann</name><uri>http://www.blogger.com/profile/01892352754222143463</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>385</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>3</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.doughellmann.com/DougHellmann" /><feedburner:info uri="doughellmann" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-sa/2.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><feedburner:emailServiceId>DougHellmann</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;CkENRXk7eip7ImA9Wx5QEU0.&quot;"><id>tag:blogger.com,1999:blog-5440028356946346379.post-7824349381871002433</id><published>2010-08-29T12:51:00.001-04:00</published><updated>2010-08-29T12:51:34.702-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-29T12:51:34.702-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="PyMOTW" /><title>PyMOTW: codecs - String encoding and decoding</title><content type="html">&lt;p&gt;The &lt;span&gt;&lt;tt class="xref py py-mod docutils literal"&gt;&lt;span class="pre"&gt;codecs&lt;/span&gt;&lt;/tt&gt;&lt;/span&gt; module provides stream and file interfaces for&lt;br /&gt;transcoding data in your program.  It is most commonly used to work&lt;br /&gt;with Unicode text, but other encodings are also available for other&lt;br /&gt;purposes.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.doughellmann.com/PyMOTW/codecs/"&gt;Read more...&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5440028356946346379-7824349381871002433?l=blog.doughellmann.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=hGLK7qYhie8:2D7mKeelfkU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=hGLK7qYhie8:2D7mKeelfkU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?i=hGLK7qYhie8:2D7mKeelfkU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=hGLK7qYhie8:2D7mKeelfkU:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=hGLK7qYhie8:2D7mKeelfkU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?i=hGLK7qYhie8:2D7mKeelfkU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=hGLK7qYhie8:2D7mKeelfkU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=hGLK7qYhie8:2D7mKeelfkU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?i=hGLK7qYhie8:2D7mKeelfkU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DougHellmann/~4/hGLK7qYhie8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.doughellmann.com/feeds/7824349381871002433/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5440028356946346379&amp;postID=7824349381871002433" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5440028356946346379/posts/default/7824349381871002433?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5440028356946346379/posts/default/7824349381871002433?v=2" /><link rel="alternate" type="text/html" href="http://feeds.doughellmann.com/~r/DougHellmann/~3/hGLK7qYhie8/pymotw-codecs-string-encoding-and.html" title="PyMOTW: codecs - String encoding and decoding" /><author><name>Doug Hellmann</name><uri>http://www.blogger.com/profile/01892352754222143463</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="00116818175230541568" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.doughellmann.com/2010/08/pymotw-codecs-string-encoding-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIFQ348fCp7ImA9Wx5RFEo.&quot;"><id>tag:blogger.com,1999:blog-5440028356946346379.post-5198622359804097283</id><published>2010-08-22T07:45:00.001-04:00</published><updated>2010-08-22T07:45:12.074-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-22T07:45:12.074-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="PyMOTW" /><title>PyMOTW: math - Mathematical functions</title><content type="html">&lt;p&gt;The &lt;span&gt;&lt;tt class="xref py py-mod docutils literal"&gt;&lt;span class="pre"&gt;math&lt;/span&gt;&lt;/tt&gt;&lt;/span&gt; module implements many of the IEEE functions that would&lt;br /&gt;normally be found in the native platform C libraries for complex&lt;br /&gt;mathematical operations using floating point values, including&lt;br /&gt;logarithms and trigonometric operations.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.doughellmann.com/PyMOTW/math/"&gt;Read more...&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5440028356946346379-5198622359804097283?l=blog.doughellmann.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=tHOPvaICkr4:EreUoO_LkSo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=tHOPvaICkr4:EreUoO_LkSo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?i=tHOPvaICkr4:EreUoO_LkSo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=tHOPvaICkr4:EreUoO_LkSo:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=tHOPvaICkr4:EreUoO_LkSo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?i=tHOPvaICkr4:EreUoO_LkSo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=tHOPvaICkr4:EreUoO_LkSo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=tHOPvaICkr4:EreUoO_LkSo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?i=tHOPvaICkr4:EreUoO_LkSo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DougHellmann/~4/tHOPvaICkr4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.doughellmann.com/feeds/5198622359804097283/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5440028356946346379&amp;postID=5198622359804097283" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5440028356946346379/posts/default/5198622359804097283?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5440028356946346379/posts/default/5198622359804097283?v=2" /><link rel="alternate" type="text/html" href="http://feeds.doughellmann.com/~r/DougHellmann/~3/tHOPvaICkr4/pymotw-math-mathematical-functions.html" title="PyMOTW: math - Mathematical functions" /><author><name>Doug Hellmann</name><uri>http://www.blogger.com/profile/01892352754222143463</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="00116818175230541568" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.doughellmann.com/2010/08/pymotw-math-mathematical-functions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIESH8zfSp7ImA9Wx5SGEU.&quot;"><id>tag:blogger.com,1999:blog-5440028356946346379.post-4162454765350410952</id><published>2010-08-15T11:51:00.001-04:00</published><updated>2010-08-15T11:51:49.185-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-15T11:51:49.185-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="testing" /><category scheme="http://www.blogger.com/atom/ns#" term="PyMOTW" /><title>PyMOTW: doctest - Testing through documentation</title><content type="html">&lt;p&gt;&lt;span&gt;&lt;tt class="xref py py-mod docutils literal"&gt;&lt;span class="pre"&gt;doctest&lt;/span&gt;&lt;/tt&gt;&lt;/span&gt; lets you test your code by running examples embedded in&lt;br /&gt;the documentation and verifying that they produce the expected&lt;br /&gt;results.  It works by parsing the help text to find examples, running&lt;br /&gt;them, then comparing the output text against the expected value.  Many&lt;br /&gt;developers find &lt;span&gt;&lt;tt class="xref py py-mod docutils literal"&gt;&lt;span class="pre"&gt;doctest&lt;/span&gt;&lt;/tt&gt;&lt;/span&gt; easier than &lt;tt class="xref py py-mod docutils literal"&gt;&lt;span class="pre"&gt;unittest&lt;/span&gt;&lt;/tt&gt; because in&lt;br /&gt;its simplest form, there is no API to learn before using it.  However,&lt;br /&gt;as the examples become more complex the lack of fixture management can&lt;br /&gt;make writing &lt;span&gt;&lt;tt class="xref py py-mod docutils literal"&gt;&lt;span class="pre"&gt;doctest&lt;/span&gt;&lt;/tt&gt;&lt;/span&gt; tests more cumbersome than using&lt;br /&gt;&lt;tt class="xref py py-mod docutils literal"&gt;&lt;span class="pre"&gt;unittest&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.doughellmann.com/PyMOTW/doctest/"&gt;Read more...&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5440028356946346379-4162454765350410952?l=blog.doughellmann.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=4yYjItpoCzc:IeKAkRioM94:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=4yYjItpoCzc:IeKAkRioM94:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?i=4yYjItpoCzc:IeKAkRioM94:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=4yYjItpoCzc:IeKAkRioM94:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=4yYjItpoCzc:IeKAkRioM94:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?i=4yYjItpoCzc:IeKAkRioM94:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=4yYjItpoCzc:IeKAkRioM94:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.doughellmann.com/~ff/DougHellmann?a=4yYjItpoCzc:IeKAkRioM94:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DougHellmann?i=4yYjItpoCzc:IeKAkRioM94:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DougHellmann/~4/4yYjItpoCzc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.doughellmann.com/feeds/4162454765350410952/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=5440028356946346379&amp;postID=4162454765350410952" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5440028356946346379/posts/default/4162454765350410952?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5440028356946346379/posts/default/4162454765350410952?v=2" /><link rel="alternate" type="text/html" href="http://feeds.doughellmann.com/~r/DougHellmann/~3/4yYjItpoCzc/pymotw-doctest-testing-through.html" title="PyMOTW: doctest - Testing through documentation" /><author><name>Doug Hellmann</name><uri>http://www.blogger.com/profile/01892352754222143463</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="00116818175230541568" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.doughellmann.com/2010/08/pymotw-doctest-testing-through.html</feedburner:origLink></entry></feed>
