<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>PyYou Weblog</title>
	<atom:link href="http://pyyou.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pyyou.wordpress.com</link>
	<description>Those who do not study Zope, are condemmed to reinvent it</description>
	<lastBuildDate>Mon, 31 Aug 2009 10:21:51 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='pyyou.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/af2a28b78009ae3c9afc4cb204137822?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>PyYou Weblog</title>
		<link>http://pyyou.wordpress.com</link>
	</image>
			<item>
		<title>How to configure an custom vary tag for squid</title>
		<link>http://pyyou.wordpress.com/2009/08/31/how-to-configure-an-custom-vary-tag-for-a-squid/</link>
		<comments>http://pyyou.wordpress.com/2009/08/31/how-to-configure-an-custom-vary-tag-for-a-squid/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 10:21:38 +0000</pubDate>
		<dc:creator>yboussard</dc:creator>
				<category><![CDATA[cache]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[zope]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[plone]]></category>
		<category><![CDATA[vary]]></category>

		<guid isPermaLink="false">http://pyyou.wordpress.com/?p=28</guid>
		<description><![CDATA[You want to make an authenticated cache with apache/squid-varnish/plone and you don&#8217;t
know how do that : it&#8217;s possible with the vary tag.
Vary header tell to proxy cache what&#8217;s headers is variant for an object for a cache.
For example if you tell to the cache that the variant is Cookie , then for a same url [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=28&subd=pyyou&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>You want to make an authenticated cache with <strong>apache/squid-varnish/plone</strong> and you don&#8217;t<br />
know how do that : it&#8217;s possible with the <strong>vary</strong> tag.</p>
<p><strong><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">Vary</a></strong> header tell to proxy cache what&#8217;s headers is variant for an object for a cache.<br />
For example if you tell to the cache that the variant is Cookie , then for a same url with different cookie value the result of the cache is different.<br />
The Server send to the proxy (in the response) which header is considered for vary by sending<strong> Vary: list of request header name</strong></p>
<p>In <strong>Cachefu</strong>, you can configure that by rule with <strong>varyExpression</strong>.</p>
<p>In global configuration of cache fu you can also configure an global vary header. By default this configuration is send with rule.portal_cache_settings.getVaryHeader()</p>
<p>You can activate or desactivate vary with the header_set configuration ( vary field).</p>
<p>Vary headers must be present in the request (not response) of the browser in order to be considered to be variant for the proxy cache. So we are limited with the standard header of the protocol http.</p>
<p>But with cookie and apache (apache is in front of squid) we can elaborate strategy to construct a vary tag more efficient.</p>
<p>The second aspect of the cache work is purge content when the content change.</p>
<p>PURGE of Vary objects is still very poorly supported in squid, and you can only purge one variant at a time and need to get the URL cached again before being able to purge another variant. So how to deal with that also ?</p>
<p>First , how build our vary tag ?</p>
<p>The trick is to construct an custom vary tag with apache.<br />
We can to do this with RewriteRule::</p>
<p><code>RewriteCond %{HTTP_COOKIE} mycookie="([^"]+) [NC]<br />
RewriteRule ^(.*)$ - [E=mycookie:%1]<br />
</code><br />
So in this example mycookie contains the value of cookie_key</p>
<p>You can add a cookie for the language , a cookie for group , a cookie for a permission and so on and then construct your custom vary tag with values of this specifics cookies with <a href="http://httpd.apache.org/docs/2.0/mod/mod_headers.html">mod_headers</a></p>
<p><code>RequestHeader append MyVary %{mycookie}e<br />
</code><br />
And then the value of mycookie is considered to be variant..</p>
<p>If you want have a specific vary tag for anonymous you can test the presence of<br />
__ac cookie and send a custom MyVary in this case</p>
<p><code>RewriteCond %{HTTP_COOKIE} __ac="([^"]+) [NC]<br />
RewriteRule ^(.*)$ - [E=authenticated:1]</code></p>
<p><code>RequestHeader append MyVary %{mycookie}e env=authenticated<br />
RequestHeader append MyVary anonymous env=!authenticated<br />
</code><br />
So now with that you can vary cache as you want. Now how to treat the big deal of purge.</p>
<p>The trick is  have an image (or a ajax request or ..) in content that is<strong> never in cache</strong>. This image is serve by a browser view (in case of zope application) that set a cookie. This cookie value is added to Vary tag. So the Vary tag change if the value of this cookie change and then the content is updated (for all request).</p>
<p>For example we can construct a cookie with the value of the catalog change</p>
<p><code>catalog_count = pcs.getCatalogCount()<br />
context.REQUEST.RESPONSE.appendHeader('Pragma','no-cache')<br />
context.REQUEST.RESPONSE.appendHeader('Cache-control', 'no-cache')<br />
cookie = context.REQUEST.cookies.get('X_CACHE_CATALOG', 0)</code></p>
<p><code>if cookie != str(catalog_count) :<br />
context.REQUEST.RESPONSE.setCookie('X_CACHE_CATALOG',<br />
catalog_count ,<br />
path="/")<br />
return catalog_count</code></p>
<p>And in apache we add<br />
<code>RewriteCond %{HTTP_COOKIE} X_CACHE_CATALOG=([^"]+) [NC]<br />
RewriteRule ^(.*)$ - [E=X_CACHE_CATALOG:%1]<br />
RequestHeader append MyVary %{mycookie}e:%{X_CACHE_CATALOG}e env=authenticated<br />
</code></p>
<p>And when catalog change, the vary also (in the second request) and the cache is updated. You can elaborate other strategies for purging vary object with this technique.</p>
<p>The last point is to combined Etag and Vary Header in response. IE with a Vary header don&#8217;t treat correctly Etag header and If-None-Match is never sending. So in apache remove the tag Vary and then Etag work well for all browser</p>
<p><code>Header unset Vary </code></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pyyou.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pyyou.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pyyou.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pyyou.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pyyou.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pyyou.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pyyou.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pyyou.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pyyou.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pyyou.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=28&subd=pyyou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pyyou.wordpress.com/2009/08/31/how-to-configure-an-custom-vary-tag-for-a-squid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffd48b7e04f53482581ecc5ab0707fdf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yboussard</media:title>
		</media:content>
	</item>
		<item>
		<title>Retrieving UserPrincipalName with NetBiosDomain\NetBiosLogin</title>
		<link>http://pyyou.wordpress.com/2009/06/09/retrieving-userprincipalname-with-netbiosdomainnetbioslogin/</link>
		<comments>http://pyyou.wordpress.com/2009/06/09/retrieving-userprincipalname-with-netbiosdomainnetbioslogin/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 10:03:53 +0000</pubDate>
		<dc:creator>yboussard</dc:creator>
				<category><![CDATA[COM]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[zope]]></category>
		<category><![CDATA[SSO]]></category>
		<category><![CDATA[UserPrincipalName]]></category>

		<guid isPermaLink="false">http://pyyou.wordpress.com/?p=19</guid>
		<description><![CDATA[Sometimes the hard part of a python application is to integrate sso because there is an unknown : what rules is defined to get the user !
In windows, apache mod_sspi or enfold proxy give to us an http header ( name X_REMOTE_USER) to deal with the active directory. This header is like that:
Domain\user
If you have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=19&subd=pyyou&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sometimes the hard part of a python application is to integrate sso because there is an unknown : what rules is defined to get the user !</p>
<p>In <strong>windows</strong>, apache mod_sspi or enfold proxy give to us an http header ( name X_REMOTE_USER) to deal with the active directory. This header is like that:</p>
<p><strong>Domain\user</strong></p>
<p>If you have one domain it&#8217;s pretty simple. Your userid is unique</p>
<p>But in big company there is multiple domain controler. And user is not unique ! So how retrieve an unique user id for active directory and use it in my windows python application !</p>
<p>The response is get UserPrincipalName with COM and <a href="http://www.rlmueller.net/NameTranslateFAQ.htm">NameTranslate</a> interface.</p>
<pre>import win32com.client
d = win32com.client.Dispatch('NameTranslate')
d.Init(3,'')
d.Set(3,'domain\\user')
userPrincipalName = d.Get(9)</pre>
<p>Now if you use COM with zope as me , COM is not thread safe. So init the client at zope starting and lock yours calls to the API</p>
<pre>import win32com.client
import threading
D = win32com.client.Dispatch('NameTranslate')
D.Init(3,'')
COMLOCK = threading.Lock()</pre>
<p>And in a function use  the global D</p>
<pre>def getUserPrincipalName(sso_header):

     try:
            COMLOCK.acquire()
            D.Set(3,sso_header)
            userPrincipalName = D.Get(9)
     finally:
            COMLOCK.release()
     return userPrincipalName</pre>
<p><strong>Youpi , thanks win32com !!</strong></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pyyou.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pyyou.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pyyou.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pyyou.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pyyou.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pyyou.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pyyou.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pyyou.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pyyou.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pyyou.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=19&subd=pyyou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pyyou.wordpress.com/2009/06/09/retrieving-userprincipalname-with-netbiosdomainnetbioslogin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffd48b7e04f53482581ecc5ab0707fdf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yboussard</media:title>
		</media:content>
	</item>
		<item>
		<title>install pymssql and how to deal with DB-Lib error message 20009, severity 9</title>
		<link>http://pyyou.wordpress.com/2009/02/01/install-pymssql-and-how-to-deal-with-db-lib-error-message-20009-severity-9/</link>
		<comments>http://pyyou.wordpress.com/2009/02/01/install-pymssql-and-how-to-deal-with-db-lib-error-message-20009-severity-9/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 11:58:39 +0000</pubDate>
		<dc:creator>yboussard</dc:creator>
				<category><![CDATA[freedts]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[sqlserver]]></category>

		<guid isPermaLink="false">http://pyyou.wordpress.com/?p=13</guid>
		<description><![CDATA[Hello,
In a recent zope project I&#8217;m obliged to use an mssql database. So I test first an installation with a windows server os. Everything is ok when I configure the good port (1433) and open tcpip connection in sql management and stop firewall.
But when I try to connect with pymssql in unix I have some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=13&subd=pyyou&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hello,</p>
<p>In a recent zope project I&#8217;m obliged to use an mssql database. So I test first an installation with a windows server os. Everything is ok when I configure the good port (1433) and open tcpip connection in sql management and stop firewall.</p>
<p>But when I try to connect with pymssql in unix I have some problem.<br />
When I launch a connection to mssql I have this error:</p>
<pre>&gt;&gt;&gt; _mssql.connect("host","user", "password")
Traceback (most recent call last):
File "&lt;console&gt;", line 1, in ?
MssqlDatabaseException: DB-Lib error message 20009, severity 9:
Unable to connect: Adaptive Server is unavailable or does not exist
Net-Lib error during Operation now in progress Error 36 - Operation now in progress</pre>
<p>Yahoo , I&#8217;m very happy.</p>
<p>In google , no good post about this problem, so I&#8217;m very desappointed. I know that pymssql on unix work with freedts which is an implementation of the protocol which use mssql.<br />
When you install freedts you install also some utility. It&#8217;s located in bin. Some of it  named tsql. You can use it to test your connection. As pymssql is an wrapper to freedts (in unix) and if <a href="http://www.freetds.org/userguide/confirminstall.htm#TSQL" target="_blank">tsql</a> don&#8217;t work I suppose pymssql also. So I try with this command and I have exactly the same results :</p>
<pre>mac:bin yboussard$ ./tsql -H myip -p 1433 -U myuser
locale is "fr_FR.UTF-8"
locale charset is "UTF-8"
Password:
Msg 20017, Level 9, State -1, Server OpenClient, Line -1
Unexpected EOF from the server
Msg 20002, Level 9, State -1, Server OpenClient, Line -1
Adaptive Server connection failed
There was a problem connecting to the server</pre>
<p>So I&#8217;m very again very happy and reassure that I&#8217;m in the good way.<br />
In read documentation about freedts and we can debug connection in setting environment variable TDSDUMP=/tmp/freetds.log. So now when I launch an connection I log in freetds.log. I see in this file the tds version used by the connection and I see it was incorrect (tds version is 5) in accordance with that <a href="http://www.freetds.org/userguide/choosingtdsprotocol.htm" target="_self">documentation</a>.<br />
So I use an another environnement variable to fix that :</p>
<p><kbd class="USERINPUT">export TDSVER=7.0</kbd></p>
<p>And miracle , everything work with tsql. So I force version of tds in my ~/.freetds.conf in global section as this</p>
<pre>[global]
tds version = 7.0</pre>
<p>And after that everything is ok in python. Yahoo!!. I hope that ticket will be useful for you.</p>
<p>Regards Youenn.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pyyou.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pyyou.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pyyou.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pyyou.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pyyou.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pyyou.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pyyou.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pyyou.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pyyou.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pyyou.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=13&subd=pyyou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pyyou.wordpress.com/2009/02/01/install-pymssql-and-how-to-deal-with-db-lib-error-message-20009-severity-9/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffd48b7e04f53482581ecc5ab0707fdf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yboussard</media:title>
		</media:content>
	</item>
		<item>
		<title>Test content type for plone</title>
		<link>http://pyyou.wordpress.com/2009/01/14/test-content-type-for-plone/</link>
		<comments>http://pyyou.wordpress.com/2009/01/14/test-content-type-for-plone/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 15:50:34 +0000</pubDate>
		<dc:creator>yboussard</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[zopeskel plone test]]></category>

		<guid isPermaLink="false">http://pyyou.wordpress.com/?p=11</guid>
		<description><![CDATA[Hi,
In test.py generated by zopeSkel there is an mistake if you want to test content type.
zcml.load_config(&#8216;configure.zcml&#8217;,youregg) don&#8217;t initialize your egg as a zope product.  allowedContentTypes() method check if factory method exists and failed for your egg content type because you don&#8217;t have an instance of it in Control_Panel.
I modify today zopeSkel in order to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=11&subd=pyyou&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hi,</p>
<p>In test.py generated by zopeSkel there is an mistake if you want to test content type.</p>
<p>zcml.load_config(&#8216;configure.zcml&#8217;,youregg) don&#8217;t initialize your egg as a zope product.  allowedContentTypes() method check if factory method exists and failed for your egg content type because you don&#8217;t have an instance of it in Control_Panel.</p>
<p>I modify today zopeSkel in order to load egg as product if it is a zope product<br />
So normally no more headache about that now and you can test normally the results of  allowedContentTypes in your tests.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pyyou.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pyyou.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pyyou.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pyyou.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pyyou.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pyyou.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pyyou.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pyyou.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pyyou.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pyyou.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=11&subd=pyyou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pyyou.wordpress.com/2009/01/14/test-content-type-for-plone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffd48b7e04f53482581ecc5ab0707fdf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yboussard</media:title>
		</media:content>
	</item>
		<item>
		<title>iw.recipe.pound is dead, viva plone.recipe.pound</title>
		<link>http://pyyou.wordpress.com/2008/07/08/iwrecipepound-is-dead-viva-plonerecipepound/</link>
		<comments>http://pyyou.wordpress.com/2008/07/08/iwrecipepound-is-dead-viva-plonerecipepound/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 09:36:26 +0000</pubDate>
		<dc:creator>yboussard</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[plone recipe pound]]></category>

		<guid isPermaLink="false">http://pyyou.wordpress.com/?p=8</guid>
		<description><![CDATA[Please notice that iw.recipe.pound was renamed to plone.recipe.pound. So if you have some buildouts with iw.recipe.pound please  their configuration so they use  plone.recipe.pound. iw.recipe.pound is not longer maintained.
New option in 0.5 release : socket path (thanks Mathieu) , fixed some doctests (Cheettah requirement), added a run script (as runzope) in bin directory (thanks [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=8&subd=pyyou&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Please notice that iw.recipe.pound was renamed to plone.recipe.pound. So if you have some buildouts with iw.recipe.pound please  their configuration so they use  plone.recipe.pound. iw.recipe.pound is not longer maintained.</p>
<p>New option in 0.5 release : socket path (thanks Mathieu) , fixed some doctests (Cheettah requirement), added a run script (as runzope) in bin directory (thanks to Rocky)</p>
<p>Regards Youenn.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pyyou.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pyyou.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pyyou.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pyyou.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pyyou.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pyyou.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pyyou.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pyyou.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pyyou.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pyyou.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pyyou.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pyyou.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=8&subd=pyyou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pyyou.wordpress.com/2008/07/08/iwrecipepound-is-dead-viva-plonerecipepound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffd48b7e04f53482581ecc5ab0707fdf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yboussard</media:title>
		</media:content>
	</item>
		<item>
		<title>iw.recipe.pound</title>
		<link>http://pyyou.wordpress.com/2008/06/13/iwrecipepound/</link>
		<comments>http://pyyou.wordpress.com/2008/06/13/iwrecipepound/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 07:56:46 +0000</pubDate>
		<dc:creator>yboussard</dc:creator>
				<category><![CDATA[recipe]]></category>
		<category><![CDATA[zope]]></category>
		<category><![CDATA[pound]]></category>

		<guid isPermaLink="false">http://pyyou.wordpress.com/?p=7</guid>
		<description><![CDATA[Hi !
I&#8217;m pleased to announce a new version of iw.recipe.pound.
The recipe is divided now in two part:

A build part (iw.recipe.pound:build)
A config part (iw.recipe.pound:config)

The build part accept new options as localisation of libssl.
If you have again need of compilation option (to disable some module perhaps) the extra-options keyword is for you .
The config part accept now [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=7&subd=pyyou&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hi !</p>
<p>I&#8217;m pleased to announce a new version of <a href="http://pypi.python.org/pypi/iw.recipe.pound" target="_blank">iw.recipe.pound</a>.<br />
The recipe is divided now in two part:</p>
<ol>
<li>A <strong>build</strong> part (iw.recipe.pound:build)</li>
<li>A <strong>config</strong> part (iw.recipe.pound:config)</li>
</ol>
<p>The <strong>build</strong> part accept new options as localisation of libssl.<br />
If you have again need of compilation option (to disable some module perhaps) the <em><strong>extra-options</strong></em> keyword is for you .</p>
<p>The <strong>config</strong> part accept now all general configuration of pound server (see<a href="http://linux.die.net/man/8/pound" target="_blank"> man pound</a>). You can define TimeOut globally ( a big mistake I know ! ). The recipe give choice also to define Priority and TimeOut by backend server. The bind ip adresss of http server is required now  ( before it&#8217;s always 127.0.0.1 !! so if apache or squid is located in another server the recipe serves to nothing ).</p>
<p>Now the backends configuration looks like that :</p>
<pre style="text-align:left;">one  127.0.0.1:80 127.0.0.1:8080 127.0.0.1:8081,1</pre>
<p>where :<br />
<strong>one</strong> is the name of cluster<br />
<strong> 127.0.0.1</strong> is the bind ip adress<br />
<strong> 80</strong> the port of pound http server</p>
<p>After there is a list of backend of this pound server. Each backend have this form :</p>
<pre>&lt;ip backend&gt;:&lt;port backend&gt;[,&lt;priority backend&gt;,[TimeOut backend]]</pre>
<p>Notice that if you want define timeout you must define also priority</p>
<p>I hope that this recipe give you satisfaction. Don&#8217;t hesitate to submit an issue at <a href="http://trac.ingeniweb.com">http://trac.ingeniweb.com/</a> if you have problem.</p>
<p>Regards Youenn</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pyyou.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pyyou.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pyyou.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pyyou.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pyyou.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pyyou.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pyyou.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pyyou.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pyyou.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pyyou.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pyyou.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pyyou.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=7&subd=pyyou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pyyou.wordpress.com/2008/06/13/iwrecipepound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffd48b7e04f53482581ecc5ab0707fdf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yboussard</media:title>
		</media:content>
	</item>
		<item>
		<title>plone.recipe.apache</title>
		<link>http://pyyou.wordpress.com/2008/05/12/plonerecipeapache/</link>
		<comments>http://pyyou.wordpress.com/2008/05/12/plonerecipeapache/#comments</comments>
		<pubDate>Mon, 12 May 2008 22:04:49 +0000</pubDate>
		<dc:creator>yboussard</dc:creator>
				<category><![CDATA[recipe]]></category>
		<category><![CDATA[zope]]></category>
		<category><![CDATA[parissprint2008]]></category>
		<category><![CDATA[recipe plone apache zope buildout]]></category>

		<guid isPermaLink="false">http://pyyou.wordpress.com/?p=6</guid>
		<description><![CDATA[In this post we describe how to install and configure an apache server in front of zope with buildout.
It&#8217;s very simple. Ok let&#8217;s go
1 &#8211; Create an zope instance with buildout
If you have a paster in your system we create an buildout skeleton with it:
$ paster create -t plone3_buildout
This create an buildout.cfg witch create an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=6&subd=pyyou&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In this post we describe how to install and configure an apache server in front of zope with buildout.<br />
It&#8217;s very simple. Ok let&#8217;s go</p>
<h2>1 &#8211; Create an zope instance with buildout</h2>
<p>If you have a paster in your system we create an buildout skeleton with it:</p>
<pre><strong>$ paster create -t plone3_buildout</strong></pre>
<p>This create an buildout.cfg witch create an zope server (listen in 8080)</p>
<pre><strong>$ python2.4 bootstrap.py
$ bin/buildout</strong></pre>
<p>Create an instance named plone</p>
<pre><strong>$ bin/instance start</strong></pre>
<p>Ok now with your favourite browser you can see in http://localhost:8080/plone<br />
the plone instance..<br />
We can declare a localdns (for test purpose) that says that www.testit.com go to localhost..<br />
So http://www.testit.com:8080/plone works also.</p>
<h2>2 &#8211; Apache serve your plone instance</h2>
<p>It&#8217;s possible now with buildout<br />
We add an apache server to serve our zope in http port<br />
Edit buildout.cfg and put this config in buildout::</p>
<pre>[buildout]
parts =
...
apachebuild
apacheconf
...
[apachebuild]
recipe = plone.recipe.apache:build
url = http://mir2.ovh.net/ftp.apache.org/dist/httpd/httpd-2.2.8.tar.gz

[apacheconf]
recipe = plone.recipe.apache:config
bind = 80
backends =
 www.testit.com:127.0.0.1:8080
zope2_vhm_map =
 www.testit.com:/plone</pre>
<p>You have already an httpd installed in your system . No problem<br />
delete apachebuild conf and add in apacheconf a new directive mainconfig as this</p>
<pre>[apacheconf]
mainconfig = /etc/apache2/apache2.conf
recipe = plone.recipe.apache:config
bind = 80
backends =
 www.testit.com:127.0.0.1:10080
zope2_vhm_map =
 www.testit.com:/plone</pre>
<p>BE CAREFUL : the user that launch buildout must write in mainconfig so give to him the good right !! Also in order to work the current apache server must have rewrite and proxy module allowed.</p>
<p>So now relaunch buildout::</p>
<pre># bin/buildout
Getting distribution for 'plone.recipe.apache'.
Got plone.recipe.apache 0.1.0.
...
apachebuild: Downloading apache tarball.
apachebuild: Compiling Apache
...
apachebuild: Unpacking and configuring
checking for chosen layout... Apache
...
Installing apacheconf.
</pre>
<p>And after, start (or restart) apache server</p>
<pre># sudo bin/apachectl start</pre>
<p>and now::<br />
http://www.testit.com/ go to your plone instance.. Viva buildout !</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pyyou.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pyyou.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pyyou.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pyyou.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pyyou.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pyyou.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pyyou.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pyyou.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pyyou.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pyyou.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pyyou.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pyyou.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=6&subd=pyyou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pyyou.wordpress.com/2008/05/12/plonerecipeapache/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffd48b7e04f53482581ecc5ab0707fdf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yboussard</media:title>
		</media:content>
	</item>
		<item>
		<title>How to install zope.testrecorder with buildout</title>
		<link>http://pyyou.wordpress.com/2008/04/11/how-to-install-zopetestrecorder-with-buildout/</link>
		<comments>http://pyyou.wordpress.com/2008/04/11/how-to-install-zopetestrecorder-with-buildout/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 06:08:10 +0000</pubDate>
		<dc:creator>yboussard</dc:creator>
				<category><![CDATA[doctest]]></category>
		<category><![CDATA[zope]]></category>
		<category><![CDATA[zope test record doctest]]></category>

		<guid isPermaLink="false">http://pyyou.wordpress.com/?p=5</guid>
		<description><![CDATA[Hi,
zope.testrecorder is a tool to record navigation browser for doctest. In this post I explain how install it with  buildout.
In your buildout.cfg :
[buildout]

parts =
  zope2
  fakezope2eggs
  ...

eggs =
  ...
  zope.testrecorder

[fakezope2eggs]
recipe = z3c.recipe.fakezope2eggs
additional-fake-eggs = ZODB3

[instance]
...

eggs =
  ...
  zope.testrecorder

zcml =
  ...
  zope.testrecorder
Relaunch buildout and restart instance and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=5&subd=pyyou&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hi,</p>
<p>zope.testrecorder is a tool to record navigation browser for doctest. In this post I explain how install it with  buildout.</p>
<p>In your buildout.cfg :</p>
<pre>[buildout]

parts =
  zope2
  fakezope2eggs
  ...

eggs =
  ...
  zope.testrecorder

[fakezope2eggs]
recipe = z3c.recipe.fakezope2eggs
additional-fake-eggs = ZODB3

[instance]
...

eggs =
  ...
  zope.testrecorder

zcml =
  ...
  zope.testrecorder</pre>
<p>Relaunch buildout and restart instance and now go to<br />
<strong>http://&lt;zope host&gt;:&lt;zope port&gt;/++resource++recorder/index.html</strong><br />
You are ready to record you&#8217;re doctest.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pyyou.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pyyou.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pyyou.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pyyou.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pyyou.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pyyou.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pyyou.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pyyou.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pyyou.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pyyou.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pyyou.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pyyou.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=5&subd=pyyou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pyyou.wordpress.com/2008/04/11/how-to-install-zopetestrecorder-with-buildout/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffd48b7e04f53482581ecc5ab0707fdf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yboussard</media:title>
		</media:content>
	</item>
		<item>
		<title>Mock For ldap</title>
		<link>http://pyyou.wordpress.com/2008/04/04/mock-for-ldap/</link>
		<comments>http://pyyou.wordpress.com/2008/04/04/mock-for-ldap/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 11:44:03 +0000</pubDate>
		<dc:creator>yboussard</dc:creator>
				<category><![CDATA[doctest]]></category>
		<category><![CDATA[zope]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[mock]]></category>

		<guid isPermaLink="false">http://pyyou.wordpress.com/?p=4</guid>
		<description><![CDATA[Hi !
I work at the present time to an project with a lot data provided by an ldap server. The schema of this ldap is really elaborate . To reproduce it in a real ldap server is very difficult. How can I test my terrific code witch consist on an specific vocabularies and a set [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=4&subd=pyyou&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hi !</p>
<p>I work at the present time to an project with a lot data provided by an ldap server. The schema of this ldap is really elaborate . To reproduce it in a real ldap server is very difficult. How can I test my terrific code witch consist on an specific vocabularies and a set of PAS plugins ?</p>
<p>The response : a mock ldap object that give to my eggs a real API for ldap.</p>
<p>You can found it here : <a href="http://products.ingeniweb.com/catalog/iw.mock.ldap">http://products.ingeniweb.com/catalog/iw.mock.ldap</a></p>
<p>The goal of this egg : testing component witch use ldap server without  ldap. But also provide some good data in order to have some good test. So iw.mock.ldap read an real ldif file and you can search via ldap api (search_s).</p>
<p>It&#8217;s not perfect but for me I found very easy to test ldap component.</p>
<p>So how use it ?</p>
<p>In your buildout</p>
<p><span style="color:#808080;">[buildout]<br />
eggs =<br />
&#8230;<br />
iw.mock.ldap</span></p>
<p><span style="color:#808080;">[zinstance] </span></p>
<p><span style="color:#808080;">eggs =<br />
&#8230;<br />
iw.mock.ldap</span></p>
<p><span style="color:#808080;">zcml =<br />
&#8230;<br />
iw.mock.ldap</span></p>
<p>After in you&#8217;re project where you want have some test you create a structure like that::</p>
<p><span style="color:#808080;">path-to-your-egg/mock<br />
path-to-your-egg/mock/__init__.py<br />
path-to-your-egg/mock/data.ldif</span></p>
<p>In __init__.py you put this boiler code::</p>
<p><span style="color:#808080;">import sys</span></p>
<p><span style="color:#808080;">from zope.interface import implements<br />
from zope.component import adapts<br />
from zope.component import  provideAdapter</span></p>
<p><span style="color:#808080;">from  iw.mock.ldap.interfaces import ILdifFile<br />
from  iw.mock.ldap.interfaces import ILdifReader<br />
import iw.mock</span></p>
<p><span style="color:#808080;">class LdifFile(object):</span></p>
<p><span style="color:#808080;">implements(ILdifFile)<br />
adapts(ILdifReader)</span></p>
<p><span style="color:#808080;">def __init__(self, context):<br />
self.context = context</span></p>
<p><span style="color:#808080;">def open(self):<br />
return file(os.path.join(os.path.dirname(__file__),&#8217;data.ldif&#8217;))</span></p>
<p><span style="color:#808080;">provideAdapter(LdifFile)</span></p>
<p><span style="color:#808080;">sys.path.insert(0, os.path.dirname(iw.mock.__file__))<br />
from iw.mock import ldap<br />
reload(ldap)</span></p>
<p><span style="color:#808080;"><br />
</span> You can also register your adapter in an zcml (example test.zcml)</p>
<p><span style="color:#808080;">&lt;configure xmlns=&#8221;http://namespaces.zope.org/zope&#8221;&gt;<br />
&lt;adapter factory=&#8221;.mock.LdifFile&#8221;/&gt;<br />
&lt;/configure&gt;</span></p>
<p>And now in you&#8217;re test you import path-to-your-egg/mock and all connections and request ldap pass<br />
by iw.mock.ldap and use your data in data.ldif</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pyyou.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pyyou.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pyyou.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pyyou.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pyyou.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pyyou.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pyyou.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pyyou.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pyyou.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pyyou.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pyyou.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pyyou.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=4&subd=pyyou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pyyou.wordpress.com/2008/04/04/mock-for-ldap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffd48b7e04f53482581ecc5ab0707fdf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yboussard</media:title>
		</media:content>
	</item>
		<item>
		<title>About iw.recipe.squid</title>
		<link>http://pyyou.wordpress.com/2008/02/22/bonjour-tout-le-monde/</link>
		<comments>http://pyyou.wordpress.com/2008/02/22/bonjour-tout-le-monde/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 07:22:31 +0000</pubDate>
		<dc:creator>yboussard</dc:creator>
				<category><![CDATA[Non classé]]></category>
		<category><![CDATA[recipe]]></category>
		<category><![CDATA[recipe squid apache zope]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#8217;m pleased to announce a new release of  iw.recipe.squid. It&#8217;s aimed to configure easily an squid proxy server with zope. It&#8217;s does the same things of squid generator in cache fu product which generate some config for squid in order to work with zope. I was really inspired of this. But it work&#8217;s with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=1&subd=pyyou&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m pleased to announce a new release of <a href="http://pypi.python.org/pypi/iw.recipe.squid/0.3" target="_blank"> iw.recipe.squid</a>. It&#8217;s aimed to configure easily an squid proxy server with zope. It&#8217;s does the same things of squid generator in cache fu product which generate some config for squid in order to work with zope. I was really inspired of this. But it work&#8217;s with buildout with some difference. So what&#8217;s else ? How configure squid with zope and apache ? Really simple (I hope)</p>
<h3>1- install a squid and an apache server</h3>
<h3>2- you create an buildout.cfg with some config</h3>
<p>[buildout]<br />
parts = squid</p>
<p>[squid]<br />
recipe=iw.recipe.squid<br />
squid_accelerated_hosts =<br />
www.mysite.com localhost:8080/myplone</p>
<p><b>www.mysite.com</b> is the dns host name of your plone site<br />
<b> myplone</b> is the plone instance name of your plone<br />
<b> localhost</b> is the host name of zope server location<br />
<b> 8080</b> is the port of your zope server</p>
<h3>3- you launch buildout</h3>
<p>&gt; buildout -c buildout.cfg</p>
<p>this create several directory  with some config in their.<br />
in parts/squid/etc you have all config to work with squid<br />
in parts/squid/apache you have all config to work with apache server<br />
in parts/squid/log you have all log file for apache virtual host and squid acces log<br />
in bin you have a squid controler script witch  work with  parts/squid/etc/squid.conf specific config</p>
<h3>5 &#8211; finally</h3>
<p>You must create a cache for squid</p>
<p>&gt; bin/squidctl createswap</p>
<p>And launch your squid</p>
<p>&gt; bin/squidctl start</p>
<p>After make symbolic link in your apache configuration location ie:</p>
<p>ln -s &lt;absolute path to parts/squid/apache/*&gt; &lt;absolute path to apache virtual host&gt;</p>
<p>And now restart apache and you have an apache/squid/zope architecture working (I hope).</p>
<h2>The future</h2>
<p>I&#8217;m planed to give more flexibility to the recipe.</p>
<p>Imagine you have 10 plone site in your zope server and you want to configure their with iw.recipe.squid . You must declare an dns name for all your plone site. Not always easy !!<br />
So the next step is the capibility to iw.recipe.squid to deal with this use case.</p>
<h4>The config MUST change to this way :</h4>
<p>www.mysite.com/ localhost:8080/myplone<br />
www.mysite.com/site2 localhost:8080/myplone2<br />
www.mysite.com/site/myplone localhost:8080/myplone3</p>
<p>so when I take a browser and I type http://www.mysite.com/site2 I go to myplone2 instance without declare a specific dns name for it.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pyyou.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pyyou.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pyyou.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pyyou.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pyyou.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pyyou.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pyyou.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pyyou.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pyyou.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pyyou.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pyyou.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pyyou.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pyyou.wordpress.com&blog=2943558&post=1&subd=pyyou&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pyyou.wordpress.com/2008/02/22/bonjour-tout-le-monde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffd48b7e04f53482581ecc5ab0707fdf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yboussard</media:title>
		</media:content>
	</item>
	</channel>
</rss>