<?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: Tornado&#8217;s Big Feature is Not &#8216;Async&#8217;</title>
	<atom:link href="http://www.protocolostomy.com/2010/04/04/tornados-big-feature-is-not-async/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.protocolostomy.com/2010/04/04/tornados-big-feature-is-not-async/</link>
	<description>Made with only the finest 1's and 0's</description>
	<lastBuildDate>Thu, 26 Jan 2012 21:20:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: whardier</title>
		<link>http://www.protocolostomy.com/2010/04/04/tornados-big-feature-is-not-async/comment-page-1/#comment-52681</link>
		<dc:creator>whardier</dc:creator>
		<pubDate>Thu, 26 Jan 2012 21:20:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.protocolostomy.com/?p=748#comment-52681</guid>
		<description>I honestly like the simplicity of smaller frameworks as long as there is a method for dealing with thread safe database calls.  I spent far too many hours dealing with how Django preferred to, even after lazy loading, deal with queries and joins.  I was impressed by how the ORM worked but above and beyond slow unscalable queries mapping/pickling/reclassing/etcing the data even if I was using MongoDB or something similar eventually became a huge bottleneck.

So I see a lot of benefit from the async side of tornado.. but the biggest feature is simple and direct access for people that are beyond the prototype stage and don&#039;t need the handy helpers but still want a python oriented solution that has enough basic modules to be useful.

I&#039;m using tornado for sockets, for redis access, for mongodb and I&#039;m using it to create tools that compliment the front end.. so I&#039;m lovin it.  I hope you&#039;re still on the boat.</description>
		<content:encoded><![CDATA[<p>I honestly like the simplicity of smaller frameworks as long as there is a method for dealing with thread safe database calls.  I spent far too many hours dealing with how Django preferred to, even after lazy loading, deal with queries and joins.  I was impressed by how the ORM worked but above and beyond slow unscalable queries mapping/pickling/reclassing/etcing the data even if I was using MongoDB or something similar eventually became a huge bottleneck.</p>
<p>So I see a lot of benefit from the async side of tornado.. but the biggest feature is simple and direct access for people that are beyond the prototype stage and don&#8217;t need the handy helpers but still want a python oriented solution that has enough basic modules to be useful.</p>
<p>I&#8217;m using tornado for sockets, for redis access, for mongodb and I&#8217;m using it to create tools that compliment the front end.. so I&#8217;m lovin it.  I hope you&#8217;re still on the boat.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marrying Boto to Tornado: Greenlets bring them together &#124; Josh Haas&#039;s Web Log</title>
		<link>http://www.protocolostomy.com/2010/04/04/tornados-big-feature-is-not-async/comment-page-1/#comment-52316</link>
		<dc:creator>Marrying Boto to Tornado: Greenlets bring them together &#124; Josh Haas&#039;s Web Log</dc:creator>
		<pubDate>Sun, 19 Jun 2011 23:42:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.protocolostomy.com/?p=748#comment-52316</guid>
		<description>[...] I don’t really use Tornado for its non-blocky awesomeness, I use it for the get out of deployment-hell free card. But, if I’m gonna add it to my tech stack, I do want my money’s worth — [...]</description>
		<content:encoded><![CDATA[<p>[...] I don’t really use Tornado for its non-blocky awesomeness, I use it for the get out of deployment-hell free card. But, if I’m gonna add it to my tech stack, I do want my money’s worth — [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://www.protocolostomy.com/2010/04/04/tornados-big-feature-is-not-async/comment-page-1/#comment-52290</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Wed, 08 Jun 2011 15:58:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.protocolostomy.com/?p=748#comment-52290</guid>
		<description>With Tornado&#039;s fork Anzu you can do this:

@location(&#039;/login&#039;)
class LoginHandler(BaseHandler):
    # ...

    @error_handler(get)
    @validate(validators={&#039;email&#039;: validators.Email(not_empty=True, min=7, max=64),
                          &#039;password&#039;: validators.UnicodeString(not_empty=True, min=6, max=32, strip=False)})
    def post(self):
        # ...</description>
		<content:encoded><![CDATA[<p>With Tornado&#8217;s fork Anzu you can do this:</p>
<p>@location(&#8216;/login&#8217;)<br />
class LoginHandler(BaseHandler):<br />
    # &#8230;</p>
<p>    @error_handler(get)<br />
    @validate(validators={&#8216;email&#8217;: validators.Email(not_empty=True, min=7, max=64),<br />
                          &#8216;password&#8217;: validators.UnicodeString(not_empty=True, min=6, max=32, strip=False)})<br />
    def post(self):<br />
        # &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Mela</title>
		<link>http://www.protocolostomy.com/2010/04/04/tornados-big-feature-is-not-async/comment-page-1/#comment-52172</link>
		<dc:creator>Robert Mela</dc:creator>
		<pubDate>Wed, 02 Mar 2011 16:06:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.protocolostomy.com/?p=748#comment-52172</guid>
		<description>mod_wsgi&#039;s been great for us and no problem at all to configure.   We&#039;ve used it with standalone wsgi, with Django, and with Flask.

The problems you describe seem to be related to getting Python path set up.  This to me is a generic Python issue, not specific to mod_wsgi.

The way we do it for our apps is pretty simple -- we include our wsgi files in the app repository, typically under the root of the application.  

So, for a simple WSGI or Flask app -

    myapp/__init__.py
    myapp/myscript.py
    myapp/wsgifiles/myapp.wsgi

Then, in myapp.wsgi --

   import sys,os

   # Append parent directory of this wsgi file to python path
   pathElements = os.path.dirname(__file__).split(&#039;/&#039;)[0:-1]
   sys.path.append(&quot;/%s&quot; % &quot;/&quot;.join(pathElements) )

   # Now that the path is set, load the symbol for the wsgi application

   from myapp import foobar as application # where foobar is a wsgi application


There -- now that isn&#039;t so hard.... tho Django IIRC requires the parent of the application directory be in the path -- and that IIRC was a minor headache.</description>
		<content:encoded><![CDATA[<p>mod_wsgi&#8217;s been great for us and no problem at all to configure.   We&#8217;ve used it with standalone wsgi, with Django, and with Flask.</p>
<p>The problems you describe seem to be related to getting Python path set up.  This to me is a generic Python issue, not specific to mod_wsgi.</p>
<p>The way we do it for our apps is pretty simple &#8212; we include our wsgi files in the app repository, typically under the root of the application.  </p>
<p>So, for a simple WSGI or Flask app -</p>
<p>    myapp/__init__.py<br />
    myapp/myscript.py<br />
    myapp/wsgifiles/myapp.wsgi</p>
<p>Then, in myapp.wsgi &#8211;</p>
<p>   import sys,os</p>
<p>   # Append parent directory of this wsgi file to python path<br />
   pathElements = os.path.dirname(__file__).split(&#8216;/&#8217;)[0:-1]<br />
   sys.path.append(&#8220;/%s&#8221; % &#8220;/&#8221;.join(pathElements) )</p>
<p>   # Now that the path is set, load the symbol for the wsgi application</p>
<p>   from myapp import foobar as application # where foobar is a wsgi application</p>
<p>There &#8212; now that isn&#8217;t so hard&#8230;. tho Django IIRC requires the parent of the application directory be in the path &#8212; and that IIRC was a minor headache.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glyph Lefkowitz</title>
		<link>http://www.protocolostomy.com/2010/04/04/tornados-big-feature-is-not-async/comment-page-1/#comment-38530</link>
		<dc:creator>Glyph Lefkowitz</dc:creator>
		<pubDate>Wed, 07 Apr 2010 22:21:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.protocolostomy.com/?p=748#comment-38530</guid>
		<description>If your concern is deployment, why not just deploy Django with Twisted?  It only takes a few seconds to get started:

http://blog.dreid.org/2009/03/twisted-django-it-wont-burn-down-your.html

if you want a slightly more robust deployment setup, you can also check this out:

http://clemesha.org/blog/2009/apr/23/Django-on-Twisted-using-latest-twisted-web-wsgi/</description>
		<content:encoded><![CDATA[<p>If your concern is deployment, why not just deploy Django with Twisted?  It only takes a few seconds to get started:</p>
<p><a href="http://blog.dreid.org/2009/03/twisted-django-it-wont-burn-down-your.html" rel="nofollow">http://blog.dreid.org/2009/03/twisted-django-it-wont-burn-down-your.html</a></p>
<p>if you want a slightly more robust deployment setup, you can also check this out:</p>
<p><a href="http://clemesha.org/blog/2009/apr/23/Django-on-Twisted-using-latest-twisted-web-wsgi/" rel="nofollow">http://clemesha.org/blog/2009/apr/23/Django-on-Twisted-using-latest-twisted-web-wsgi/</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>

