<?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: Announcing TurboGears web megaframework (Python)</title>
	<atom:link href="http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/</link>
	<description>Kevin Dangoor on Creating Software Products</description>
	<pubDate>Fri, 09 Jan 2009 01:38:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Blue Sky On Mars &#187; Blog Archive &#187; Happy 2nd Birthday, TurboGears!</title>
		<link>http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/comment-page-1/#comment-195810</link>
		<dc:creator>Blue Sky On Mars &#187; Blog Archive &#187; Happy 2nd Birthday, TurboGears!</dc:creator>
		<pubDate>Tue, 18 Sep 2007 17:42:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/#comment-195810</guid>
		<description>[...] Though it was publicly displayed a couple of days before, I announced the release of TurboGears on September 17, 2005: Blue Sky On Mars » Blog Archive » Announcing TurboGears web megaframework (Python). [...]</description>
		<content:encoded><![CDATA[<p>[...] Though it was publicly displayed a couple of days before, I announced the release of TurboGears on September 17, 2005: Blue Sky On Mars » Blog Archive » Announcing TurboGears web megaframework (Python). [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tazzzzz</title>
		<link>http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/comment-page-1/#comment-2700</link>
		<dc:creator>tazzzzz</dc:creator>
		<pubDate>Thu, 22 Sep 2005 11:40:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/#comment-2700</guid>
		<description>Since I didn't need them myself, right now it's roll-your-own. There's nothing in TurboGears' choice of tools that will make them harder than in other tools, and I think (if we know how people *want* it to work), there are things we can do that will make them easier.</description>
		<content:encoded><![CDATA[<p>Since I didn&#8217;t need them myself, right now it&#8217;s roll-your-own. There&#8217;s nothing in TurboGears&#8217; choice of tools that will make them harder than in other tools, and I think (if we know how people *want* it to work), there are things we can do that will make them easier.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rdk</title>
		<link>http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/comment-page-1/#comment-2698</link>
		<dc:creator>rdk</dc:creator>
		<pubDate>Thu, 22 Sep 2005 10:23:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/#comment-2698</guid>
		<description>How about i18n and l10n?
Is it supported?</description>
		<content:encoded><![CDATA[<p>How about i18n and l10n?<br />
Is it supported?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tazzzzz</title>
		<link>http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/comment-page-1/#comment-2664</link>
		<dc:creator>tazzzzz</dc:creator>
		<pubDate>Mon, 19 Sep 2005 03:19:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/#comment-2664</guid>
		<description>The written version of the tutorial actually talks about that. It's something I dropped from the screencast to save time.

What happens is the "new" variable starts out as a boolean. When Kid gets ahold of it to send it out on the web, it turns into a string (eg "True"). So, it comes in to CherryPy as the string "True", which is what I check for in the screencast. (It wouldn't work properly otherwise...)

In the written version of the "20 Minute Wiki", I use a validator to convert the value to a real boolean.</description>
		<content:encoded><![CDATA[<p>The written version of the tutorial actually talks about that. It&#8217;s something I dropped from the screencast to save time.</p>
<p>What happens is the &#8220;new&#8221; variable starts out as a boolean. When Kid gets ahold of it to send it out on the web, it turns into a string (eg &#8220;True&#8221;). So, it comes in to CherryPy as the string &#8220;True&#8221;, which is what I check for in the screencast. (It wouldn&#8217;t work properly otherwise&#8230;)</p>
<p>In the written version of the &#8220;20 Minute Wiki&#8221;, I use a validator to convert the value to a real boolean.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leonardo Santagada</title>
		<link>http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/comment-page-1/#comment-2663</link>
		<dc:creator>Leonardo Santagada</dc:creator>
		<pubDate>Mon, 19 Sep 2005 03:05:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/#comment-2663</guid>
		<description>I think  I saw a 'if bool == "True":' in there I think it should be 'if bool:' or 'if bool == True:'</description>
		<content:encoded><![CDATA[<p>I think  I saw a &#8216;if bool == &#8220;True&#8221;:&#8217; in there I think it should be &#8216;if bool:&#8217; or &#8216;if bool == True:&#8217;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Brewer</title>
		<link>http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/comment-page-1/#comment-2650</link>
		<dc:creator>Robert Brewer</dc:creator>
		<pubDate>Sun, 18 Sep 2005 07:21:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/#comment-2650</guid>
		<description>I wrote a recipe for Resource.default here: http://www.cherrypy.org/wiki/RestfulResource</description>
		<content:encoded><![CDATA[<p>I wrote a recipe for Resource.default here: <a href="http://www.cherrypy.org/wiki/RestfulResource" rel="nofollow">http://www.cherrypy.org/wiki/RestfulResource</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tazzzzz</title>
		<link>http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/comment-page-1/#comment-2647</link>
		<dc:creator>tazzzzz</dc:creator>
		<pubDate>Sat, 17 Sep 2005 19:54:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/#comment-2647</guid>
		<description>Thanks, Robert. And thanks for all of your great work on CP! raise HTTPRedirect is a nice way to signal "hey, I'm done here!" Very pleasant.

Amusingly enough, the written tutorial says that you can "add are belong to us" if you feel you must :)

The written "20 Minute Wiki" includes a trivial default method so that you can go to /PageName as you would in a normal wiki. I chopped that bit out and a minor validation usage in order to avoid the 20 Minute Wiki ballooning into the 25 Minute Wiki.

Glad you enjoyed the screencast!</description>
		<content:encoded><![CDATA[<p>Thanks, Robert. And thanks for all of your great work on CP! raise HTTPRedirect is a nice way to signal &#8220;hey, I&#8217;m done here!&#8221; Very pleasant.</p>
<p>Amusingly enough, the written tutorial says that you can &#8220;add are belong to us&#8221; if you feel you must <img src='http://www.blueskyonmars.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The written &#8220;20 Minute Wiki&#8221; includes a trivial default method so that you can go to /PageName as you would in a normal wiki. I chopped that bit out and a minor validation usage in order to avoid the 20 Minute Wiki ballooning into the 25 Minute Wiki.</p>
<p>Glad you enjoyed the screencast!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Brewer</title>
		<link>http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/comment-page-1/#comment-2646</link>
		<dc:creator>Robert Brewer</dc:creator>
		<pubDate>Sat, 17 Sep 2005 19:37:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/#comment-2646</guid>
		<description>VERY nice 20 minute tutorial video, Kevin. I was pleased to see you using HTTPRedirect in particular (my baby ;). But, how could you write the title "All your pages" and not add "...are belong to us"? ;)

One thing I noticed in particular is the use of: input type='hidden'. If you switch the URL scheme to use /pname/edit instead of /edit?pagename=pname, you can completely do away with the hidden input elements. Now, that does mean using a default method in your controller, which is probably too advanced to explain in a short tutorial. But if TG provided a base class which used the virtual path (pname), looked up the item (Page object) for you based on that ID (pname), and then dispatched based on the rest of the path (/edit -&#62; self.edit), that would be VERY cool. That's essentially what I do, but with CP plus Dejavu, my own ORM.</description>
		<content:encoded><![CDATA[<p>VERY nice 20 minute tutorial video, Kevin. I was pleased to see you using HTTPRedirect in particular (my baby ;). But, how could you write the title &#8220;All your pages&#8221; and not add &#8220;&#8230;are belong to us&#8221;? <img src='http://www.blueskyonmars.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>One thing I noticed in particular is the use of: input type=&#8217;hidden&#8217;. If you switch the URL scheme to use /pname/edit instead of /edit?pagename=pname, you can completely do away with the hidden input elements. Now, that does mean using a default method in your controller, which is probably too advanced to explain in a short tutorial. But if TG provided a base class which used the virtual path (pname), looked up the item (Page object) for you based on that ID (pname), and then dispatched based on the rest of the path (/edit -&gt; self.edit), that would be VERY cool. That&#8217;s essentially what I do, but with CP plus Dejavu, my own ORM.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: julien</title>
		<link>http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/comment-page-1/#comment-2645</link>
		<dc:creator>julien</dc:creator>
		<pubDate>Sat, 17 Sep 2005 18:38:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.blueskyonmars.com/2005/09/17/announcing-turbogears-web-megaframework-python/#comment-2645</guid>
		<description>Excellent! I've been playing arount with that *exact* combination (Mochikit, CherryPy, Kid and SQLObject). I am very happy to see that you want to focus on integration between these projects and on documentation!
Off to watching the screencast ...</description>
		<content:encoded><![CDATA[<p>Excellent! I&#8217;ve been playing arount with that *exact* combination (Mochikit, CherryPy, Kid and SQLObject). I am very happy to see that you want to focus on integration between these projects and on documentation!<br />
Off to watching the screencast &#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.292 seconds -->
