<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: 10 Reasons why the new TurboGears 2 alpha is worth a look.</title>
	<atom:link href="http://compoundthinking.com/blog/index.php/2008/07/31/10-reasons-why-the-new-turbogears-2-alpha-is-worth-a-look/feed/" rel="self" type="application/rss+xml" />
	<link>http://compoundthinking.com/blog/index.php/2008/07/31/10-reasons-why-the-new-turbogears-2-alpha-is-worth-a-look/</link>
	<description>Thinking about programming in new ways</description>
	<lastBuildDate>Tue, 15 Mar 2011 02:30:01 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Aigars Mahinovs</title>
		<link>http://compoundthinking.com/blog/index.php/2008/07/31/10-reasons-why-the-new-turbogears-2-alpha-is-worth-a-look/#comment-300603</link>
		<dc:creator>Aigars Mahinovs</dc:creator>
		<pubDate>Tue, 30 Dec 2008 09:56:13 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=353#comment-300603</guid>
		<description>As a new developer coming in and writing a new website in TG2 I don&#039;t think I now how to use any of the new features you list there. Documentation for each of those with clear and useful example and then pointers on where to find more information would be very, very useful.

Taking just the current documentation TG2 has less features for a new developer than TG1 - there is no information how to get user information from the repoze thingies anywhere in the docs, for example.</description>
		<content:encoded><![CDATA[<p>As a new developer coming in and writing a new website in TG2 I don&#8217;t think I now how to use any of the new features you list there. Documentation for each of those with clear and useful example and then pointers on where to find more information would be very, very useful.</p>
<p>Taking just the current documentation TG2 has less features for a new developer than TG1 &#8211; there is no information how to get user information from the repoze thingies anywhere in the docs, for example.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Ramm</title>
		<link>http://compoundthinking.com/blog/index.php/2008/07/31/10-reasons-why-the-new-turbogears-2-alpha-is-worth-a-look/#comment-219416</link>
		<dc:creator>Mark Ramm</dc:creator>
		<pubDate>Tue, 05 Aug 2008 15:43:30 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=353#comment-219416</guid>
		<description>@ken:  Well, the main point alberto is making is that you can use a TurboGears app with use_wsgi_app in tg2 because there&#039;s no conflicts with the config, the globals, or anything else that tg2 requires to run.   While with 1.5 you can&#039;t just do that, because you&#039;d get conflicting globals, and other strangeness.   

Perhaps this is improved in newer versions of cp3, but it used to be running one cp3 app inside another was not a supported configuration.</description>
		<content:encoded><![CDATA[<p>@ken:  Well, the main point alberto is making is that you can use a TurboGears app with use_wsgi_app in tg2 because there&#8217;s no conflicts with the config, the globals, or anything else that tg2 requires to run.   While with 1.5 you can&#8217;t just do that, because you&#8217;d get conflicting globals, and other strangeness.   </p>
<p>Perhaps this is improved in newer versions of cp3, but it used to be running one cp3 app inside another was not a supported configuration.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ken Kuhlman</title>
		<link>http://compoundthinking.com/blog/index.php/2008/07/31/10-reasons-why-the-new-turbogears-2-alpha-is-worth-a-look/#comment-219040</link>
		<dc:creator>Ken Kuhlman</dc:creator>
		<pubDate>Tue, 05 Aug 2008 02:10:41 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=353#comment-219040</guid>
		<description>@Mark:  Thanks for the additional context &amp; the constructive criticism of 1.0.

@Alberto:  Thanks, I&#039;ll be on the lookout for flying beasties.  You&#039;re the only person I&#039;ve seen defend Pylon&#039;s StackedObjectProxies [1] without raising hand-waving to an Olympic sport, which is appreciated.

I&#039;m still having a hard time imagining a case where a threadlocal needs to be modified without being observable downstream, however.  Also, even if I stretch my brain to include that need, it seems that there should be a way around it by mangling environ keys.  While not exactly pretty, that would at least put the complexity where it belongs -- close to the complex app, not left out in the open for everyone to suffer over.  

So, got a testcase or small app that I can wrap my mind around?


[1] http://groups.google.com/group/pylons-discuss/browse_thread/thread/12d94d885c476931/</description>
		<content:encoded><![CDATA[<p>@Mark:  Thanks for the additional context &amp; the constructive criticism of 1.0.</p>
<p>@Alberto:  Thanks, I&#8217;ll be on the lookout for flying beasties.  You&#8217;re the only person I&#8217;ve seen defend Pylon&#8217;s StackedObjectProxies [1] without raising hand-waving to an Olympic sport, which is appreciated.</p>
<p>I&#8217;m still having a hard time imagining a case where a threadlocal needs to be modified without being observable downstream, however.  Also, even if I stretch my brain to include that need, it seems that there should be a way around it by mangling environ keys.  While not exactly pretty, that would at least put the complexity where it belongs &#8212; close to the complex app, not left out in the open for everyone to suffer over.  </p>
<p>So, got a testcase or small app that I can wrap my mind around?</p>
<p>[1] <a href="http://groups.google.com/group/pylons-discuss/browse_thread/thread/12d94d885c476931/" rel="nofollow">http://groups.google.com/group/pylons-discuss/browse_thread/thread/12d94d885c476931/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noah Gift</title>
		<link>http://compoundthinking.com/blog/index.php/2008/07/31/10-reasons-why-the-new-turbogears-2-alpha-is-worth-a-look/#comment-217371</link>
		<dc:creator>Noah Gift</dc:creator>
		<pubDate>Sat, 02 Aug 2008 18:50:10 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=353#comment-217371</guid>
		<description>&quot;and we’re working on trying to make TurboGears 2 better documented than any other framework.&quot;

I love the sound of this.  There is nothing wrong with healthy competition.  This is a great way to compete with other frameworks, and do something meaningful at the same time....write the best docs!  I look forward to seeing the results.  Does this mean a TG2 book is in the works?</description>
		<content:encoded><![CDATA[<p>&#8220;and we’re working on trying to make TurboGears 2 better documented than any other framework.&#8221;</p>
<p>I love the sound of this.  There is nothing wrong with healthy competition.  This is a great way to compete with other frameworks, and do something meaningful at the same time&#8230;.write the best docs!  I look forward to seeing the results.  Does this mean a TG2 book is in the works?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alberto</title>
		<link>http://compoundthinking.com/blog/index.php/2008/07/31/10-reasons-why-the-new-turbogears-2-alpha-is-worth-a-look/#comment-216580</link>
		<dc:creator>Alberto</dc:creator>
		<pubDate>Fri, 01 Aug 2008 10:45:13 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=353#comment-216580</guid>
		<description>@Ken:

&gt; I assume your talking about use_wsgi_app() here. I’m working on
&gt; backporting this to 1.5. Right now my implementation is a bit too &gt; clever, but I should get that worked out soon. In the meantime, 
&gt; it’s not too big of a deal to just set it up via configuration.

Beware of the dragons around here... Unfortunately CP3&#039;s threadlocals aren&#039;t stackable like Pylons&#039; so, although TG1.5 dispatching to a WSGI app will work most of the time, it won&#039;t work if the other app is a TG1.5 or CP3 app because the threadlocals will be overwritten.

@Mark:

Congrats on the new release! I can&#039;t wait until we have a less scary beta I can point some people who&#039;ve been asking at python-es for a python web-framework to dive into webdev.</description>
		<content:encoded><![CDATA[<p>@Ken:</p>
<p>&gt; I assume your talking about use_wsgi_app() here. I’m working on<br />
&gt; backporting this to 1.5. Right now my implementation is a bit too &gt; clever, but I should get that worked out soon. In the meantime,<br />
&gt; it’s not too big of a deal to just set it up via configuration.</p>
<p>Beware of the dragons around here&#8230; Unfortunately CP3&#8242;s threadlocals aren&#8217;t stackable like Pylons&#8217; so, although TG1.5 dispatching to a WSGI app will work most of the time, it won&#8217;t work if the other app is a TG1.5 or CP3 app because the threadlocals will be overwritten.</p>
<p>@Mark:</p>
<p>Congrats on the new release! I can&#8217;t wait until we have a less scary beta I can point some people who&#8217;ve been asking at python-es for a python web-framework to dive into webdev.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Ramm</title>
		<link>http://compoundthinking.com/blog/index.php/2008/07/31/10-reasons-why-the-new-turbogears-2-alpha-is-worth-a-look/#comment-216181</link>
		<dc:creator>Mark Ramm</dc:creator>
		<pubDate>Thu, 31 Jul 2008 18:06:32 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=353#comment-216181</guid>
		<description>Thanks Ken, 

I don&#039;t want to imply that TG1 is not developing quickly, and I&#039;m actually pretty hopeful that almost all of these things can be back-ported to 1.5 or 1.6 so that the differences between 1.5 and 2.0 can continue to get smaller.   

Mainly I have had people asking why TurboGears 2 exists when Django is moving so quickly, and this was a list of things that I like about TG2 that are useful and were not easy enough in 1.0  -- but which may very well be in later 1.x releases.

A couple of other things:  

* We aren&#039;t using evalexception we&#039;re using weberror, which is &quot;just&quot; a newer verion of the same thing, and that could be used in 1.5 easily enough. 

* Webhelpers wouldn&#039;t be too hard to use in 1.5 if we wanted too. 

* 1.5 can pretty easily use beaker for intermediary data caching, and support the same API as tg2. 

I&#039;m very much looking forward to TG 1.5, and I&#039;m very excited to see that things are progressing so quickly on that front.</description>
		<content:encoded><![CDATA[<p>Thanks Ken, </p>
<p>I don&#8217;t want to imply that TG1 is not developing quickly, and I&#8217;m actually pretty hopeful that almost all of these things can be back-ported to 1.5 or 1.6 so that the differences between 1.5 and 2.0 can continue to get smaller.   </p>
<p>Mainly I have had people asking why TurboGears 2 exists when Django is moving so quickly, and this was a list of things that I like about TG2 that are useful and were not easy enough in 1.0  &#8212; but which may very well be in later 1.x releases.</p>
<p>A couple of other things:  </p>
<p>* We aren&#8217;t using evalexception we&#8217;re using weberror, which is &#8220;just&#8221; a newer verion of the same thing, and that could be used in 1.5 easily enough. </p>
<p>* Webhelpers wouldn&#8217;t be too hard to use in 1.5 if we wanted too. </p>
<p>* 1.5 can pretty easily use beaker for intermediary data caching, and support the same API as tg2. </p>
<p>I&#8217;m very much looking forward to TG 1.5, and I&#8217;m very excited to see that things are progressing so quickly on that front.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ken Kuhlman</title>
		<link>http://compoundthinking.com/blog/index.php/2008/07/31/10-reasons-why-the-new-turbogears-2-alpha-is-worth-a-look/#comment-216175</link>
		<dc:creator>Ken Kuhlman</dc:creator>
		<pubDate>Thu, 31 Jul 2008 17:36:12 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=353#comment-216175</guid>
		<description>Mark, without a doubt TG 2.0 is progressing well.  You &amp; your team are to be commended.

However, TG1 isn&#039;t standing still, either:

 &gt; * Out of the box support for a powerful web-based 
 &gt; interactive debugger

Are you using a different debugger than paste&#039;s evalexception? (Which tg 1.0 uses.)

 &gt; * Full WSGI support

TG 1.5 picks this up by being virtue of being based on CherryPy 3.

 &gt;   o Your app is a WSGI app out of the box

In 1.5, your controllers are plain ole python objects. You get a wsgi app back when you mount them.

 &gt;   o You easily call a any WSGI app from inside TG2

I assume your talking about use_wsgi_app() here.  I&#039;m working on backporting this to 1.5.  Right now my implementation is a bit too clever, but I should get that worked out soon.   In the meantime, it&#039;s not too big of a deal to just set it up via configuration.

 &gt;   o You can easily create and add middleware to your  
 &gt;     TG2 app

In CherryPy3 / TG 1.5 this is done either through configuration or by calling `myapp.wsgiapp.pipeline.append`.

 &gt; * Easy access to a large library of helper functions 
 &gt;   in your templates

WebHelpers.. yeah, haven&#039;t looked at it.

 &gt; * Out of the box support for using Routes to overide  
 &gt;   object dispatch for unusual URL’s

http://tools.cherrypy.org/wiki/RoutesUrlGeneration

 &gt; * Flexible out of the box caching for pages, 
 &gt;   intermediary data, etc

tools.caching.on for pages, haven&#039;t thought about intermediate data.

 &gt; * Improved object dispatch, to better support resource oriented URL’s

Yeah, that&#039;s some good stuff.  We should look at backporting it.


 &gt; * Support of Dojo, jquery, ext.js, mootools, and other
 &gt; javascript libraries via ToscaWidgets

Aren&#039;t people using ToscaWidgets with TG 1.0 today?  As for myself, I&#039;m still waiting for either someone to document the API differences with TG1.0&#039;s widgets, or the time to figure it out the hard way.</description>
		<content:encoded><![CDATA[<p>Mark, without a doubt TG 2.0 is progressing well.  You &amp; your team are to be commended.</p>
<p>However, TG1 isn&#8217;t standing still, either:</p>
<p> &gt; * Out of the box support for a powerful web-based<br />
 &gt; interactive debugger</p>
<p>Are you using a different debugger than paste&#8217;s evalexception? (Which tg 1.0 uses.)</p>
<p> &gt; * Full WSGI support</p>
<p>TG 1.5 picks this up by being virtue of being based on CherryPy 3.</p>
<p> &gt;   o Your app is a WSGI app out of the box</p>
<p>In 1.5, your controllers are plain ole python objects. You get a wsgi app back when you mount them.</p>
<p> &gt;   o You easily call a any WSGI app from inside TG2</p>
<p>I assume your talking about use_wsgi_app() here.  I&#8217;m working on backporting this to 1.5.  Right now my implementation is a bit too clever, but I should get that worked out soon.   In the meantime, it&#8217;s not too big of a deal to just set it up via configuration.</p>
<p> &gt;   o You can easily create and add middleware to your<br />
 &gt;     TG2 app</p>
<p>In CherryPy3 / TG 1.5 this is done either through configuration or by calling `myapp.wsgiapp.pipeline.append`.</p>
<p> &gt; * Easy access to a large library of helper functions<br />
 &gt;   in your templates</p>
<p>WebHelpers.. yeah, haven&#8217;t looked at it.</p>
<p> &gt; * Out of the box support for using Routes to overide<br />
 &gt;   object dispatch for unusual URL’s</p>
<p><a href="http://tools.cherrypy.org/wiki/RoutesUrlGeneration" rel="nofollow">http://tools.cherrypy.org/wiki/RoutesUrlGeneration</a></p>
<p> &gt; * Flexible out of the box caching for pages,<br />
 &gt;   intermediary data, etc</p>
<p>tools.caching.on for pages, haven&#8217;t thought about intermediate data.</p>
<p> &gt; * Improved object dispatch, to better support resource oriented URL’s</p>
<p>Yeah, that&#8217;s some good stuff.  We should look at backporting it.</p>
<p> &gt; * Support of Dojo, jquery, ext.js, mootools, and other<br />
 &gt; javascript libraries via ToscaWidgets</p>
<p>Aren&#8217;t people using ToscaWidgets with TG 1.0 today?  As for myself, I&#8217;m still waiting for either someone to document the API differences with TG1.0&#8242;s widgets, or the time to figure it out the hard way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Ozsvald</title>
		<link>http://compoundthinking.com/blog/index.php/2008/07/31/10-reasons-why-the-new-turbogears-2-alpha-is-worth-a-look/#comment-216172</link>
		<dc:creator>Ian Ozsvald</dc:creator>
		<pubDate>Thu, 31 Jul 2008 17:06:45 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=353#comment-216172</guid>
		<description>Percious has a great screencast on &lt;a href=&quot;http://showmedo.com/videos/video?name=2870000&amp;fromSeriesID=287&quot; rel=&quot;nofollow&quot;&gt;Starting with TurboGears 2&lt;/a&gt;, it makes it look pretty easy to test it out using a virtual environment.
Ian.</description>
		<content:encoded><![CDATA[<p>Percious has a great screencast on <a href="http://showmedo.com/videos/video?name=2870000&amp;fromSeriesID=287" rel="nofollow">Starting with TurboGears 2</a>, it makes it look pretty easy to test it out using a virtual environment.<br />
Ian.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

