<?xml version="1.0" encoding="iso-8859-1"?><!-- generator="b2evolution/2.4.1" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>The Hand of FuManChu - Latest comments on Eat less, exercise more</title>
		<link>http://www.aminus.org/blogs/index.php?blog=2&#38;disp=comments</link>
		<description></description>
		<language>en-US</language>
		<docs>http://backend.userland.com/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=2.4.1"/>
		<ttl>60</ttl>
				<item>
			<title>In response to: Eat less, exercise more</title>
			<pubDate>Sat, 08 Oct 2005 19:06:54 +0000</pubDate>
			<dc:creator>fumanchu [Member]</dc:creator>
			<guid isPermaLink="false">c6033@http://www.aminus.org/blogs/</guid>
			<description>&lt;p&gt;&quot;Could you outline for someone familiar with Quixote what the difference is [in architectural style between CherryPy and Quixote].&quot;&lt;br /&gt;
&lt;br /&gt;
Sure. Here are some of them that I see:&lt;br /&gt;
&lt;br /&gt;
1. Quixote requires a separate Publisher object, to which you pass your handler Root. CherryPy asks you to attach handlers to the cherrypy.root object.&lt;br /&gt;
2. Quixote is single-threaded by default. CherryPy is multi-threaded by default (and uses WSGI by default, to boot).&lt;br /&gt;
3. Quixote expects you to subclass a core class as your Root (is it required? you at least need &lt;em&gt;q_traverse, I think). CherryPy expects the opposite (although it's permitted--see Subway's controller.Controller for example).&lt;br /&gt;
4. Quixote passes a request object to page handlers; if you want CGI params, you call request.get_field(name). CherryPy passes CGI params as **kwargs to page handlers; if you want other request data, you use cherrypy.request.xxxx.&lt;br /&gt;
5. Quixote has a &quot;get&lt;/em&gt;&quot; fetish IMO--get_user, get_environ, get_field... CherryPy tends to use &quot;var = object.data&quot; where Quixote users write &quot;var = object.get_data()&quot;.&lt;br /&gt;
6. Quixote includes PTL. CherryPy is templating-agnostic.&lt;br /&gt;
7. Quixote mixes encoding, gzipping, the Expires header, javscript-inside-forms (!) and many other optional features into the core. CherryPy shoves those things into filters in its standard library.&lt;br /&gt;
8. CherryPy allows streaming output to any HTTP server. Quixote only provides it to medusa and twisted servers by default.&lt;br /&gt;
9. CherryPy has a comprehensive test suite. If Quixote has one, they've decided not to ship it with the distro.&lt;br /&gt;
10. Quixote's package architecture seems to be based on module/subpackage size. That is, if a feature has enough lines of code, it will get its own module, or subfolder. CherryPy has a separate /lib folder for app-developer imports (see http://www.cherrypy.org/wiki/PackageStrategy).&lt;br /&gt;
&lt;br /&gt;
I'm sure there are others, and there are probably some errors in my understanding of Quixote. But those are some differences I see at the moment.&lt;/p&gt;
</description>
			<content:encoded><![CDATA[<p>"Could you outline for someone familiar with Quixote what the difference is [in architectural style between CherryPy and Quixote]."<br />
<br />
Sure. Here are some of them that I see:<br />
<br />
1. Quixote requires a separate Publisher object, to which you pass your handler Root. CherryPy asks you to attach handlers to the cherrypy.root object.<br />
2. Quixote is single-threaded by default. CherryPy is multi-threaded by default (and uses WSGI by default, to boot).<br />
3. Quixote expects you to subclass a core class as your Root (is it required? you at least need <em>q_traverse, I think). CherryPy expects the opposite (although it's permitted--see Subway's controller.Controller for example).<br />
4. Quixote passes a request object to page handlers; if you want CGI params, you call request.get_field(name). CherryPy passes CGI params as **kwargs to page handlers; if you want other request data, you use cherrypy.request.xxxx.<br />
5. Quixote has a "get</em>" fetish IMO--get_user, get_environ, get_field... CherryPy tends to use "var = object.data" where Quixote users write "var = object.get_data()".<br />
6. Quixote includes PTL. CherryPy is templating-agnostic.<br />
7. Quixote mixes encoding, gzipping, the Expires header, javscript-inside-forms (!) and many other optional features into the core. CherryPy shoves those things into filters in its standard library.<br />
8. CherryPy allows streaming output to any HTTP server. Quixote only provides it to medusa and twisted servers by default.<br />
9. CherryPy has a comprehensive test suite. If Quixote has one, they've decided not to ship it with the distro.<br />
10. Quixote's package architecture seems to be based on module/subpackage size. That is, if a feature has enough lines of code, it will get its own module, or subfolder. CherryPy has a separate /lib folder for app-developer imports (see http://www.cherrypy.org/wiki/PackageStrategy).<br />
<br />
I'm sure there are others, and there are probably some errors in my understanding of Quixote. But those are some differences I see at the moment.</p>
]]></content:encoded>
			<link>http://www.aminus.org/blogs/index.php/2005/10/06/eat_less_exercise_more?blog=2#c6033</link>
		</item>
				<item>
			<title>In response to: Eat less, exercise more</title>
			<pubDate>Fri, 07 Oct 2005 13:11:05 +0000</pubDate>
			<dc:creator>Hamish Lawson [Visitor]</dc:creator>
			<guid isPermaLink="false">c6025@http://www.aminus.org/blogs/</guid>
			<description>&lt;p&gt;&quot;There's a decisive difference in architectural style between CherryPy and Quixote.&quot;&lt;br /&gt;
&lt;br /&gt;
Could you outline for someone familiar with Quixote what the difference is.&lt;/p&gt;
</description>
			<content:encoded><![CDATA[<p>"There's a decisive difference in architectural style between CherryPy and Quixote."<br />
<br />
Could you outline for someone familiar with Quixote what the difference is.</p>
]]></content:encoded>
			<link>http://www.aminus.org/blogs/index.php/2005/10/06/eat_less_exercise_more?blog=2#c6025</link>
		</item>
				<item>
			<title>In response to: Eat less, exercise more</title>
			<pubDate>Fri, 07 Oct 2005 01:39:33 +0000</pubDate>
			<dc:creator>Ben Bangert [Visitor]</dc:creator>
			<guid isPermaLink="false">c6023@http://www.aminus.org/blogs/</guid>
			<description>&lt;p&gt;By the way, this is what that code fragment should've looked like:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
       &quot;live&quot;, :action =&gt; &quot;status&quot; %&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
</description>
			<content:encoded><![CDATA[<p>By the way, this is what that code fragment should've looked like:<br />
<code><br />
       "live", :action => "status" %><br />
</code></p>
]]></content:encoded>
			<link>http://www.aminus.org/blogs/index.php/2005/10/06/eat_less_exercise_more?blog=2#c6023</link>
		</item>
				<item>
			<title>In response to: Eat less, exercise more</title>
			<pubDate>Fri, 07 Oct 2005 01:38:48 +0000</pubDate>
			<dc:creator>Ben Bangert [Visitor]</dc:creator>
			<guid isPermaLink="false">c6022@http://www.aminus.org/blogs/</guid>
			<description>&lt;p&gt;Having concise, easily understood parts make up the whole is something that appeals greatly to me. I've been working on my own little &quot;mega&quot; framework or whatever the word is for them, and the thing that stuck me is that you do make some gains by having some of the other parts included.&lt;br /&gt;
&lt;br /&gt;
I was originally looking to see if I could use CherryPy with Myghty as the template language, but some of the abilities I gained when using Myghty for the controller aspect as well couldn't be attained (AFAIK) without a more tightly knit connection. Take this somewhat common thing thats done in Rails:&lt;br /&gt;
&lt;br /&gt;
       &quot;live&quot;, :action =&gt; &quot;status&quot; %&gt;&lt;br /&gt;
&lt;br /&gt;
We're sticking the full HTML output of what is essentially another request, and putting it into the current page. I can do this if I use Myghty for both Controller and View since Myghty treats Controller actions/methods as components that can be included.&lt;br /&gt;
&lt;br /&gt;
No clue how this would be possible using Cheetah, or Kid, or something where the template language doesn't know about the Controller that called it. So far in my Rails experience, Active Record is very decoupled from the rest of Rails. I've actually used Active Record by itself, its quite easy (Though I prefer SQLObject). However, the Controller/View code in Rails is tied much closer.&lt;br /&gt;
&lt;br /&gt;
Definite advantages and drawbacks to both approaches.&lt;/p&gt;
</description>
			<content:encoded><![CDATA[<p>Having concise, easily understood parts make up the whole is something that appeals greatly to me. I've been working on my own little "mega" framework or whatever the word is for them, and the thing that stuck me is that you do make some gains by having some of the other parts included.<br />
<br />
I was originally looking to see if I could use CherryPy with Myghty as the template language, but some of the abilities I gained when using Myghty for the controller aspect as well couldn't be attained (AFAIK) without a more tightly knit connection. Take this somewhat common thing thats done in Rails:<br />
<br />
       "live", :action => "status" %><br />
<br />
We're sticking the full HTML output of what is essentially another request, and putting it into the current page. I can do this if I use Myghty for both Controller and View since Myghty treats Controller actions/methods as components that can be included.<br />
<br />
No clue how this would be possible using Cheetah, or Kid, or something where the template language doesn't know about the Controller that called it. So far in my Rails experience, Active Record is very decoupled from the rest of Rails. I've actually used Active Record by itself, its quite easy (Though I prefer SQLObject). However, the Controller/View code in Rails is tied much closer.<br />
<br />
Definite advantages and drawbacks to both approaches.</p>
]]></content:encoded>
			<link>http://www.aminus.org/blogs/index.php/2005/10/06/eat_less_exercise_more?blog=2#c6022</link>
		</item>
				<item>
			<title>In response to: Eat less, exercise more</title>
			<pubDate>Fri, 07 Oct 2005 00:09:26 +0000</pubDate>
			<dc:creator>Dave Warnock [Visitor]</dc:creator>
			<guid isPermaLink="false">c6021@http://www.aminus.org/blogs/</guid>
			<description>&lt;p&gt;I agree that CherryPy also needs to stay thin. The things I was talking about were to make sure that TurboGears does not do internally things that the CherryPy team would want to be part of CherryPy. For example at the moment there is &lt;br /&gt;
&lt;br /&gt;
http://www.cherrypy.org/ticket/145 &quot;Running multiple apps in one process&quot;&lt;br /&gt;
&lt;br /&gt;
which is something coming from Paste and TurboGears but seems like it should be part of CherryPy for it do it's own purpose properly. We don't want to make it harder to stay up-to-date with CherryPy by putting too much in TurboGear, but equally we don't want to add to CherryPy stuff that is TurboGear or Subway specific. &lt;br /&gt;
&lt;br /&gt;
Thats a balance for us all to live with in all these projects, it's what keeps it fun ;-)&lt;br /&gt;
&lt;br /&gt;
Dave&lt;br /&gt;&lt;/p&gt;
</description>
			<content:encoded><![CDATA[<p>I agree that CherryPy also needs to stay thin. The things I was talking about were to make sure that TurboGears does not do internally things that the CherryPy team would want to be part of CherryPy. For example at the moment there is <br />
<br />
http://www.cherrypy.org/ticket/145 "Running multiple apps in one process"<br />
<br />
which is something coming from Paste and TurboGears but seems like it should be part of CherryPy for it do it's own purpose properly. We don't want to make it harder to stay up-to-date with CherryPy by putting too much in TurboGear, but equally we don't want to add to CherryPy stuff that is TurboGear or Subway specific. <br />
<br />
Thats a balance for us all to live with in all these projects, it's what keeps it fun ;-)<br />
<br />
Dave<br /></p>
]]></content:encoded>
			<link>http://www.aminus.org/blogs/index.php/2005/10/06/eat_less_exercise_more?blog=2#c6021</link>
		</item>
			</channel>
</rss>
