<?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 - py-lib</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.0.4 - http://www.s9y.org/</generator>
    <pubDate>Thu, 06 Aug 2009 22:23:16 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 - py-lib - 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>SHA stuff moved to Hg</title>
    <link>http://www.saddi.com/software/news/archives/68-SHA-stuff-moved-to-Hg.html</link>
            <category>General</category>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/68-SHA-stuff-moved-to-Hg.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=68</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=68</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    I didn&#039;t realize this, but all my SHA implementations were still living in my Subversion repository. Well, after some meticulous converting from both my archived CVS &lt;em&gt;and&lt;/em&gt; SVN repositories, I&#039;ve managed to finally move them over to Mercurial.&lt;br /&gt;
&lt;br /&gt;
Anyway, I&#039;m not sure what else in Subversion I&#039;d like to move over. Certainly, there&#039;s nothing left in there that&#039;s all that interesting to the public. So I will take down the public-facing SVN repo... someday.&lt;br /&gt;
&lt;br /&gt;
Searching Google, I see nothing links directly svn.saddi.com. However, there&#039;s quite &lt;em&gt;a lot&lt;/em&gt; of documentation that references flup and fcgi.py within it. Well, if anyone&#039;s been checking out &lt;em&gt;that&lt;/em&gt; flup, it&#039;s 2 years out of date. And the standalone fcgi.py module... I&#039;d rather just forget about that since it&#039;s hopelessly out of sync from the flup version. (It&#039;s basically the flup threaded fcgi server without thread pools.) 
    </content:encoded>

    <pubDate>Mon, 03 Aug 2009 21:21:29 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/68-guid.html</guid>
    
</item>
<item>
    <title>Update to fcgi</title>
    <link>http://www.saddi.com/software/news/archives/24-Update-to-fcgi.html</link>
            <category>flup</category>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/24-Update-to-fcgi.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=24</wfw:comment>

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

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    I just fixed a rather insiduous 2.3-only problem in fcgi: Apparently, the 2.3 socket module does not define the SHUT_* constants for the shutdown() syscall. This caused an attribute error that was silently being ignored. The end result was that the FastCGI socket connection with the server was not being closed - this caused output to hang in certain situations.&lt;br /&gt;
&lt;br /&gt;
I didn&#039;t see the problem because as I said previously, I run 2.4 everywhere - even on my Macs (which normally come with 2.3 out-of-the-box).&lt;br /&gt;
&lt;br /&gt;
Anyhow, big thanks to Eugene Lazutkin for bringing the problem to my attention, helping to isolate the problem (since it was unreproducible on my end, I had a hard time believing it was fcgi&#039;s fault &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;), and finally, providing access to an environment where it was reproducible 100% of the time (which allowed me to figure it out).&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 07 Sep 2005 23:45:02 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/24-guid.html</guid>
    
</item>
<item>
    <title>BaseXMLRPCServer updated</title>
    <link>http://www.saddi.com/software/news/archives/23-BaseXMLRPCServer-updated.html</link>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/23-BaseXMLRPCServer-updated.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=23</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=23</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    Just some superficial rewrites to remove the reliance on decorators (a 2.4 addition). I run 2.4 everywhere I care to run Python... plus the short-hand notation for decorators is so much more convenient. But I guess if such a trivial change would keep compatibility with 2.3, it would benefit more people to make 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;
Once Python 2.5 comes around though... 
    </content:encoded>

    <pubDate>Wed, 31 Aug 2005 11:37:35 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/23-guid.html</guid>
    
</item>
<item>
    <title>Certain modules in py-lib no longer supported</title>
    <link>http://www.saddi.com/software/news/archives/21-Certain-modules-in-py-lib-no-longer-supported.html</link>
            <category>flup</category>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/21-Certain-modules-in-py-lib-no-longer-supported.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=21</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=21</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    Namely, the modules that were repackaged into &lt;a href=&quot;/software/flup/&quot;&gt;flup&lt;/a&gt;. What this means is that the py-lib versions &lt;strong&gt;will not&lt;/strong&gt; be updated anymore. I plan to eventually to delete the affected files from py-lib, but not for some time.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;HOWEVER&lt;/strong&gt;, I will continue to update fcgi.py and session.py in py-lib. I realize the non-packaged versions of these modules are somewhat popular and convenient to have around. (e.g. No need to install the entire flup package if all you&#039;re interested in is the FastCGI WSGI module.)&lt;br /&gt;
&lt;br /&gt;
Regardless, I encourage all new code to use flup instead, and all old code to be ported to flup. (C&#039;mon! After installing flup, it just requires a &lt;strong&gt;single&lt;/strong&gt; change to the import statement. &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>Fri, 19 Aug 2005 10:30:06 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/21-guid.html</guid>
    
</item>
<item>
    <title>Locale fix to session middleware</title>
    <link>http://www.saddi.com/software/news/archives/20-Locale-fix-to-session-middleware.html</link>
            <category>flup</category>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/20-Locale-fix-to-session-middleware.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=20</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=20</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    Session&#039;s generateIdentifier() method was returning non-ASCII strings for international locales. This has been fixed. Thanks to Ksenia Marasanova for the problem report and patch. 
    </content:encoded>

    <pubDate>Sun, 03 Jul 2005 11:24:05 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/20-guid.html</guid>
    
</item>
<item>
    <title>Minor fix to fcgi</title>
    <link>http://www.saddi.com/software/news/archives/18-Minor-fix-to-fcgi.html</link>
            <category>flup</category>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/18-Minor-fix-to-fcgi.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=18</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=18</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    A minor change was made to how fcgi closes its connection with the web server. In certain cases, fcgi may close the connection early, causing the connection to be reset at the web server&#039;s end. This usually results in a shortened HTTP response. Thanks to Dima Barsky for pointing this out and suggesting a fix! 
    </content:encoded>

    <pubDate>Mon, 13 Jun 2005 10:27:50 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/18-guid.html</guid>
    
</item>
<item>
    <title>Fixes to flup.middleware.session</title>
    <link>http://www.saddi.com/software/news/archives/13-Fixes-to-flup.middleware.session.html</link>
            <category>flup</category>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/13-Fixes-to-flup.middleware.session.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=13</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=13</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    MemorySessionStore and ShelveSessionStore were incorrectly allowing the same Session to be checked out multiple times simultaneously. Also, eliminate a possible deadlock in DiskSessionStore. 
    </content:encoded>

    <pubDate>Sun, 15 May 2005 00:35:25 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/13-guid.html</guid>
    
</item>
<item>
    <title>scgi updated</title>
    <link>http://www.saddi.com/software/news/archives/10-scgi-updated.html</link>
            <category>flup</category>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/10-scgi-updated.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=10</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=10</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    Apparently, like AJP/mod_jk, mod_scgi does not pass in sane values for SCRIPT_NAME/PATH_INFO. Accept a scriptName keyword to scgi.WSGIServer and deduce SCRIPT_NAME/PATH_INFO appropriately. 
    </content:encoded>

    <pubDate>Sat, 16 Apr 2005 02:57:20 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/10-guid.html</guid>
    
</item>
<item>
    <title>New package?</title>
    <link>http://www.saddi.com/software/news/archives/1-New-package.html</link>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/1-New-package.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=1</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=1</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    &lt;p&gt;I&#039;ve tenatively repackaged the WSGI servers, middleware, and publisher into the &quot;flup&quot; package (named after the project that spawned all these modules). For now, you can get it from the SVN repo at &amp;lt;http://svn.saddi.com/flup/trunk&amp;gt;.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Pros: allows me to refactor (especially the servers). There are 3 types of servers (fcgi, ajp, scgi) with 2 flavors of each (threaded, forking). Better organized, easier to maintain.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Cons: No more single-module servers or publisher. No more picking and choosing modules. You have to grab the whole package (because of the refactoring). &lt;img src=&quot;http://www.saddi.com/software/news/templates/default/img/emoticons/sad.png&quot; alt=&quot;:-(&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 14 Apr 2005 23:44:01 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/1-guid.html</guid>
    
</item>
<item>
    <title>Added forking FastCGI server</title>
    <link>http://www.saddi.com/software/news/archives/2-Added-forking-FastCGI-server.html</link>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/2-Added-forking-FastCGI-server.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=2</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=2</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    Added fcgi_fork.py (also dependent on prefork.py), a forking version of the fcgi module. 
    </content:encoded>

    <pubDate>Wed, 13 Apr 2005 17:12:33 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/2-guid.html</guid>
    
</item>
<item>
    <title>Added scgi module</title>
    <link>http://www.saddi.com/software/news/archives/3-Added-scgi-module.html</link>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/3-Added-scgi-module.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=3</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=3</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    Added scgi, a &lt;em&gt;threaded&lt;/em&gt; SCGI/WSGI module. 
    </content:encoded>

    <pubDate>Mon, 11 Apr 2005 01:24:45 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/3-guid.html</guid>
    
</item>
<item>
    <title>ErrorEmailMiddleware renamed, Publisher updates</title>
    <link>http://www.saddi.com/software/news/archives/4-ErrorEmailMiddleware-renamed,-Publisher-updates.html</link>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/4-ErrorEmailMiddleware-renamed,-Publisher-updates.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=4</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=4</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    ErrorEmailMiddleware was renamed to ErrorMiddleware. It seemed more appropriate since I added a &quot;debug&quot; flag that allows the middleware component to be used during development. (I end up creating a similar component during development... why continuously re-invent the wheel?) Added support for &quot;internal&quot; redirects in Publisher. The Resolver interface has changed slightly as a result. 
    </content:encoded>

    <pubDate>Sat, 09 Apr 2005 16:07:16 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/4-guid.html</guid>
    
</item>
<item>
    <title>Misc. updates</title>
    <link>http://www.saddi.com/software/news/archives/5-Misc.-updates.html</link>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/5-Misc.-updates.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=5</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=5</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    The Resolvers in Publisher have been updated to ignore URL path parameters. Added JSessionService, a subclass of session&#039;s SessionService class, that supports AJP&#039;s sticky-session feature. 
    </content:encoded>

    <pubDate>Thu, 07 Apr 2005 00:48:22 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/5-guid.html</guid>
    
</item>
<item>
    <title>Minor change to fcgi behavior</title>
    <link>http://www.saddi.com/software/news/archives/6-Minor-change-to-fcgi-behavior.html</link>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/6-Minor-change-to-fcgi-behavior.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=6</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=6</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    The environment variable used to force CGI behavior has been renamed to FCGI_FORCE_CGI (previously MAC_OS_X_FORCE_CGI). 
    </content:encoded>

    <pubDate>Mon, 04 Apr 2005 21:02:09 -0700</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/6-guid.html</guid>
    
</item>
<item>
    <title>ErrorEmailMiddleware added</title>
    <link>http://www.saddi.com/software/news/archives/7-ErrorEmailMiddleware-added.html</link>
            <category>py-lib</category>
    
    <comments>http://www.saddi.com/software/news/archives/7-ErrorEmailMiddleware-added.html#comments</comments>
    <wfw:comment>http://www.saddi.com/software/news/wfwcomment.php?cid=7</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=7</wfw:commentRss>
    

    <author>nospam@example.com (Allan Saddi)</author>
    <content:encoded>
    Added ErrorEmailMiddleware, a WSGI middleware component that catches any unhandled exceptions from the application. When an exception is caught, a static error page is displayed to the user and details about the exception are emailed to an administrator. 
    </content:encoded>

    <pubDate>Sat, 02 Apr 2005 15:29:34 -0800</pubDate>
    <guid isPermaLink="false">http://www.saddi.com/software/news/archives/7-guid.html</guid>
    
</item>

</channel>
</rss>