<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Allan Saddi's projects blog - flup</title>
    <link>http://www.saddi.com/software/news/</link>
    <description>Announcements and ramblings about projects new and old.</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.5.5 - http://www.s9y.org/</generator>
    <pubDate>Wed, 21 Oct 2009 16:48:10 GMT</pubDate>

    <image>
        <url>http://www.saddi.com/software/news/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Allan Saddi's projects blog - flup - Announcements and ramblings about projects new and old.</title>
        <link>http://www.saddi.com/software/news/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>new flup snapshot</title>
    <link>http://www.saddi.com/software/news/archives/70-new-flup-snapshot.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/70-new-flup-snapshot.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=70</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=70</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    I just released a new snapshot, it includes the following changes:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;fix fork bomb and check number of children against minSpare not maxSpare&lt;/li&gt;&lt;li&gt;Restore check of the absolute number of children against maxSpare and document rationale.&lt;/li&gt;&lt;li&gt;Add configurable timeout (default: no timeout) to be used when the WSGI application is called. Only applies to forked servers!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
Here are links to the &lt;a href=&quot;http://hg.saddi.com/flup-server/&quot;&gt;Hg repository&lt;/a&gt; and the &lt;a href=&quot;http://pypi.python.org/pypi/flup/1.0.3.dev-20091021&quot;&gt;PyPI page&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If there are any issues, please open a ticket at the &lt;a href=&quot;http://trac.saddi.com/flup&quot;&gt;flup Trac&lt;/a&gt; and/or submit a patch. &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Wed, 21 Oct 2009 09:48:10 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/70-guid.html</guid>
    
</item>
<item>
    <title>Submitting Patches</title>
    <link>http://www.saddi.com/software/news/archives/67-Submitting-Patches.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/67-Submitting-Patches.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=67</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=67</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    I&#039;ve written up brief guidelines on &lt;a href=&quot;http://trac.saddi.com/flup/wiki/SubmittingPatches&quot;&gt;submitting patches for flup&lt;/a&gt;. (Though it also pertains to any of my other public projects.)&lt;br /&gt;
&lt;br /&gt;
And I&#039;d like to thank everyone who has recently contributed! Don&#039;t worry, there&#039;s nothing in the guidelines that you weren&#039;t already doing. &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Mon, 03 Aug 2009 11:34:18 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/67-guid.html</guid>
    
</item>
<item>
    <title>flup 1.0.2 released</title>
    <link>http://www.saddi.com/software/news/archives/66-flup-1.0.2-released.html</link>
            <category>Python</category>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/66-flup-1.0.2-released.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=66</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=66</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    See &lt;a href=&quot;http://www.saddi.com/software/news/archives/65-flup-1.0.2-on-the-horizon....html&quot;&gt;this entry&lt;/a&gt; for details.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 26 May 2009 08:02:23 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/66-guid.html</guid>
    
</item>
<item>
    <title>flup 1.0.2 on the horizon...</title>
    <link>http://www.saddi.com/software/news/archives/65-flup-1.0.2-on-the-horizon....html</link>
            <category>Python</category>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/65-flup-1.0.2-on-the-horizon....html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=65</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=65</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    I guess I&#039;ve sat on these changes long enough:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Import Paste factories (and dependencies...) from PasteScript&lt;/li&gt;&lt;li&gt;Be tolerant of EAGAIN when sending messages to parent process.&lt;/li&gt;&lt;li&gt;Add forceCGI keyword argument to FastCGI servers to programmatically force CGI behavior.&lt;/li&gt;&lt;li&gt;Merge Tommi Virtanen&#039;s &quot;single server&quot; (sequential server) patch.&lt;/li&gt;&lt;li&gt;Update ez_setup.py.&lt;/li&gt;&lt;li&gt;Re-seed random module after each fork.&lt;/li&gt;&lt;li&gt;Add an indication as to which header fails assertion when passing in non-string header names and/or values.&lt;/li&gt;&lt;/ul&gt;The only major change are the Paste factories &amp;mdash; they should be a lot closer to the (deprecated) factories for flup servers found in PasteScript. In fact, they are the same factories found in PasteScript. Defaults will have changed, with respect to the previous factory implementations.&lt;br /&gt;
&lt;br /&gt;
I&#039;m looking to release in a week or so. Testing/comments are welcome:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://hg.saddi.com/flup-server/&quot;&gt;http://hg.saddi.com/flup-server/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
And, as you probably have noticed, I don&#039;t cut releases that often (not a big fan of &quot;release early, release often&quot;...) &lt;b&gt;But&lt;/b&gt; my public repository is always up-to-date. So it&#039;s almost the same thing... without the overhead. &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Mon, 18 May 2009 16:06:49 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/65-guid.html</guid>
    
</item>
<item>
    <title>Dabbling in Python 3.0</title>
    <link>http://www.saddi.com/software/news/archives/64-Dabbling-in-Python-3.0.html</link>
            <category>Python</category>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/64-Dabbling-in-Python-3.0.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=64</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=64</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    Well, Python 3.0 was &lt;a href=&quot;http://www.python.org/download/releases/3.0/&quot;&gt;released&lt;/a&gt; a few days ago. I admit, I really haven&#039;t been keeping up much with Python development. Up until yesterday, Python 2.5 was all that I&#039;ve used.&lt;br /&gt;
&lt;br /&gt;
Anyway, I was curious. I was curious about all the backwards-incompatible changes to the language/libraries. I was curious about how WSGI dealt with Python 3.0. With the list of &lt;a href=&quot;http://wsgi.org/wsgi/Amendments_1.0&quot;&gt;proposed WSGI 1.0 amendments&lt;/a&gt; for Python 3.0 (and the Web-SIG posts it referenced), I attempted to port both flup and ajp-wsgi.&lt;br /&gt;
&lt;br /&gt;
It was interesting, at least, to see the issues in two different lights. Though flup and ajp-wsgi do the same thing conceptually, flup is pure-Python and ajp-wsgi is pure-C. The most pain for both, unsurprisingly, came from the new str/bytes distinction. While it was an annoying issue to deal with (and I realize as far as the spec is concerned, all details about it still haven&#039;t been worked out), I do welcome the change.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve published both repositories, for the curious. They work for simple &quot;Hello World&quot; type applications. I kind of doubt that any frameworks have been ported to Python 3.0 yet. I probably won&#039;t touch them again until the spec has been clarified more. (Encoding of environ key/values? file_wrapper support with e.g. text-mode files?)&lt;br /&gt;
&lt;br /&gt;
Interestingly, I didn&#039;t actually test the FastCGI and SCGI adapters with &quot;real&quot; web servers. (I don&#039;t have anything set up.) I used the flup client implementations to cross-test clients/servers on 2.x/3.0. So those flup WSGI servers might actually be broken. &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
The repositories:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://hg.saddi.com/ajp-wsgi-py3.0/&quot;&gt;http://hg.saddi.com/ajp-wsgi-py3.0/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://hg.saddi.com/flup-py3.0/&quot;&gt;http://hg.saddi.com/flup-py3.0/&lt;/a&gt;&lt;/ul&gt; 
    </content:encoded>

    <pubDate>Fri, 05 Dec 2008 16:50:30 -0800</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/64-guid.html</guid>
    
</item>
<item>
    <title>flup 1.0.1 released</title>
    <link>http://www.saddi.com/software/news/archives/63-flup-1.0.1-released.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/63-flup-1.0.1-released.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=63</wfw:comment>

    <slash:comments>8</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=63</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    A very minor update to flup. If you aren&#039;t having any problems now, then there&#039;s probably no need to upgrade.&lt;br /&gt;
&lt;br /&gt;
This update concerns certain web servers &amp;amp; configurations that don&#039;t correctly supply PATH_INFO and/or QUERY_STRING to flup. When missing these environment entries, the flup servers will now attempt to deduce PATH_INFO and/or QUERY_STRING from REQUEST_URI (if it is present) before defaulting to the empty string (as it did before).&lt;br /&gt;
&lt;br /&gt;
Thanks to Richard Davies for the patch. 
    </content:encoded>

    <pubDate>Tue, 22 Jul 2008 11:50:55 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/63-guid.html</guid>
    
</item>
<item>
    <title>Middleware, publisher alternatives</title>
    <link>http://www.saddi.com/software/news/archives/61-Middleware,-publisher-alternatives.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/61-Middleware,-publisher-alternatives.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=61</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=61</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    With the advent of flup 1.0 and the disappearance of the middleware modules (I don&#039;t think anyone really cares about Publisher &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;), I&#039;ve been getting a few queries here and there about alternatives.&lt;br /&gt;
&lt;br /&gt;
Rather than continue to answer people individually, here are some alternatives to flup&#039;s middleware and publisher modules. However, they represent alternatives that I&#039;ve personally chosen. (And considering how far removed I am nowadays from the world of Python web development, take my choices with a grain of salt.) Suggestions for other alternatives (alternative alternatives?!?) are welcome.&lt;br /&gt;
&lt;br /&gt;
For users of flup&#039;s SessionMiddleware, I recommend &lt;a href=&quot;http://beaker.groovie.org/&quot;&gt;Beaker&lt;/a&gt;. Switching over is a simple matter of changing the environ key from &#039;com.saddi.service.session&#039; to &#039;beaker.session&#039; and ensuring that session.save() is called before the WSGI application returns. (After you&#039;ve appropriately swapped out flup&#039;s SessionMiddleware with Beaker&#039;s in the WSGI stack, of course.)&lt;br /&gt;
&lt;br /&gt;
GzipMiddleware and ErrorMiddleware have analogues in &lt;a href=&quot;http://pythonpaste.org/&quot;&gt;Python Paste&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
flup&#039;s Publisher is probably most like &lt;a href=&quot;http://wsgiarea.pocoo.org/colubrid/&quot;&gt;Colubrid&lt;/a&gt;, though I haven&#039;t personally tried it. (Also remember that flup&#039;s Publisher was inspired by mod_python&#039;s &lt;a href=&quot;http://www.modpython.org/live/current/doc-html/hand-pub.html&quot;&gt;Publisher&lt;/a&gt;, which was apparently inspired by Zope&#039;s ZPublisher &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;).&lt;br /&gt;
&lt;br /&gt;
Anyway, I updated the old &lt;a href=&quot;http://hg.saddi.com/flup&quot;&gt;flup 0.5 branch&lt;/a&gt; and uploaded the source distribution to the &lt;a href=&quot;http://pypi.python.org/pypi/flup/0.5&quot;&gt;Cheese Shop&lt;/a&gt;. I really don&#039;t want to maintain two branches, so consider this 0.5 release final. 
    </content:encoded>

    <pubDate>Tue, 25 Sep 2007 17:06:12 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/61-guid.html</guid>
    
</item>
<item>
    <title>flup 1.0 released</title>
    <link>http://www.saddi.com/software/news/archives/58-flup-1.0-released.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/58-flup-1.0-released.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=58</wfw:comment>

    <slash:comments>7</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=58</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    I resolved a few more outstanding issues with flup and decided to make a release. I went ahead and called it 1.0. And as I &lt;a href=&quot;http://www.saddi.com/software/news/archives/45-QUERY_STRING-changes-to-servers,-API-changes-to-GzipMiddleware,-future-changes.html&quot;&gt;previously mentioned&lt;/a&gt;, I went ahead and removed the publisher and middleware modules.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve been following the Subversion repository for flup (which has been quiet due to my switching to Mercurial), there have only been 1 or 2 new fixes.&lt;br /&gt;
&lt;br /&gt;
I also uploaded the tarball and 2.5 egg to the &lt;a href=&quot;http://pypi.python.org/pypi/flup/1.0&quot;&gt;Cheese Shop&lt;/a&gt;. Further updates will also go to the Cheese Shop.&lt;br /&gt;
&lt;br /&gt;
And on the subject of further updates, consider flup to be in maintenance mode - there won&#039;t be any more new development. Bug fixes and bug reports are still welcome, of course. (Though this has been the way I&#039;ve run flup for quite a while now, so I&#039;m just making a formal announcement. &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;)&lt;br /&gt;
&lt;br /&gt;
And as a bit of editorializing, did I ever mention how much I &lt;strong&gt;hate&lt;/strong&gt; FastCGI? &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; Around the time I first released flup, I had transitioned my apps from FastCGI to AJP, and I never missed FastCGI since. But much to my disappointment, the FastCGI module was the most popular... most likely due to ubiquitous &amp;amp; cheap shared hosting services (e.g. Dreamhost).&lt;br /&gt;
&lt;br /&gt;
Oh well, I don&#039;t even use flup myself anymore. I&#039;ve switched to ajp-wsgi... 
    </content:encoded>

    <pubDate>Mon, 10 Sep 2007 16:59:33 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/58-guid.html</guid>
    
</item>
<item>
    <title>QUERY_STRING changes to servers, API changes to GzipMiddleware, future changes</title>
    <link>http://www.saddi.com/software/news/archives/45-QUERY_STRING-changes-to-servers,-API-changes-to-GzipMiddleware,-future-changes.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/45-QUERY_STRING-changes-to-servers,-API-changes-to-GzipMiddleware,-future-changes.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=45</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=45</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    In an effort to quell a warning from &lt;a href=&quot;http://peak.telecommunity.com/wsgiref_docs/module-wsgiref.validate.html&quot;&gt;wsgiref&#039;s validator&lt;/a&gt;, QUERY_STRING will now default to an empty string if it doesn&#039;t exist in the environ. Despite not being required to always be present by the WSGI spec, it looks like the cgi module will assume sys.argv[1] is the query string if QUERY_STRING isn&#039;t present in the environ.&lt;br /&gt;
&lt;br /&gt;
Also, I changed the keyword parameters in GzipMiddleware a bit:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;mimeTypes -&gt; mime_types&lt;/li&gt;&lt;li&gt;compresslevel -&gt; compress_level&lt;/li&gt;&lt;/ul&gt;Lastly, unless I hear from people otherwise, I will be removing &lt;code&gt;flup.publisher&lt;/code&gt; and &lt;code&gt;flup.resolver&lt;/code&gt; from flup.&lt;br /&gt;
&lt;br /&gt;
And as far as &lt;code&gt;flup.middleware&lt;/code&gt; goes, ErrorMiddleware will be disappearing as well. There are better options from &lt;a href=&quot;http://pythonpaste.org/&quot;&gt;Paste&lt;/a&gt;, especially &lt;a href=&quot;http://pythonpaste.org/module-paste.evalexception.html&quot;&gt;&lt;code&gt;paste.evalexception&lt;/code&gt;&lt;/a&gt; for development. GzipMiddleware and SessionMiddleware are now currently looking for a new home, as I would like to remove them from flup eventually too. 
    </content:encoded>

    <pubDate>Tue, 05 Dec 2006 14:15:51 -0800</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/45-guid.html</guid>
    
</item>
<item>
    <title>Added FCGIApp and SCGIApp</title>
    <link>http://www.saddi.com/software/news/archives/42-Added-FCGIApp-and-SCGIApp.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/42-Added-FCGIApp-and-SCGIApp.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=42</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=42</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    I added FCGIApp and SCGIApp to the (new) flup.client package. I wrote FCGIApp &lt;a href=&quot;http://blog.ianbicking.org/2006-wphp.html&quot;&gt;a few months ago&lt;/a&gt; for Ian Bicking&#039;s &lt;a href=&quot;http://pythonpaste.org/wphp/&quot;&gt;WPHP&lt;/a&gt;. While attempting to debug a problem with flup&#039;s fcgi server on Dreamhost (vs. my old fcgi.py module), I thought of an interesting solution.&lt;br /&gt;
&lt;br /&gt;
Since the problem seemed to stem from the app&#039;s long startup time, and since Dreamhost only allows dynamic (i.e. web server-launched) FastCGI apps, why not have the web server-started app be as simple as possible and have it forward requests to a static, manually-launched app server?&lt;br /&gt;
&lt;br /&gt;
In other words:&lt;br /&gt;
&lt;br /&gt;
httpd (mod_fastcgi) -&gt; fcgi.WSGIServer -&gt; FCGIApp -&gt; fcgi.WSGIServer -&gt; app&lt;br /&gt;
&lt;br /&gt;
Yeah, it ends up doing some extra work... which is why I wrote SCGIApp (SCGI is a far simpler protocol):&lt;br /&gt;
&lt;br /&gt;
httpd (mod_fastcgi) -&gt; fcgi.WSGIServer -&gt; SCGIApp -&gt; scgi.WSGIServer -&gt; app&lt;br /&gt;
&lt;br /&gt;
Anyway, it&#039;s a trade off and I really don&#039;t know how significant it is. But I was never really a fan of web server-launched FastCGI apps. Unless you configure mod_fastcgi explicitly, it has a tendency to launch an application multiple times. And if your application isn&#039;t multi-process safe &lt;em&gt;and&lt;/em&gt; aware, it can lead to problems.&lt;br /&gt;
&lt;br /&gt;
Consider these two modules experimental for now. I&#039;m not really sure &lt;em&gt;where&lt;/em&gt; I want them to live. But they&#039;re there for the time being to play around with. 
    </content:encoded>

    <pubDate>Fri, 24 Nov 2006 15:12:21 -0800</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/42-guid.html</guid>
    
</item>
<item>
    <title>flup Trac site available</title>
    <link>http://www.saddi.com/software/news/archives/40-flup-Trac-site-available.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/40-flup-Trac-site-available.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=40</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=40</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    I briefly toyed with &lt;a href=&quot;http://trac.edgewall.org/&quot;&gt;Trac&lt;/a&gt; some time ago. Though I had to patch it to use WSGI, I found it pretty easy to use and maintain. My efforts eventually stalled, however, probably due to the way my public repository was derived from my real repository (i.e. lots of empty changesets).&lt;br /&gt;
&lt;br /&gt;
Anyway, yesterday I updated to Trac 0.10.2 and was pleasantly surprised to find that it supported WSGI and flup&#039;s ajp and scgi servers out-of-the-box. The empty changeset issue is still there (which is my problem to fix). I just might have to split my repository up in the future.&lt;br /&gt;
&lt;br /&gt;
Anyhow, flup has its own Trac site now:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://trac.saddi.com/flup&quot;&gt;http://trac.saddi.com/flup&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The old flup site, &lt;a href=&quot;http://www.saddi.com/software/flup/&quot;&gt;http://www.saddi.com/software/flup/&lt;/a&gt; simply redirects there now. (And will probably do so for the foreseeable future.) Please continue to use this URL when referencing flup.&lt;br /&gt;
&lt;br /&gt;
I locked down all the default pages, but all the flup-related pages (save for the front page) are editable by anyone. So feel free to contribute examples, FAQs, etc. &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Mon, 20 Nov 2006 10:45:54 -0800</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/40-guid.html</guid>
    
</item>
<item>
    <title>EPIPE no longer ignored</title>
    <link>http://www.saddi.com/software/news/archives/34-EPIPE-no-longer-ignored.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/34-EPIPE-no-longer-ignored.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=34</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=34</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    For whatever reason, I had set up the AJP, FastCGI and SCGI servers to ignore EPIPE exceptions. (The exception that&#039;s thrown when writing to a disconnected socket, i.e. a web client that cancels a web page load or a download.) I think I had written the original version of fcgi (which I had written a millennia ago, it feels like), to do this... and since it was the basis for all the other servers... I never really questioned why EPIPE was being ignored. (To save the application from having to handle it?) I guess I just never tried downloading large files and then subsequently cancelling. &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Anyhow, that behavior&#039;s been changed. It&#039;s still being ignored, but at a higher level. What this means is that WSGI applications may possibly see EPIPE socket.error exceptions, especially if they use the WSGI write callable. Also, the servers will stop iterating over the application&#039;s iterator should an EPIPE exception be thrown. (Which seems to be the correct thing to do anyway.)&lt;br /&gt;
&lt;br /&gt;
Thanks to Ivan Sagalaev for bringing the problem to my attention! 
    </content:encoded>

    <pubDate>Sun, 18 Jun 2006 09:10:02 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/34-guid.html</guid>
    
</item>
<item>
    <title>New umask keyword parameter</title>
    <link>http://www.saddi.com/software/news/archives/32-New-umask-keyword-parameter.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/32-New-umask-keyword-parameter.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=32</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=32</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    I added a umask keyword parameter to both fcgi.WSGIServer and fcgi_fork.WSGIServer. If given and binding to a UNIX socket, the umask will be changed right before the socket is bound. Afterwards, the umask will be restored.&lt;br /&gt;
&lt;br /&gt;
This should allow one to change the file permissions of the socket without altering the umask of the entire application. (If you need it to be, say, group-writable or world-writable.)&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 18 May 2006 09:33:57 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/32-guid.html</guid>
    
</item>
<item>
    <title>paste.server_factory support</title>
    <link>http://www.saddi.com/software/news/archives/28-paste.server_factory-support.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/28-paste.server_factory-support.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=28</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=28</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    I&#039;ve added paste.server_factory-compliant factories as well as respective egg entry points for each server within flup. Thanks to Luis Bruno for providing the code.&lt;br /&gt;
&lt;br /&gt;
Additionally, each server now accepts a &#039;debug&#039; bool keyword, which is True by default. It affects the output of the server-level error handler (which really shouldn&#039;t be used, but it&#039;s there if you&#039;re lazy like me &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;).&lt;br /&gt;
&lt;br /&gt;
Though I just noticed that PasteScript already includes server runners for the flup servers... 
    </content:encoded>

    <pubDate>Thu, 23 Feb 2006 16:18:11 -0800</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/28-guid.html</guid>
    
</item>
<item>
    <title>Conditional SIGHUP support</title>
    <link>http://www.saddi.com/software/news/archives/27-Conditional-SIGHUP-support.html</link>
            <category>flup</category>
    
    <comments>http://www.saddi.com/software/news/archives/27-Conditional-SIGHUP-support.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=27</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://www.saddi.com/software/news/rss.php?version=2.0&amp;type=comments&amp;cid=27</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    Apparently, the use of signal.SIGHUP was the only thing preventing the use of the (threaded) servers on Windows. I made a minor change to conditionally install the SIGHUP handler. Thanks to Brad Miller for pointing this out.&lt;br /&gt;
&lt;br /&gt;
Now whether the forked servers work on Windows, I really really doubt it. &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Though I&#039;m curious, how functional is flup under a CygWin-built Python? 
    </content:encoded>

    <pubDate>Thu, 05 Jan 2006 12:57:45 -0800</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/27-guid.html</guid>
    
</item>

</channel>
</rss>