<?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>The electrofriend</title>
	<atom:link href="http://automatthew.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://automatthew.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Tue, 15 Jan 2008 18:22:07 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='automatthew.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/7fb37c542b737dba6405e8355ce08941?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>The electrofriend</title>
		<link>http://automatthew.wordpress.com</link>
	</image>
			<item>
		<title>Hello world!</title>
		<link>http://automatthew.wordpress.com/2008/01/15/hello-world/</link>
		<comments>http://automatthew.wordpress.com/2008/01/15/hello-world/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 18:22:07 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=1&subd=automatthew&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Welcome to <a href="http://wordpress.com/">WordPress.com</a>. This is your first post. Edit or delete it and start blogging!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automatthew.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automatthew.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automatthew.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automatthew.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automatthew.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automatthew.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automatthew.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automatthew.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automatthew.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automatthew.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automatthew.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automatthew.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=1&subd=automatthew&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://automatthew.wordpress.com/2008/01/15/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?s=96&#38;d=identicon" medium="image">
			<media:title type="html">automatthew</media:title>
		</media:content>
	</item>
		<item>
		<title>The planned security model for CouchDB</title>
		<link>http://automatthew.wordpress.com/2008/01/09/the-planned-security-model-for-couchdb/</link>
		<comments>http://automatthew.wordpress.com/2008/01/09/the-planned-security-model-for-couchdb/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 17:27:00 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automatthew.wordpress.com/2008/01/09/the-planned-security-model-for-couchdb/</guid>
		<description><![CDATA[While CouchDB currently has no authentication or authorization facilities, a general outline of the plans exists here:
http://www.couchdbwiki.com/index.php?title=Technical_Overview#Security_and_Validation
It seems databases will have admin accounts. Full stop.  No baked-in facility for user accounts. Administrators have two powers:

manage design documents
create other admin accounts

The Technical Overview doesn&#8217;t say, but I assume admins can also manage all documents.
Regarding non-administrative [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=27&subd=automatthew&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>While CouchDB currently has no authentication or authorization facilities, a general outline of the plans exists here:</p>
<p>http://www.couchdbwiki.com/index.php?title=Technical_Overview#Security_and_Validation</p>
<p>It seems databases will have admin accounts. Full stop.  No baked-in facility for user accounts. Administrators have two powers:</p>
<ol>
<li>manage design documents</li>
<li>create other admin accounts</li>
</ol>
<p>The Technical Overview doesn&#8217;t say, but I assume admins can also manage all documents.</p>
<p>Regarding non-administrative users, as I understand the plan, CouchDB will provide a rudimentary authentication delegator that accepts a login and password.  &#8220;The user credentials are input to a javascript function, and the function returns a list of [reader-names] for the user, or an error if the user credentials are wrong.&#8221;  I read this as meaning that the authenticating/authorizing javascript function is determined by the developer.</p>
<p>Write access, called &#8220;Update Validation&#8221; in the Technical Overview, is also handled dynamically by javascript: &#8220;Both the user&#8217;s credentials and the updated document are given as inputs to the validation formula, and can be used to implement custom security models&#8230;&#8221;  Developers are free to implement custom authorization models, such as &#8220;author only&#8221;, where users must be listed in an author field in the document.</p>
<p>Read access is granted by a simplified <span class="caps">ACL</span> system.  A CouchDB document may have a &#8220;reader list&#8221;, which specifies a list of &#8220;reader-names&#8221;.  These reader-names need not correspond to user login names, so they are effectively the equivalent of groups (i.e. you can give one or more users the same reader-name).  A user&#8217;s possession of a reader-name is determined by the javascript function that authenticates user logins.</p>
<p>Documents without a reader list are world-readable.  Documents protected by reader lists are viewable only by users who possess one of the reader-names on the list.  Read protection on documents applies to view results as well: &#8220;Documents that are not allowed to be read by the user are dynamically filtered out of views, keeping the document row and extracted information invisible to non-readers.&#8221;</p>
<p>The Technical Overview does not address this directly, but the _all_docs view must follow the same rules.  That is, all unprotected documents show up in the results for all users, but protected docs only show up for users possessing the correct reader-names.  The javascript functions that bind it all together will probably need administrator privileges.</p>
<p>Some interesting points:</p>
<ul>
<li>The plans for write access allow developers to write their own authorization schemes, but the planned read access will be hard-coded to use document-based ACLs.</li>
<li>By default, document names (i.e. DocIds) are 128 bit UUIDs generated by the server.  Depending on the algorithm used to generate them, these could be unguessable.</li>
<li>If the _all_docs view was not available, users would not be able to find any documents without knowledge of the (unguessable) DocIds.</li>
<li>The authentication javascript, upon success, is supposed to return a list of reader-names, but I don&#8217;t see that anything would prevent it from returning a list of DocIds.</li>
</ul>
<p>I think we have the germ of a capability system here, even with the inflexible reader access.</p>
<p>Comments?  Scathing refutations?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automatthew.wordpress.com/27/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automatthew.wordpress.com/27/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automatthew.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automatthew.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automatthew.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automatthew.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automatthew.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automatthew.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automatthew.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automatthew.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automatthew.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automatthew.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=27&subd=automatthew&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://automatthew.wordpress.com/2008/01/09/the-planned-security-model-for-couchdb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?s=96&#38;d=identicon" medium="image">
			<media:title type="html">automatthew</media:title>
		</media:content>
	</item>
		<item>
		<title>Amazon SimpleDB and CouchDB compared</title>
		<link>http://automatthew.wordpress.com/2007/12/14/amazon-simpledb-and-couchdb-compared/</link>
		<comments>http://automatthew.wordpress.com/2007/12/14/amazon-simpledb-and-couchdb-compared/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 21:30:00 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[couchdb]]></category>
		<category><![CDATA[simpledb]]></category>

		<guid isPermaLink="false">http://automatthew.wordpress.com/2007/12/14/amazon-simpledb-and-couchdb-compared/</guid>
		<description><![CDATA[Terminology mapping

What you and I (and CouchDB) would call a database, Amazon SimpleDB calls a domain.
CouchDb documents and SimpleDB items will be referred to in this post as records.
The JSON name:value pairs used in CouchDb documents and the attribute-value pairs in SimpleDB items will be called simply attributes.

A brief explanation: The developer documentation for SimpleDB [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=26&subd=automatthew&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h4>Terminology mapping</h4>
<ul>
<li>What you and I (and CouchDB) would call a <strong>database</strong>, Amazon SimpleDB calls a <em>domain</em>.</li>
<li>CouchDb <em>documents</em> and SimpleDB <em>items</em> will be referred to in this post as <strong>records</strong>.</li>
<li>The <span class="caps">JSON</span> name:value pairs used in CouchDb documents and the attribute-value pairs in SimpleDB items will be called simply <strong>attributes</strong>.</li>
</ul>
<p>A brief explanation: The developer documentation for SimpleDB states that attributes may have multiple values, but that attributes <a href="http://docs.amazonwebservices.com/AmazonSimpleDB/2007-11-07/DeveloperGuide">are uniquely identified in an item by their name/value combination.</a>  In the same paragraph, the docs give this as an example of an item’s attributes:</p>
<p><code>{ 'a', '1' }, { 'b', '2'}, { 'b', '3' }</code></p>
<p>By Amazon terminology, the ‘b’ attribute has two values.  I think it clearer to regard this item as having three attributes, two of which have ‘b’ as their key.</p>
<h4>What SimpleDB and CouchDB have in common</h4>
<ul>
<li>Not relational databases</li>
<li>Schemaless</li>
<li>CouchDB is built with Erlang.  SimpleDB may be, as well.</li>
<li>support for data replication (this is a very sloppy generalization)</li>
<li>accessed via <span class="caps">HTTP</span></li>
</ul>
<h4>How SimpleDB and CouchDB Differ</h4>
<h5>SimpleDB:</h5>
<ol>
<li>provides <span class="caps">SOAP</span> and <span class="caps">(what passes at Amazon for) REST</span> interfaces to the <span class="caps">API</span></li>
<li><span class="caps">REST</span> requests all use <span class="caps">HTTP GET</span>, specifying the <span class="caps">API</span> method with a query param</li>
<li>requests specify the database, record, attributes, and modifiers with query params</li>
<li>record creation, updating, and deletion is tomic, at the level of individual attributes</li>
<li>all data is considered to be <span class="caps">UTF</span>-8 strings</li>
<li>automatically indexes data, details unknown</li>
<li>queries
<ul>
<li>limited to 5 seconds running time.  Queries that take longer “will likely” return a time-out error.</li>
<li>defined with <span class="caps">HTTP</span> query parameters</li>
<li>composed of Boolean and set operations with some obvious comparison operators(=, !=, &gt;, &gt;=, etc.)</li>
</ul>
</li>
<li>as all values are <span class="caps">UTF</span>-8 strings, there are no sorting options.</li>
<li>responses are <span class="caps">XML</span></li>
</ol>
<h5>CouchDB:</h5>
<ol>
<li>all <span class="caps">REST</span>, all the time</li>
<li>requests use <span class="caps">HTTP GET</span>, PUT, <span class="caps">POST</span>, and <span class="caps">DELETE</span> with their usual RESTful semantics</li>
<li>requests specify the database and record in the <span class="caps">URL</span>, with query params used for modifiers</li>
<li>record creation, updating, and deletion is atomic</li>
<li>supports all <span class="caps">JSON</span> data types (string, number, object, array, true, false, null)</li>
<li>indexing is under user control, by means of “views”
<ul>
<li>defined with arbitrary Javascript functions</li>
<li>can be stored as documents</li>
<li>can be run ad hoc, as “temporary views” </li>
</ul>
</li>
<li>queries are basically views, with the addition of modifiers (start_key, end_key, count, descending) supplied as <span class="caps">HTTP</span> query parameters</li>
<li>sorting is flexible and arbitrarily complex, as it is based on the <span class="caps">JSON</span> keys defined in the views.  See <a href="http://www.couchdbwiki.com/index.php?title=View_Collation">here</a> for more information</li>
<li>responses are <span class="caps">JSON</span></li>
</ol>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automatthew.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automatthew.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automatthew.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automatthew.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automatthew.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automatthew.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automatthew.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automatthew.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automatthew.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automatthew.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automatthew.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automatthew.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=26&subd=automatthew&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://automatthew.wordpress.com/2007/12/14/amazon-simpledb-and-couchdb-compared/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?s=96&#38;d=identicon" medium="image">
			<media:title type="html">automatthew</media:title>
		</media:content>
	</item>
		<item>
		<title>IRB: What was that method that greps again?</title>
		<link>http://automatthew.wordpress.com/2007/11/03/irb-what-was-that-method-that-greps-again/</link>
		<comments>http://automatthew.wordpress.com/2007/11/03/irb-what-was-that-method-that-greps-again/#comments</comments>
		<pubDate>Sat, 03 Nov 2007 19:32:00 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automatthew.wordpress.com/2007/11/03/irb-what-was-that-method-that-greps-again/</guid>
		<description><![CDATA[Giles Bowkett continually improves his .irbc file, and  I&#8217;ve borrowed a few of those tricks.  His latest is grep_methods,  a helper to search for the methods available on an object.  This is a very useful construct, but, as so often happens, there&#8217;s a better way baked in.

"my_arbitrary_string".methods.grep /ch/
=&#62; ["each_byte", "match", "chomp!", [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=25&subd=automatthew&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://gilesbowkett.blogspot.com/2007/11/irb-what-was-that-method-again.html">Giles Bowkett</a> continually improves his .irbc file, and  I&#8217;ve borrowed a few of those tricks.  His latest is <code>grep_methods</code>,  a helper to search for the methods available on an object.  This is a very useful construct, but, as so often happens, there&#8217;s a better way baked in.</p>
<p><code><br />
"my_arbitrary_string".methods.grep /ch/<br />
=&gt; ["each_byte", "match", "chomp!", "chop", "each_with_index", "chomp", "each_line", "each", "chop!"]<br />
</code></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automatthew.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automatthew.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automatthew.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automatthew.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automatthew.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automatthew.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automatthew.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automatthew.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automatthew.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automatthew.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automatthew.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automatthew.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=25&subd=automatthew&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://automatthew.wordpress.com/2007/11/03/irb-what-was-that-method-that-greps-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?s=96&#38;d=identicon" medium="image">
			<media:title type="html">automatthew</media:title>
		</media:content>
	</item>
		<item>
		<title>Default fonts too small in gitk on OS X when installed with MacPorts</title>
		<link>http://automatthew.wordpress.com/2007/10/16/default-fonts-too-small-in-gitk-on-os-x-when-installed-with-macports/</link>
		<comments>http://automatthew.wordpress.com/2007/10/16/default-fonts-too-small-in-gitk-on-os-x-when-installed-with-macports/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 19:13:00 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[git]]></category>
		<category><![CDATA[os x]]></category>

		<guid isPermaLink="false">http://automatthew.wordpress.com/2007/10/16/default-fonts-too-small-in-gitk-on-os-x-when-installed-with-macports/</guid>
		<description><![CDATA[This is an easy one, addressed obliquely by the blog post that is the number one result in Google.  The blogger also sets his font to Arial, which no one should emulate.
Gitk works pretty much straight out of MacPorts.  Bravo, except for the 9 point fonts.  Really.
Launch X11 and cd to your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=24&subd=automatthew&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This is an easy one, addressed obliquely by the blog post that is the number one result in Google.  The blogger also sets his font to Arial, which no one should emulate.</p>
<p>Gitk works pretty much straight out of MacPorts.  Bravo, except for the 9 point fonts.  Really.</p>
<p>Launch X11 and cd to your git repository in xterm.  Run gitk and marvel at the unreadable text.</p>
<p>Edit the top three lines of ~/.gitk to change the fonts and/or sizes.  Mine looks like this:</p>
<pre><code>
set mainfont {Helvetica 12}
set textfont {Courier 12}
set uifont {Helvetica 12 bold}
set tabstop 8
...
</code></pre>
<p>All this assumes that your X11 profile has a usable $PATH.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automatthew.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automatthew.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automatthew.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automatthew.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automatthew.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automatthew.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automatthew.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automatthew.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automatthew.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automatthew.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automatthew.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automatthew.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=24&subd=automatthew&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://automatthew.wordpress.com/2007/10/16/default-fonts-too-small-in-gitk-on-os-x-when-installed-with-macports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?s=96&#38;d=identicon" medium="image">
			<media:title type="html">automatthew</media:title>
		</media:content>
	</item>
		<item>
		<title>Paging in OpenLDAP, or &quot;What, no LIMIT or OFFSET?&quot;</title>
		<link>http://automatthew.wordpress.com/2007/09/25/paging-in-openldap-or-what-no-limit-or-offset/</link>
		<comments>http://automatthew.wordpress.com/2007/09/25/paging-in-openldap-or-what-no-limit-or-offset/#comments</comments>
		<pubDate>Tue, 25 Sep 2007 22:47:00 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[ldap]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://automatthew.wordpress.com/2007/09/25/paging-in-openldap-or-what-no-limit-or-offset/</guid>
		<description><![CDATA[Disclaimer:  I&#8217;m not an LDAP expert, but I&#8217;ve done a whole mess of reading about OpenLDAP lately.  Let the knowledgeable correct me where I err.
Paging in LDAP is somewhat of a pain, and by &#8220;somewhat&#8221; I mean &#8220;asymptotically approaching totally&#8221;.  In the ldapsearch tool, for example, you have to use a &#8220;search [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=23&subd=automatthew&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Disclaimer:  I&#8217;m not an LDAP expert, but I&#8217;ve done a whole mess of reading about OpenLDAP lately.  Let the knowledgeable correct me where I err.</p>
<p>Paging in LDAP is somewhat of a pain, and by &#8220;somewhat&#8221; I mean &#8220;asymptotically approaching totally&#8221;.  In the ldapsearch tool, for example, you have to use a &#8220;search extension&#8221; argument, as paging is not part of the search filter syntax.  This is as opposed to SQL queries, where you may specify a LIMIT and OFFSET in the WHERE clause.  Thus LDAP clients must implement the pagedResults search control (and the LDAP directory server must support it).</p>
<p>It gets worse.  Check out the way the paging is implemented when following RFC 2696 (http://www.faqs.org/rfcs/rfc2696.html).  You can only specify the size of the result set, not the offset or a page number.  The LDAP server returns a cookie with the search results.  The client uses the cookie in the next pagedResults query, and the server uses the cookie to figure out where to start the next set of results.  LDAP clients must treat the cookie as opaque, i.e. they shouldn&#8217;t know how to do anything other than send the cookie back to the server.</p>
<p>Thus the only way to paginate results on the server side appears to be by looping through all results.  The client must retain a cookie from each query for use in the next.  Hrmmm.  Can you guess who wrote RFC 2696?</p>
<p>At the time of this writing, there are two Ruby libraries for LDAP access, and ActiveLdap can use either as its adapter.  To the extent that Net::LDAP supports the pagedResults control, it is only to prevent ActiveDirectory from choking when a query returns more than 1000 results.  See ./lib/net/ldap.rb:1158 for the code that handles the pagedResult control.</p>
<p>Ruby/LDAP does support pagedResults, which I should have figured out from the line in the TODO file that started the discussion on the mailing list that started my research: &#8220;Add result pagination via LDAP::Controls&#8221;.    So I think adding support for the control to the Ruby/LDAP adapter for ActiveLdap should be practical.</p>
<p>It might be possible to roll your own pagination, in a very ugly way, by calling the ActiveLdap::Base#search method with a block that throws away results before and after the desired page set.  Net::LDAP yields each entry *after* adding it to the result_set array, so you would need to set the entry to nil and compact the result.</p>
<p>Alternatively, perhaps you could override the Net::LDAP search method to yield the entry to the block first, then add it to the result_set only if not nil.</p>
<p>It&#8217;s ugly every way you look.</p>
<p>Here&#8217;s the link that started my digging:<br />
<a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/195249">http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/195249</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automatthew.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automatthew.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automatthew.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automatthew.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automatthew.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automatthew.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automatthew.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automatthew.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automatthew.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automatthew.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automatthew.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automatthew.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=23&subd=automatthew&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://automatthew.wordpress.com/2007/09/25/paging-in-openldap-or-what-no-limit-or-offset/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?s=96&#38;d=identicon" medium="image">
			<media:title type="html">automatthew</media:title>
		</media:content>
	</item>
		<item>
		<title>Lisp tutorials in Practical Common Lisp</title>
		<link>http://automatthew.wordpress.com/2007/09/20/lisp-tutorials-in-practical-common-lisp/</link>
		<comments>http://automatthew.wordpress.com/2007/09/20/lisp-tutorials-in-practical-common-lisp/#comments</comments>
		<pubDate>Thu, 20 Sep 2007 21:16:00 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automatthew.wordpress.com/2007/09/20/lisp-tutorials-in-practical-common-lisp/</guid>
		<description><![CDATA[They&#8217;re excellent.   Peter Seibel&#8217;s book is available free online, as well as in print.  I read enough of the free stuff to realize that I needed to stop and buy the book when I&#8217;m ready to do some projects in CL.
You can read it free here:
Common Lisp tutorial
     [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=22&subd=automatthew&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>They&#8217;re excellent.   Peter Seibel&#8217;s book is available free online, as well as in print.  I read enough of the free stuff to realize that I needed to stop and buy the book when I&#8217;m ready to do some projects in CL.</p>
<p>You can read it free here:<br />
<a href="http://www.gigamonkeys.com/book/">Common Lisp tutorial</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automatthew.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automatthew.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automatthew.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automatthew.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automatthew.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automatthew.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automatthew.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automatthew.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automatthew.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automatthew.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automatthew.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automatthew.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=22&subd=automatthew&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://automatthew.wordpress.com/2007/09/20/lisp-tutorials-in-practical-common-lisp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?s=96&#38;d=identicon" medium="image">
			<media:title type="html">automatthew</media:title>
		</media:content>
	</item>
		<item>
		<title>launchd plist to run a reverse ssh tunnel</title>
		<link>http://automatthew.wordpress.com/2007/09/06/launchd-plist-to-run-a-reverse-ssh-tunnel/</link>
		<comments>http://automatthew.wordpress.com/2007/09/06/launchd-plist-to-run-a-reverse-ssh-tunnel/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 18:43:00 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automatthew.wordpress.com/2007/09/06/launchd-plist-to-run-a-reverse-ssh-tunnel/</guid>
		<description><![CDATA[&#60;?xml version='1.0' encoding='UTF-8'?&#62;
&#60;!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd &#62;
&#60;plist version='1.0'&#62;
&#60;dict&#62;
&#60;key&#62;Label&#60;/key&#62;&#60;string&#62;com.automatthew.ssh_tunnel&#60;/string&#62;
&#60;key&#62;UserName&#60;/key&#62;&#60;string&#62;matthew&#60;/string&#62;
&#60;key&#62;ProgramArguments&#60;/key&#62;
&#60;array&#62;
        &#60;string&#62;/usr/bin/ssh&#60;/string&#62;
        &#60;string&#62;-nNT&#60;/string&#62;
        &#60;string&#62;-R 1389:127.0.0.1:389&#60;/string&#62;
        &#60;string&#62;matthew@slice1.automatthew.com&#60;/string&#62;
&#60;/array&#62;
&#60;key&#62;Debug&#60;/key&#62;&#60;false/&#62;
&#60;key&#62;Disabled&#60;/key&#62;&#60;false/&#62;
&#60;key&#62;OnDemand&#60;/key&#62;&#60;false/&#62;
&#60;key&#62;RunAtLoad&#60;/key&#62;&#60;false/&#62;
&#60;/dict&#62;
&#60;/plist&#62;
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=20&subd=automatthew&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><pre><span class="text text_xml text_xml_plist"><span class="meta meta_tag meta_tag_preprocessor meta_tag_preprocessor_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;?</span><span class="entity entity_name entity_name_tag entity_name_tag_xml">xml</span><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_xml"> version</span>=<span class="string string_quoted string_quoted_single string_quoted_single_xml"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml">'</span>1.0<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml">'</span></span><span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_xml"> encoding</span>=<span class="string string_quoted string_quoted_single string_quoted_single_xml"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml">'</span>UTF-8<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml">'</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">?&gt;</span></span>
<span class="meta meta_tag meta_tag_sgml meta_tag_sgml_doctype meta_tag_sgml_doctype_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;!</span><span class="entity entity_name entity_name_tag entity_name_tag_doctype entity_name_tag_doctype_xml">DOCTYPE</span> plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd <span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
<span class="meta meta_tag meta_tag_plist meta_tag_plist_xml meta_tag_plist_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">plist</span></span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_version entity_other_attribute-name_version_xml entity_other_attribute-name_version_xml_plist">version</span><span class="punctuation punctuation_separator punctuation_separator_key-value punctuation_separator_key-value_xml punctuation_separator_key-value_xml_plist">=</span><span class="string string_quoted string_quoted_single string_quoted_single_xml string_quoted_single_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_xml punctuation_definition_string_begin_xml_plist">'</span>1.0<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_xml punctuation_definition_string_end_xml_plist">'</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
<span class="meta meta_tag meta_tag_dict meta_tag_dict_xml meta_tag_dict_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">dict</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
<span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="constant constant_other constant_other_name constant_other_name_xml constant_other_name_xml_plist">Label</span><span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="string string_quoted string_quoted_other string_quoted_other_xml string_quoted_other_xml_plist">com.automatthew.ssh_tunnel</span><span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
<span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="constant constant_other constant_other_name constant_other_name_xml constant_other_name_xml_plist">UserName</span><span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="string string_quoted string_quoted_other string_quoted_other_xml string_quoted_other_xml_plist">matthew</span><span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
<span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="constant constant_other constant_other_name constant_other_name_xml constant_other_name_xml_plist">ProgramArguments</span><span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
<span class="meta meta_tag meta_tag_array meta_tag_array_xml meta_tag_array_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">array</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
        <span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="string string_quoted string_quoted_other string_quoted_other_xml string_quoted_other_xml_plist">/usr/bin/ssh</span><span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
        <span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="string string_quoted string_quoted_other string_quoted_other_xml string_quoted_other_xml_plist">-nNT</span><span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
        <span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="string string_quoted string_quoted_other string_quoted_other_xml string_quoted_other_xml_plist">-R 1389:127.0.0.1:389</span><span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
        <span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="string string_quoted string_quoted_other string_quoted_other_xml string_quoted_other_xml_plist">matthew@slice1.automatthew.com</span><span class="meta meta_tag meta_tag_string meta_tag_string_xml meta_tag_string_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">string</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
<span class="meta meta_tag meta_tag_array meta_tag_array_xml meta_tag_array_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">array</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
<span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="constant constant_other constant_other_name constant_other_name_xml constant_other_name_xml_plist">Debug</span><span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="meta meta_tag meta_tag_boolean meta_tag_boolean_xml meta_tag_boolean_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">false</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">/&gt;</span></span>
<span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="constant constant_other constant_other_name constant_other_name_xml constant_other_name_xml_plist">Disabled</span><span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="meta meta_tag meta_tag_boolean meta_tag_boolean_xml meta_tag_boolean_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">false</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">/&gt;</span></span>
<span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="constant constant_other constant_other_name constant_other_name_xml constant_other_name_xml_plist">OnDemand</span><span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="meta meta_tag meta_tag_boolean meta_tag_boolean_xml meta_tag_boolean_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">false</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">/&gt;</span></span>
<span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="constant constant_other constant_other_name constant_other_name_xml constant_other_name_xml_plist">RunAtLoad</span><span class="meta meta_tag meta_tag_key meta_tag_key_xml meta_tag_key_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">key</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span><span class="meta meta_tag meta_tag_boolean meta_tag_boolean_xml meta_tag_boolean_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">false</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">/&gt;</span></span>
<span class="meta meta_tag meta_tag_dict meta_tag_dict_xml meta_tag_dict_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">dict</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span>
<span class="meta meta_tag meta_tag_plist meta_tag_plist_xml meta_tag_plist_xml_plist"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_xml entity_name_tag_xml_plist"><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml entity_name_tag_localname_xml_plist">plist</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml punctuation_definition_tag_xml_plist">&gt;</span></span></span></span></pre>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automatthew.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automatthew.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automatthew.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automatthew.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automatthew.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automatthew.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automatthew.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automatthew.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automatthew.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automatthew.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automatthew.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automatthew.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=20&subd=automatthew&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://automatthew.wordpress.com/2007/09/06/launchd-plist-to-run-a-reverse-ssh-tunnel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?s=96&#38;d=identicon" medium="image">
			<media:title type="html">automatthew</media:title>
		</media:content>
	</item>
		<item>
		<title>nginx 0.6.7 purports to fix the install problems</title>
		<link>http://automatthew.wordpress.com/2007/08/15/nginx-067-purports-to-fix-the-install-problems/</link>
		<comments>http://automatthew.wordpress.com/2007/08/15/nginx-067-purports-to-fix-the-install-problems/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 16:13:00 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://automatthew.wordpress.com/2007/08/15/nginx-067-purports-to-fix-the-install-problems/</guid>
		<description><![CDATA[Igor announced 0.6.7 on the mailing list.
Changes with nginx 0.6.7
*) Change: now the paths specified in the "include",
   "auth_basic_user_file", "perl_modules", "ssl_certificate",
   "ssl_certificate_key", and "ssl_client_certificate" directives are
   relative to directory of nginx configuration file nginx.conf, but no
   to nginx prefix directory.

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=19&subd=automatthew&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Igor announced 0.6.7 on the <a href="http://article.gmane.org/gmane.comp.web.nginx.english/1466">mailing list</a>.</p>
<p><code>Changes with nginx 0.6.7<br />
*) Change: now the paths specified in the "include",<br />
   "auth_basic_user_file", "perl_modules", "ssl_certificate",<br />
   "ssl_certificate_key", and "ssl_client_certificate" directives are<br />
   relative to directory of nginx configuration file nginx.conf, but no<br />
   to nginx prefix directory.<br />
</code></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automatthew.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automatthew.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automatthew.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automatthew.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automatthew.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automatthew.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automatthew.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automatthew.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automatthew.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automatthew.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automatthew.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automatthew.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=19&subd=automatthew&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://automatthew.wordpress.com/2007/08/15/nginx-067-purports-to-fix-the-install-problems/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?s=96&#38;d=identicon" medium="image">
			<media:title type="html">automatthew</media:title>
		</media:content>
	</item>
		<item>
		<title>nginx 0.6.6 &#8211; make install fails</title>
		<link>http://automatthew.wordpress.com/2007/08/01/nginx-066-make-install-fails/</link>
		<comments>http://automatthew.wordpress.com/2007/08/01/nginx-066-make-install-fails/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 22:34:00 +0000</pubDate>
		<dc:creator>Matthew</dc:creator>
				<category><![CDATA[capistrano]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://automatthew.wordpress.com/2007/08/01/nginx-066-make-install-fails/</guid>
		<description><![CDATA[I&#8217;m trying to deploy a Rails app to a new server with Deprec and Capistrano Server Extensions (capserverext).  The capistrano task fails when compiling nginx, during the `make install` bit.  The make errors are something like this:
cp: cannot create regular file `/usr/local/nginx/conf/mime.types.default'
No such file or directory
I tried compiling nginx directly, to eliminate deprec [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=18&subd=automatthew&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m trying to deploy a Rails app to a new server with Deprec and Capistrano Server Extensions (capserverext).  The capistrano task fails when compiling nginx, during the `make install` bit.  The make errors are something like this:</p>
<pre><code>cp: cannot create regular file `/usr/local/nginx/conf/mime.types.default'
No such file or directory</code></pre>
<p>I tried compiling nginx directly, to eliminate deprec and capserverext, and the problem persisted.</p>
<p>After much head beating, and with disbelief, I concluded that the problem was a bug in nginx.  Hubristic, I know.  But searching the nginx mailing list immediately turned up a <a href="http://article.gmane.org/gmane.comp.web.nginx.english/1294">message with a patch</a> from the developer.  The &#8216;@@&#8217;s in this patch is munged on the web, so I <a href="http://pastie.caboo.se/84215">pastied i</a>t for your consumption.</p>
<p>The problem stems from the addition of a new configure option, <code>--sysconfdir</code>.  This new option means that capserverext is going to need a change to the compile_nginx task.</p>
<p>Once patched, you can run configure with <code>--sysconfdir=/usr/local/nginx/conf</code> to meet capserverext&#8217;s assumptions.  But having to patch the source breaks the whole install_nginx task anyway.</p>
<p>What you do, though, is bravely pretend that prepare_host is going to work.  When it fails:</p>
<ol>
<li>ssh into the server and cd to /usr/local/src/nginx-0.6.6/</li>
<li>wget http://pastie.caboo.se/84215.txt</li>
<li>patch -p0  &lt; 84215.txt</li>
<li>run the configure script with the arguments from capserverext&#8217;s nginx recipe plus &#8211;sysconfdir=/usr/local/nginx/conf
<pre><code>sudo ./configure --sbin-path=/usr/local/sbin \
  --pid-path=/var/run/nginx.pid \
  --error-log-path=/var/log/nginx/error.log \
  --http-log-path=/var/log/nginx/access.log \
  --with-http_ssl_module \
  --sysconfdir=/usr/local/nginx/conf</code></pre>
</li>
<li>sudo make</li>
<li>sudo make install</li>
<li>rm /usr/local/nginx/conf/nginx.conf</li>
</ol>
<p>Now nginx 0.6.6 should be installed on your server.  Back on your dev machine run the following tasks to get back on track: </p>
<ul>
<li><code>cap install_nginx_start_script</code></li>
<li><code>cap nginx_postgres_rails_setup</code> ( or <code>cap nginx_mysql_rails_setup</code>, if you&#8217;re using mysql)</li>
</ul>
<p>This gets you past the prepare_host task.</p>
<p>Here&#8217;s hoping this post becomes obsolete very soon.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automatthew.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automatthew.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automatthew.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automatthew.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automatthew.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automatthew.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automatthew.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automatthew.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automatthew.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automatthew.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automatthew.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automatthew.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automatthew.wordpress.com&blog=2528654&post=18&subd=automatthew&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://automatthew.wordpress.com/2007/08/01/nginx-066-make-install-fails/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?s=96&#38;d=identicon" medium="image">
			<media:title type="html">automatthew</media:title>
		</media:content>
	</item>
	</channel>
</rss>