<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: CouchDB and Pylons: Getting&#160;Started</title>
	<atom:link href="http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/feed/" rel="self" type="application/rss+xml" />
	<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/</link>
	<description>coding my way through life</description>
	<lastBuildDate>Tue, 13 Mar 2012 21:51:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Devin</title>
		<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/comment-page-1/#comment-14000</link>
		<dc:creator>Devin</dc:creator>
		<pubDate>Thu, 04 Nov 2010 03:03:09 +0000</pubDate>
		<guid isPermaLink="false">http://chrismoos.com/?p=139#comment-14000</guid>
		<description>I updated this article, migrated from Mako -&gt; Jinja2, and migrated from CouchDB -&gt; MongoDB.

Blog post: http://devinfee.com/blog/2010/11/04/pylons-mongodb-user-registration-login/
Git Repo: https://github.com/dfee/userdemo</description>
		<content:encoded><![CDATA[<p>I updated this article, migrated from Mako -&gt; Jinja2, and migrated from CouchDB -&gt; MongoDB.</p>
<p>Blog post: <a href="http://devinfee.com/blog/2010/11/04/pylons-mongodb-user-registration-login/" rel="nofollow">http://devinfee.com/blog/2010/11/04/pylons-mongodb-user-registration-login/</a><br />
Git Repo: <a href="https://github.com/dfee/userdemo" rel="nofollow">https://github.com/dfee/userdemo</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Bangert</title>
		<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/comment-page-1/#comment-5758</link>
		<dc:creator>Ben Bangert</dc:creator>
		<pubDate>Sat, 02 May 2009 17:01:29 +0000</pubDate>
		<guid isPermaLink="false">http://chrismoos.com/?p=139#comment-5758</guid>
		<description>@upattwothirty: Short answer, don&#039;t have two people update the same document. If you have something that needs adding to, like adding comments to a blog, add each comment as its own CouchDB document rather than extending an array inside a single Blog entry CouchDB doc.

Note that the entire PylonsHQ website is also running on CouchDB + Pylons, and is open-sourced: http://bitbucket.org/bbangert/kai/

It uses the raw couchdb access as shown above, in addition to using python-couchdb schema docs which allow it to coerce some values from JSON (like datetime) back to a proper Python form.</description>
		<content:encoded><![CDATA[<p>@upattwothirty: Short answer, don&#8217;t have two people update the same document. If you have something that needs adding to, like adding comments to a blog, add each comment as its own CouchDB document rather than extending an array inside a single Blog entry CouchDB doc.</p>
<p>Note that the entire PylonsHQ website is also running on CouchDB + Pylons, and is open-sourced: <a href="http://bitbucket.org/bbangert/kai/" rel="nofollow">http://bitbucket.org/bbangert/kai/</a></p>
<p>It uses the raw couchdb access as shown above, in addition to using python-couchdb schema docs which allow it to coerce some values from JSON (like datetime) back to a proper Python form.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chrismoos</title>
		<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/comment-page-1/#comment-5264</link>
		<dc:creator>chrismoos</dc:creator>
		<pubDate>Thu, 23 Apr 2009 21:41:35 +0000</pubDate>
		<guid isPermaLink="false">http://chrismoos.com/?p=139#comment-5264</guid>
		<description>upattwothirty:

I can think of two ways you could approach this.

1. Instead of just incrementing a single value for the counter example, you could create a new document for each visit, then run a map/reduce view to return the total visits. 

2. When you update a document in couchdb, it will also send the revision of the document. If you try to update the document, and CouchDB detects a different revision(example: someone else changes the document), it will return an error. You would probably handle this in your application code somewhere, and retry the &quot;transaction&quot;.

As far as scalability....I&#039;m not sure :P. Wait for a 1.0 release when replication etc,. is all hammered out.

From the CouchDB docs: 

To update an existing document, you also issue a PUT request. In this case, the JSON body must contain a _rev property, which lets CouchDB know which revision the edits are based on. If the revision of the document currently stored in the database doesn&#039;t match, then a 412 conflict error is returned.</description>
		<content:encoded><![CDATA[<p>upattwothirty:</p>
<p>I can think of two ways you could approach this.</p>
<p>1. Instead of just incrementing a single value for the counter example, you could create a new document for each visit, then run a map/reduce view to return the total visits. </p>
<p>2. When you update a document in couchdb, it will also send the revision of the document. If you try to update the document, and CouchDB detects a different revision(example: someone else changes the document), it will return an error. You would probably handle this in your application code somewhere, and retry the &#8220;transaction&#8221;.</p>
<p>As far as scalability&#8230;.I&#8217;m not sure <img src='http://cdn.chrismoos.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> . Wait for a 1.0 release when replication etc,. is all hammered out.</p>
<p>From the CouchDB docs: </p>
<p>To update an existing document, you also issue a PUT request. In this case, the JSON body must contain a _rev property, which lets CouchDB know which revision the edits are based on. If the revision of the document currently stored in the database doesn&#8217;t match, then a 412 conflict error is returned.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: upattwothirty</title>
		<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/comment-page-1/#comment-5257</link>
		<dc:creator>upattwothirty</dc:creator>
		<pubDate>Thu, 23 Apr 2009 14:17:06 +0000</pubDate>
		<guid isPermaLink="false">http://chrismoos.com/?p=139#comment-5257</guid>
		<description>Great write up, thanks.

Any thoughts on how to deal with concurrent requests though? with SQL dbs, we can have transactions and row locking to ensure the counter is in a valid state. Can this be acheived with couchdb backend? and if so, how scalable would it be?</description>
		<content:encoded><![CDATA[<p>Great write up, thanks.</p>
<p>Any thoughts on how to deal with concurrent requests though? with SQL dbs, we can have transactions and row locking to ensure the counter is in a valid state. Can this be acheived with couchdb backend? and if so, how scalable would it be?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CouchDB resources &#124; Tech Mix</title>
		<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/comment-page-1/#comment-4479</link>
		<dc:creator>CouchDB resources &#124; Tech Mix</dc:creator>
		<pubDate>Sat, 04 Apr 2009 13:05:43 +0000</pubDate>
		<guid isPermaLink="false">http://chrismoos.com/?p=139#comment-4479</guid>
		<description>[...] CoungDB with Pylons [...]</description>
		<content:encoded><![CDATA[<p>[...] CoungDB with Pylons [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CouchDB and Pylons: User Registration and Login - chris moos&#8217;s blog</title>
		<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/comment-page-1/#comment-2896</link>
		<dc:creator>CouchDB and Pylons: User Registration and Login - chris moos&#8217;s blog</dc:creator>
		<pubDate>Sun, 22 Feb 2009 01:48:03 +0000</pubDate>
		<guid isPermaLink="false">http://chrismoos.com/?p=139#comment-2896</guid>
		<description>[...] the previous tutorial, we learned how to get CouchDB and Pylons up and running, as well as create a simple page counter. [...]</description>
		<content:encoded><![CDATA[<p>[...] the previous tutorial, we learned how to get CouchDB and Pylons up and running, as well as create a simple page counter. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: toby</title>
		<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/comment-page-1/#comment-2756</link>
		<dc:creator>toby</dc:creator>
		<pubDate>Tue, 17 Feb 2009 19:05:52 +0000</pubDate>
		<guid isPermaLink="false">http://chrismoos.com/?p=139#comment-2756</guid>
		<description>These are two very cool bits of technology and your post is really well written. Can&#039;t wait to read the next installment</description>
		<content:encoded><![CDATA[<p>These are two very cool bits of technology and your post is really well written. Can&#8217;t wait to read the next installment</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Bergmann</title>
		<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/comment-page-1/#comment-2661</link>
		<dc:creator>Bill Bergmann</dc:creator>
		<pubDate>Fri, 13 Feb 2009 22:19:55 +0000</pubDate>
		<guid isPermaLink="false">http://chrismoos.com/?p=139#comment-2661</guid>
		<description>Thanks for the tutorial.

db = couchdb.client.Database(&#039;http://localhost:5984/tutorial&#039;) did not create db.  

To make the code work for me I added in my imports: 
from couchdb import Server

immediately following db = couchdb.client.Database(&#039;http://localhost:5984/tutorial&#039;)
I added: 
if not db:
            db = Server(&#039;http://localhost:5984/&#039;).create(&#039;tutorial&#039;)

Then everything went fine.  From a brief bit of looking around it seems that couchdb.client.Database accesses a couchdb database but I don&#039;t think that it creates one if it doesn&#039;t exist.  I&#039;m using couchdb 0.8.1 and couchdb-python 0.5</description>
		<content:encoded><![CDATA[<p>Thanks for the tutorial.</p>
<p>db = couchdb.client.Database(&#8216;http://localhost:5984/tutorial&#8217;) did not create db.  </p>
<p>To make the code work for me I added in my imports:<br />
from couchdb import Server</p>
<p>immediately following db = couchdb.client.Database(&#8216;http://localhost:5984/tutorial&#8217;)<br />
I added:<br />
if not db:<br />
            db = Server(&#8216;http://localhost:5984/&#8217;).create(&#8216;tutorial&#8217;)</p>
<p>Then everything went fine.  From a brief bit of looking around it seems that couchdb.client.Database accesses a couchdb database but I don&#8217;t think that it creates one if it doesn&#8217;t exist.  I&#8217;m using couchdb 0.8.1 and couchdb-python 0.5</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff</title>
		<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/comment-page-1/#comment-2512</link>
		<dc:creator>Jeff</dc:creator>
		<pubDate>Wed, 04 Feb 2009 02:44:37 +0000</pubDate>
		<guid isPermaLink="false">http://chrismoos.com/?p=139#comment-2512</guid>
		<description>Very good, how about a tutorial for a simple facebook app using python?</description>
		<content:encoded><![CDATA[<p>Very good, how about a tutorial for a simple facebook app using python?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CouchDB and Pylons: Getting Started - chris moosâ€™s blog - attopbusiness</title>
		<link>http://chrismoos.com/2009/02/03/couchdb-and-pylons-getting-started/comment-page-1/#comment-2510</link>
		<dc:creator>CouchDB and Pylons: Getting Started - chris moosâ€™s blog - attopbusiness</dc:creator>
		<pubDate>Wed, 04 Feb 2009 02:27:59 +0000</pubDate>
		<guid isPermaLink="false">http://chrismoos.com/?p=139#comment-2510</guid>
		<description>[...] Normally a Pylons web application will use some sort of RDBMS for storing data and persistence â€” such as MySQL or PostgreSQL. Iâ€™ve decided to go a different route and integrate Pylons with CouchDB Read more [...]</description>
		<content:encoded><![CDATA[<p>[...] Normally a Pylons web application will use some sort of RDBMS for storing data and persistence â€” such as MySQL or PostgreSQL. Iâ€™ve decided to go a different route and integrate Pylons with CouchDB Read more [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

