<?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: Pretty screenshots &#8211; My first Django app</title>
	<atom:link href="http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/</link>
	<description>software development and testing</description>
	<lastBuildDate>Thu, 24 Apr 2008 12:51:01 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Herbert Sitz</title>
		<link>http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/comment-page-1/#comment-346</link>
		<dc:creator>Herbert Sitz</dc:creator>
		<pubDate>Fri, 24 Feb 2006 22:39:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.jrandolph.com/blog/?p=11#comment-346</guid>
		<description>&quot;I’m planning on making the admin console my user-facing app. Of course, now I have the task of tweaking the UI and adding more robust security permissions so the admin console can be used by regular users… We’ll see how this goes…&quot;

I&#039;m very curious about how this can be done.  How did it go?</description>
		<content:encoded><![CDATA[<p>&#8220;I’m planning on making the admin console my user-facing app. Of course, now I have the task of tweaking the UI and adding more robust security permissions so the admin console can be used by regular users… We’ll see how this goes…&#8221;</p>
<p>I&#8217;m very curious about how this can be done.  How did it go?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Hicks</title>
		<link>http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/comment-page-1/#comment-187</link>
		<dc:creator>Robert Hicks</dc:creator>
		<pubDate>Tue, 15 Nov 2005 03:33:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.jrandolph.com/blog/?p=11#comment-187</guid>
		<description>If Oracle support gets added (and supported) into Django...that would be the deal clincher for me. All I have at work is Oracle.</description>
		<content:encoded><![CDATA[<p>If Oracle support gets added (and supported) into Django&#8230;that would be the deal clincher for me. All I have at work is Oracle.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Administrator</title>
		<link>http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/comment-page-1/#comment-126</link>
		<dc:creator>Administrator</dc:creator>
		<pubDate>Fri, 30 Sep 2005 09:19:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.jrandolph.com/blog/?p=11#comment-126</guid>
		<description>&quot;i.e. when you want to make the front-end for it, you’re going to run straight into the “how long would it have taken me to make it this pretty in Rails?” problem, no?&quot;

Not really a problem... I&#039;m planning on making the admin console my user-facing app. Of course, now I have the task of tweaking the UI and adding more robust security permissions so the admin console can be used by regular users... We&#039;ll see how this goes...</description>
		<content:encoded><![CDATA[<p>&#8220;i.e. when you want to make the front-end for it, you’re going to run straight into the “how long would it have taken me to make it this pretty in Rails?” problem, no?&#8221;</p>
<p>Not really a problem&#8230; I&#8217;m planning on making the admin console my user-facing app. Of course, now I have the task of tweaking the UI and adding more robust security permissions so the admin console can be used by regular users&#8230; We&#8217;ll see how this goes&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: a</title>
		<link>http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/comment-page-1/#comment-107</link>
		<dc:creator>a</dc:creator>
		<pubDate>Wed, 28 Sep 2005 23:55:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.jrandolph.com/blog/?p=11#comment-107</guid>
		<description>But isn&#039;t that just the admin console?

i.e. when you want to make the front-end for it, you&#039;re going to run straight into the &quot;how long would it have taken me to make it this pretty in Rails?&quot; problem, no?</description>
		<content:encoded><![CDATA[<p>But isn&#8217;t that just the admin console?</p>
<p>i.e. when you want to make the front-end for it, you&#8217;re going to run straight into the &#8220;how long would it have taken me to make it this pretty in Rails?&#8221; problem, no?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Granger</title>
		<link>http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/comment-page-1/#comment-72</link>
		<dc:creator>Michael Granger</dc:creator>
		<pubDate>Mon, 15 Aug 2005 22:56:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.jrandolph.com/blog/?p=11#comment-72</guid>
		<description>Prettiness has very little to do with what web framework you use. Rails doesn&#039;t come with anything that&#039;ll magically make your app look &quot;pretty&quot;. 

As for &quot;baked-in&quot; login systems: after installing one of the various available login generators (via something like &#039;gem install --source http://dist.leetsoft.com login_generator&#039;), you can add a login system to any project by running &#039;script/generate login Auth&#039;. And the same for tabbed navbars, search, sparklines (http://nubyonrails.topfunky.com/articles/2005/08/01/sparklines-now-gem-i-fied), PayPal payment system, etc.

That said, if Python is the language of your poetry, then Django looks to be a damn fine framework.</description>
		<content:encoded><![CDATA[<p>Prettiness has very little to do with what web framework you use. Rails doesn&#8217;t come with anything that&#8217;ll magically make your app look &#8220;pretty&#8221;. </p>
<p>As for &#8220;baked-in&#8221; login systems: after installing one of the various available login generators (via something like &#8216;gem install &#8211;source <a href="http://dist.leetsoft.com" rel="nofollow">http://dist.leetsoft.com</a> login_generator&#8217;), you can add a login system to any project by running &#8217;script/generate login Auth&#8217;. And the same for tabbed navbars, search, sparklines (<a href="http://nubyonrails.topfunky.com/articles/2005/08/01/sparklines-now-gem-i-fied" rel="nofollow">http://nubyonrails.topfunky.com/articles/2005/08/01/sparklines-now-gem-i-fied</a>), PayPal payment system, etc.</p>
<p>That said, if Python is the language of your poetry, then Django looks to be a damn fine framework.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wilson</title>
		<link>http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/comment-page-1/#comment-71</link>
		<dc:creator>Wilson</dc:creator>
		<pubDate>Mon, 15 Aug 2005 22:12:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.jrandolph.com/blog/?p=11#comment-71</guid>
		<description>Jason: Try adding the class &quot;superwide&quot; to the body of your admin page to widen it up.</description>
		<content:encoded><![CDATA[<p>Jason: Try adding the class &#8220;superwide&#8221; to the body of your admin page to widen it up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Huggins</title>
		<link>http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/comment-page-1/#comment-70</link>
		<dc:creator>Jason Huggins</dc:creator>
		<pubDate>Mon, 15 Aug 2005 19:48:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.jrandolph.com/blog/?p=11#comment-70</guid>
		<description>pablo: Even if you use Archetypes, its sql storage still stores meta-data in the ZODB. (e.g. creation-date, modified-date, last-modified-by)... I need to be able to query those meta-data items from SQL just like the rest of my app&#039;s data. There are some posted hooks (http://plone.sourceforge.net/archetypes/sqlstorage-howto.html) for getting *all* of your object&#039;s data stored in the relational database, but you have to jump through a lot of hoops. I&#039;ve also heard that Archetypes sql storage is inefficient with its use of sql and could use a fair bit of refactoring to make it useable in large volume sites.

I want *all* of my site&#039;s data in Oracle, not just some of it, because then I have a true separation of code and data when the lights turn off. With my data safely stored in Oracle, I can drop and recreate my Zope site when I release a new version of my app. With some of my data pickeld in the ZODB, I would have to write and run migration scripts to upgrade the meta-data. I do have to do the same in SQL when the schema changes, but I trust my SQL schema upgrade skills more than my Zope object upgrade skills. The alternative is to dump the ZODB data to file, release a new version, build out my site, and reimport my data. This dump/build/import cycle is what I do now with each Plone release into production. If I can avoid it, I&#039;d love to.

Comparing Zope object schemas feels a little more opaque to me than comparing SQL table schemas. Also, with some of the schema in the ZODB, and some in Oracle, I now have to write two migration/upgrade scripts... doing it once is bad enough. Plus, I feel there is more collective wisdom in the universe surrounding the issue of relational database schema migrations than archetypes&#039; schema migrations. Altering SQL schema changes is more learnable, teachable, and googleable.

I spent lots of quality time groking APE to make it store all this data in Oracle, but unless you write custom mappers/gateways for your custom objects, your data will be stored as pickles. I spent lots of time trying to figure out how to &quot;unpickle&quot; data into readable tables. It&#039;s possible, but there&#039;s so much work involved... Things like ActiveRecord, SQLObject, and Django&#039;s ORM make this a no-brainer for me. The fact that Django stores all its data (including meta-data and security roles and permission settings) in the relational database, too, is wonderful -- there&#039;s less there that needs &quot;fixing&quot;.

With Plone, I keep dreaming up and working on lots of crafty programmatic ways to get my data out of the ZODB and into my relational database. After a certain amount of effort, especially after long debugging sessions with APE, I start asking &quot;why go through all the trouble?&quot;

Without Archetypes or APE set the way the want it, I had to use raw ZSQL for my data access.. And since I wasn&#039;t using Archetypes, I also had to had to create all my own ZPT forms and validation scripts... This is what took months to learn, code, and test. Basically, I was getting none of the benefits of Plone, except the nice user interface, which is what attracted me to it in the first place. Django provides a nice UI, plus an easier data storage option.

Another point, is that displaying tabular data (like the mini spreadsheet in my screenshot is a no brainer in Django)... Doing the same in Plone/Archetypes or Plone/APE was not easy. 

So in a nutshell, if you want to live in a relational db world, it&#039;s an up-hill battle in Plone. If you don&#039;t need to live with with deep support for relational databases, Plone is fine. Don&#039;t get me wrong, Plone the project is great and I enjoy and admire the developers working on it... And I had a great time coding and sledding with the Plone developers at the Snow Sprint in Austria. Plone is a well established project with a strong user community and some high-profile clients. I&#039;d like to see Plone succeed. Perhaps, I&#039;ll sponsor a Plone sprint of my own to fix my Plone/RDBMS issues. :-)

Okay, rant over. :-)</description>
		<content:encoded><![CDATA[<p>pablo: Even if you use Archetypes, its sql storage still stores meta-data in the ZODB. (e.g. creation-date, modified-date, last-modified-by)&#8230; I need to be able to query those meta-data items from SQL just like the rest of my app&#8217;s data. There are some posted hooks (<a href="http://plone.sourceforge.net/archetypes/sqlstorage-howto.html" rel="nofollow">http://plone.sourceforge.net/archetypes/sqlstorage-howto.html</a>) for getting <em>all</em> of your object&#8217;s data stored in the relational database, but you have to jump through a lot of hoops. I&#8217;ve also heard that Archetypes sql storage is inefficient with its use of sql and could use a fair bit of refactoring to make it useable in large volume sites.</p>
<p>I want <em>all</em> of my site&#8217;s data in Oracle, not just some of it, because then I have a true separation of code and data when the lights turn off. With my data safely stored in Oracle, I can drop and recreate my Zope site when I release a new version of my app. With some of my data pickeld in the ZODB, I would have to write and run migration scripts to upgrade the meta-data. I do have to do the same in SQL when the schema changes, but I trust my SQL schema upgrade skills more than my Zope object upgrade skills. The alternative is to dump the ZODB data to file, release a new version, build out my site, and reimport my data. This dump/build/import cycle is what I do now with each Plone release into production. If I can avoid it, I&#8217;d love to.</p>
<p>Comparing Zope object schemas feels a little more opaque to me than comparing SQL table schemas. Also, with some of the schema in the ZODB, and some in Oracle, I now have to write two migration/upgrade scripts&#8230; doing it once is bad enough. Plus, I feel there is more collective wisdom in the universe surrounding the issue of relational database schema migrations than archetypes&#8217; schema migrations. Altering SQL schema changes is more learnable, teachable, and googleable.</p>
<p>I spent lots of quality time groking APE to make it store all this data in Oracle, but unless you write custom mappers/gateways for your custom objects, your data will be stored as pickles. I spent lots of time trying to figure out how to &#8220;unpickle&#8221; data into readable tables. It&#8217;s possible, but there&#8217;s so much work involved&#8230; Things like ActiveRecord, SQLObject, and Django&#8217;s ORM make this a no-brainer for me. The fact that Django stores all its data (including meta-data and security roles and permission settings) in the relational database, too, is wonderful &#8212; there&#8217;s less there that needs &#8220;fixing&#8221;.</p>
<p>With Plone, I keep dreaming up and working on lots of crafty programmatic ways to get my data out of the ZODB and into my relational database. After a certain amount of effort, especially after long debugging sessions with APE, I start asking &#8220;why go through all the trouble?&#8221;</p>
<p>Without Archetypes or APE set the way the want it, I had to use raw ZSQL for my data access.. And since I wasn&#8217;t using Archetypes, I also had to had to create all my own ZPT forms and validation scripts&#8230; This is what took months to learn, code, and test. Basically, I was getting none of the benefits of Plone, except the nice user interface, which is what attracted me to it in the first place. Django provides a nice UI, plus an easier data storage option.</p>
<p>Another point, is that displaying tabular data (like the mini spreadsheet in my screenshot is a no brainer in Django)&#8230; Doing the same in Plone/Archetypes or Plone/APE was not easy. </p>
<p>So in a nutshell, if you want to live in a relational db world, it&#8217;s an up-hill battle in Plone. If you don&#8217;t need to live with with deep support for relational databases, Plone is fine. Don&#8217;t get me wrong, Plone the project is great and I enjoy and admire the developers working on it&#8230; And I had a great time coding and sledding with the Plone developers at the Snow Sprint in Austria. Plone is a well established project with a strong user community and some high-profile clients. I&#8217;d like to see Plone succeed. Perhaps, I&#8217;ll sponsor a Plone sprint of my own to fix my Plone/RDBMS issues. :-)</p>
<p>Okay, rant over. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TG</title>
		<link>http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/comment-page-1/#comment-69</link>
		<dc:creator>TG</dc:creator>
		<pubDate>Mon, 15 Aug 2005 17:33:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.jrandolph.com/blog/?p=11#comment-69</guid>
		<description>Seems to me Rails is way more generic overall and doesn&#039;t claim an out-of-the-box admin interface, but rather &quot;scaffolding&quot; to use while you put the &quot;real code&quot; in place.  While I&#039;m trying to think you&#039;re just pointing out the differences I can&#039;t help but think it sounds like the digs and gloating common in Railsworld that I disdain... but I know you&#039;re above that ;-) right?

Permissions, yeah... well that seems to be a perpetual &quot;should have&#124;shouldn&#039;t have&quot; for frameworks in every language (including python).</description>
		<content:encoded><![CDATA[<p>Seems to me Rails is way more generic overall and doesn&#8217;t claim an out-of-the-box admin interface, but rather &#8220;scaffolding&#8221; to use while you put the &#8220;real code&#8221; in place.  While I&#8217;m trying to think you&#8217;re just pointing out the differences I can&#8217;t help but think it sounds like the digs and gloating common in Railsworld that I disdain&#8230; but I know you&#8217;re above that ;-) right?</p>
<p>Permissions, yeah&#8230; well that seems to be a perpetual &#8220;should have|shouldn&#8217;t have&#8221; for frameworks in every language (including python).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pablo</title>
		<link>http://www.jrandolph.com/blog/2005/08/15/pretty-screenshots-my-first-django-app/comment-page-1/#comment-68</link>
		<dc:creator>pablo</dc:creator>
		<pubDate>Mon, 15 Aug 2005 10:24:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.jrandolph.com/blog/?p=11#comment-68</guid>
		<description>I think you are unjust with Plone. The problem with plone I suppose was the sql storage but try using django without its native store (for example using xml).
In the other hand i think that &#039;months&#039; is too time, using archetypes and sql-storage, 2 or 3 days would be sufficent.</description>
		<content:encoded><![CDATA[<p>I think you are unjust with Plone. The problem with plone I suppose was the sql storage but try using django without its native store (for example using xml).<br />
In the other hand i think that &#8216;months&#8217; is too time, using archetypes and sql-storage, 2 or 3 days would be sufficent.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

