<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3076305687588603234</id><updated>2012-01-31T07:54:31.667+11:00</updated><category term='python'/><category term='pylons'/><title type='text'>Chris Miles Writes Python</title><subtitle type='html'>Chris Miles writes about the Python programming language.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://chris-miles-writes-python.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3076305687588603234/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://chris-miles-writes-python.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chris Miles</name><uri>https://profiles.google.com/108055221952493560833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xKLVzFRwwiM/AAAAAAAAAAI/AAAAAAAAAMM/HfqSC6JVaxk/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3076305687588603234.post-3805030094090332876</id><published>2010-10-11T17:47:00.000+11:00</published><updated>2010-10-11T17:47:00.208+11:00</updated><title type='text'>PYPI mirror</title><content type='html'>The other day I was trying to deploy some Python software, but ran in to trouble with the package dependencies. &amp;nbsp;PYPI was down and so the packages could not be fetched!&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;After a quick search I found what suspiciously looked like a PYPI mirror at http://b.pypi.python.org/&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Pointing easy_install at this mirror gave me the result I needed.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;easy_install -i http://b.pypi.python.org/simple/ -U setuptools&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;I don't know if the mirror is common knowledge, but this is a handy option to remember.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3076305687588603234-3805030094090332876?l=chris-miles-writes-python.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chris-miles-writes-python.blogspot.com/feeds/3805030094090332876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://chris-miles-writes-python.blogspot.com/2010/10/pypi-mirror.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3076305687588603234/posts/default/3805030094090332876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3076305687588603234/posts/default/3805030094090332876'/><link rel='alternate' type='text/html' href='http://chris-miles-writes-python.blogspot.com/2010/10/pypi-mirror.html' title='PYPI mirror'/><author><name>Chris Miles</name><uri>https://profiles.google.com/108055221952493560833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xKLVzFRwwiM/AAAAAAAAAAI/AAAAAAAAAMM/HfqSC6JVaxk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3076305687588603234.post-1896116309099344851</id><published>2009-11-25T15:58:00.001+11:00</published><updated>2009-11-25T16:01:57.917+11:00</updated><title type='text'>PSI 0.3b2 Released</title><content type='html'>A new version of &lt;a href="http://bitbucket.org/chrismiles/psi/wiki/Home"&gt;Python System Information&lt;/a&gt; (PSI) has been released:&amp;nbsp;&lt;a href="http://pypi.python.org/pypi/PSI/0.3b2"&gt;0.3b2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Big thanks to Floris Bruynooghe for doing all the heavy lifting on this one. &amp;nbsp;&lt;a href="http://bruynooghe.blogspot.com/2009/11/new-python-system-information-release.html"&gt;Floris describes the changes&lt;/a&gt; on his blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3076305687588603234-1896116309099344851?l=chris-miles-writes-python.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chris-miles-writes-python.blogspot.com/feeds/1896116309099344851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://chris-miles-writes-python.blogspot.com/2009/11/psi-03b2-released.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3076305687588603234/posts/default/1896116309099344851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3076305687588603234/posts/default/1896116309099344851'/><link rel='alternate' type='text/html' href='http://chris-miles-writes-python.blogspot.com/2009/11/psi-03b2-released.html' title='PSI 0.3b2 Released'/><author><name>Chris Miles</name><uri>https://profiles.google.com/108055221952493560833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xKLVzFRwwiM/AAAAAAAAAAI/AAAAAAAAAMM/HfqSC6JVaxk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3076305687588603234.post-7611445318993373506</id><published>2009-09-30T21:31:00.000+10:00</published><updated>2009-09-30T21:31:43.513+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='pylons'/><title type='text'>BlastOff 0.2 released</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.flickr.com/photos/lecates/2539321939/" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://farm3.static.flickr.com/2033/2540307554_e70f3f4b69_m_d.jpg" width="133" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://pypi.python.org/pypi/BlastOff"&gt;BlastOff&lt;/a&gt; 0.2 has now been released. &amp;nbsp;BlastOff is a quickstart template for &lt;a href="http://pylonshq.com/"&gt;Pylons&lt;/a&gt;. It is a substitute for the simple boilerplate template that Pylons provides out-of-the-box. &amp;nbsp;Use BlastOff to generate a Pylons skeleton&amp;nbsp;configured with &lt;a href="http://www.sqlalchemy.org/"&gt;SQLAlchemy&lt;/a&gt;, &lt;a href="http://www.makotemplates.org/"&gt;mako&lt;/a&gt;, &lt;a href="http://pypi.python.org/pypi/repoze.who"&gt;repoze.who&lt;/a&gt;, &lt;a href="http://toscawidgets.org/"&gt;ToscaWidgets&lt;/a&gt;, &lt;a href="http://www.python-turbomail.org/"&gt;TurboMail&lt;/a&gt;, &lt;a href="http://pypi.python.org/pypi/WebFlash"&gt;WebFlash&lt;/a&gt; and (optionally) &lt;a href="http://pypi.python.org/pypi/SchemaBot"&gt;SchemaBot&lt;/a&gt;. The generated app is pre-configured with authentication, login and registration forms, and (optionally) email confirmation.&lt;br /&gt;&lt;br /&gt;The great thing about Pylons is that it provides a basic web framework stack that assumes very little about what you want to do. &amp;nbsp;The default application template contains no authentication, for example. &amp;nbsp;It is up to the user to choose an authentication middleware that best fits their needs. &amp;nbsp;Unfortunately, for newbies, it may not be obvious which middleware to choose. &amp;nbsp;Pre-configured templates like BlastOff can help users get started with the author's recommended choices of middleware components and configuration. &amp;nbsp;BlastOff contains my own choice of best-of-breed components that I use in my own Pylons applications.&lt;br /&gt;&lt;br /&gt;Not every template will be best for every developer, so I encourage others to create Pylons template packages. &amp;nbsp;A few others already exist, I found out recently, so I created a&amp;nbsp;&lt;a href="http://wiki.pylonshq.com/display/pylonsprojects/Pylons+Project+Templates"&gt;Pylons Project Templates&lt;/a&gt; page in the Pylons wiki to list them. &amp;nbsp;Take a look if you want to see how others are configuring their Pylons apps or just want to accelerate your Pylons development.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;a href="http://chrismiles.info/"&gt;Chris Miles&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/lecates/2539321939/" rel="cc:attributionURL"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: #666666;"&gt;Image by lecates @ flickr&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: #666666;"&gt; / &lt;/span&gt;&lt;/span&gt;&lt;a href="http://creativecommons.org/licenses/by-nc/2.0/" rel="license"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: #666666;"&gt;CC BY-NC 2.0&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3076305687588603234-7611445318993373506?l=chris-miles-writes-python.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chris-miles-writes-python.blogspot.com/feeds/7611445318993373506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://chris-miles-writes-python.blogspot.com/2009/09/blastoff-02-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3076305687588603234/posts/default/7611445318993373506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3076305687588603234/posts/default/7611445318993373506'/><link rel='alternate' type='text/html' href='http://chris-miles-writes-python.blogspot.com/2009/09/blastoff-02-released.html' title='BlastOff 0.2 released'/><author><name>Chris Miles</name><uri>https://profiles.google.com/108055221952493560833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xKLVzFRwwiM/AAAAAAAAAAI/AAAAAAAAAMM/HfqSC6JVaxk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3076305687588603234.post-1388060296449896155</id><published>2009-09-28T23:43:00.000+10:00</published><updated>2009-09-28T23:43:28.752+10:00</updated><title type='text'>New Python specific blog</title><content type='html'>I have started a new &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; specific blog at&amp;nbsp;&lt;a href="http://chris-miles-writes-python.blogspot.com/"&gt;http://chris-miles-writes-python.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can find older blog posts from me at&amp;nbsp;&lt;a href="http://chrismiles.livejournal.com/"&gt;http://chrismiles.livejournal.com/&lt;/a&gt; which I am winding down in favour of Blogger.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;a href="http://chrismiles.info/"&gt;Chris Miles&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3076305687588603234-1388060296449896155?l=chris-miles-writes-python.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chris-miles-writes-python.blogspot.com/feeds/1388060296449896155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://chris-miles-writes-python.blogspot.com/2009/09/new-python-specific-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3076305687588603234/posts/default/1388060296449896155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3076305687588603234/posts/default/1388060296449896155'/><link rel='alternate' type='text/html' href='http://chris-miles-writes-python.blogspot.com/2009/09/new-python-specific-blog.html' title='New Python specific blog'/><author><name>Chris Miles</name><uri>https://profiles.google.com/108055221952493560833</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-xKLVzFRwwiM/AAAAAAAAAAI/AAAAAAAAAMM/HfqSC6JVaxk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
