<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-4887447608343482497.comments</id><updated>2009-10-29T13:30:12.051-07:00</updated><title type='text'>You work for me, Computer</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.brandonbloom.name/feeds/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/comments/default'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/comments/default?start-index=26&amp;max-results=25'/><author><name>Brandon Bloom</name><uri>http://www.blogger.com/profile/16981101182779460140</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-961722053365620834</id><published>2009-10-29T13:30:12.317-07:00</published><updated>2009-10-29T13:30:12.317-07:00</updated><title type='text'>I agree I'd rather go schema first than model firs...</title><content type='html'>I agree I&amp;#39;d rather go schema first than model first. As a side note though it&amp;#39;s interesting to think about it in the context of the whole NOSQL mouvement that&amp;#39;s been gaining a lot of traction over the last year. Facebook, LinkedIn or Amazon for some subset of its data and others are doing away with the relational stores and going with pure key/value pairs persistence.&lt;br /&gt;&lt;br /&gt;Not relevant for every application but very interesting nonetheless.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1471324358664389393/comments/default/961722053365620834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1471324358664389393/comments/default/961722053365620834'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/10/orms-and-declarative-schemas.html?showComment=1256848212317#c961722053365620834' title=''/><author><name>Julien</name><uri>http://www.blogger.com/profile/03409726728047577470</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/10/orms-and-declarative-schemas.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-1471324358664389393' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/1471324358664389393' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-6411573449625925344</id><published>2009-10-23T13:38:17.654-07:00</published><updated>2009-10-23T13:38:17.654-07:00</updated><title type='text'>Piping objects has draw backs too. Here's a case t...</title><content type='html'>Piping objects has draw backs too. Here&amp;#39;s a case that came up on the internal PowerShell mailing list...&lt;br /&gt;&lt;br /&gt;Unix:&lt;br /&gt;&lt;br /&gt;cat foo | wc -l&lt;br /&gt;&lt;br /&gt;PowerShell:&lt;br /&gt;&lt;br /&gt;Get-Content foo | Measure-Object -line&lt;br /&gt;&lt;br /&gt;Ignore the line length, as I didn&amp;#39;t use any aliases for the PowerShell version. The issue here is that Get-Content returns a String, not a StreamReader. The result is that for large files, the entire String must be read into memory and for really large files, swapped back out to disk!&lt;br /&gt;&lt;br /&gt;You could easily work around this with objects; this example is just to show that objects have drawbacks just as byte streams do. Everything is always a balance. I like the Unix approach because it is a simple system with drawbacks that are well understood. I dislike the object approach because it is a complex system with less obvious drawbacks that don&amp;#39;t bite you until much later.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1269333104236652268/comments/default/6411573449625925344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1269333104236652268/comments/default/6411573449625925344'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/04/powershell-condemned-to-reinvent.html?showComment=1256330297654#c6411573449625925344' title=''/><author><name>Brandon Bloom</name><uri>http://www.blogger.com/profile/16981101182779460140</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10281291373750668260'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/04/powershell-condemned-to-reinvent.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-1269333104236652268' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/1269333104236652268' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-588763827733136735</id><published>2009-10-22T21:04:21.830-07:00</published><updated>2009-10-22T21:04:21.830-07:00</updated><title type='text'>Unix is optimized around flat files windows is opt...</title><content type='html'>Unix is optimized around flat files windows is optimized around objects. It&amp;#39;s not the they don&amp;#39;t understand Unix. The Powershell Team has a strong unix Background. It&amp;#39;s just just that M$ has 87% market share and a trillion dollars in the bank share that says F@ck unix.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1269333104236652268/comments/default/588763827733136735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1269333104236652268/comments/default/588763827733136735'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/04/powershell-condemned-to-reinvent.html?showComment=1256270661830#c588763827733136735' title=''/><author><name>Powershell Jedi</name><uri>http://www.blogger.com/profile/10458156400383381038</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/04/powershell-condemned-to-reinvent.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-1269333104236652268' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/1269333104236652268' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-4517857399423363409</id><published>2009-10-21T06:21:30.503-07:00</published><updated>2009-10-21T06:21:30.503-07:00</updated><title type='text'>Sorry but no: Pipelining objects is much smarter. ...</title><content type='html'>Sorry but no: Pipelining objects is much smarter. You can still pipe strings or binary data if you want, but you don&amp;#39;t have all the drawbacks.&lt;br /&gt;&lt;br /&gt;And then there&amp;#39;s the security implications. While theoratically possible, are all your scripts safe against whitespace|&amp;quot;&amp;#39;` injection? Piping objects is sooo much easier AND it does not kill your system if the bytestream contains `rm -rf /`. &lt;br /&gt;&lt;br /&gt;Just my two cents...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1269333104236652268/comments/default/4517857399423363409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1269333104236652268/comments/default/4517857399423363409'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/04/powershell-condemned-to-reinvent.html?showComment=1256131290503#c4517857399423363409' title=''/><author><name>Kosta</name><uri>http://www.blogger.com/profile/05075601926428752831</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/04/powershell-condemned-to-reinvent.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-1269333104236652268' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/1269333104236652268' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-6679726968370634927</id><published>2009-10-07T14:17:32.627-07:00</published><updated>2009-10-07T14:17:32.627-07:00</updated><title type='text'>@Martin: The "original target use" argument is no ...</title><content type='html'>@Martin: The &amp;quot;original target use&amp;quot; argument is no longer relevant. Django is being pushed as a general purpose web framework for developing sites or apps, big and small.&lt;br /&gt;&lt;br /&gt;@Ezequiel: I&amp;#39;m not building something Twitter big. I&amp;#39;m building something that has to deal with real user data and survive real design evolution. The problems I describe affect any application with any longevity of any kind.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1471324358664389393/comments/default/6679726968370634927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1471324358664389393/comments/default/6679726968370634927'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/10/orms-and-declarative-schemas.html?showComment=1254950252627#c6679726968370634927' title=''/><author><name>Brandon Bloom</name><uri>http://www.blogger.com/profile/16981101182779460140</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10281291373750668260'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/10/orms-and-declarative-schemas.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-1471324358664389393' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/1471324358664389393' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-7508220644530929319</id><published>2009-10-07T12:37:59.367-07:00</published><updated>2009-10-07T12:37:59.367-07:00</updated><title type='text'>I agree with Martin, Jacob Kaplan-Moss himself sai...</title><content type='html'>I agree with Martin, Jacob Kaplan-Moss himself said that, when you get to a point where you&amp;#39;re building something really big (e.g. Twitter) you basically have to throw your framework away.&lt;br /&gt;&lt;br /&gt;Django is really good, but, like any technolgy, sometimes is not enough.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1471324358664389393/comments/default/7508220644530929319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1471324358664389393/comments/default/7508220644530929319'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/10/orms-and-declarative-schemas.html?showComment=1254944279367#c7508220644530929319' title=''/><author><name>Ezequiel</name><uri>http://www.blogger.com/profile/02904696999398258311</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/10/orms-and-declarative-schemas.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-1471324358664389393' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/1471324358664389393' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-7495641108794702022</id><published>2009-10-07T11:28:17.125-07:00</published><updated>2009-10-07T11:28:17.125-07:00</updated><title type='text'>These are all good points, and largely irrelevant ...</title><content type='html'>These are all good points, and largely irrelevant for someone developing to Django. Yes, if you are using Django to develop to a long-term data store, enterprise data, etc., you are dead right, and you should be using SQLAlchemy with Django instead of the Django ORM.&lt;br /&gt;&lt;br /&gt;However, consider Django&amp;#39;s original target use: a newspaper, on the cutting edge, putting up quick apps on-the-fly with a very short development cycle. A CMS. A Polling app. A Blog. Think about the type of apps that people actually build with Django, and you will find that the Django ORM makes perfect sense. Short development cycle. Easy deployment. &amp;quot;Good enough&amp;quot; query optimizations.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1471324358664389393/comments/default/7495641108794702022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1471324358664389393/comments/default/7495641108794702022'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/10/orms-and-declarative-schemas.html?showComment=1254940097125#c7495641108794702022' title=''/><author><name>Martin Diers</name><uri>http://www.blogger.com/profile/14455045241461983409</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/10/orms-and-declarative-schemas.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-1471324358664389393' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/1471324358664389393' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-4117199033650301914</id><published>2009-09-10T17:41:17.777-07:00</published><updated>2009-09-10T17:41:17.777-07:00</updated><title type='text'>Without the changes in Django 1.1, modules were th...</title><content type='html'>Without the changes in Django 1.1, modules were the only recursive mechanism; too heavyweight for my taste. The 1.1 beta was released in March. I had developed my own solution to this problem several months before then.&lt;br /&gt;&lt;br /&gt;Even with the 1.1 improvements, Django doesn&amp;#39;t meet my other requirements: namely binding URL segments to the database and creating breadcrumbs while filling a template context dictionary. Since that work involves parsing request.path myself, I might as well just bind (.*)+ and do my own routing. It was relatively trivial.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/4117199033650301914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/4117199033650301914'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1252629677777#c4117199033650301914' title=''/><author><name>Brandon Bloom</name><uri>http://www.blogger.com/profile/16981101182779460140</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10281291373750668260'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-1587601438629110498</id><published>2009-09-10T17:30:21.483-07:00</published><updated>2009-09-10T17:30:21.483-07:00</updated><title type='text'>You can have non-flat URL routing. After your firs...</title><content type='html'>You &lt;i&gt;can&lt;/i&gt; have non-flat URL routing. After your first point demonstrated a failure to grasp more than the basics before whining, I tuned out. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.djangoproject.com/en/dev/topics/http/urls/#including-other-urlconfs" rel="nofollow"&gt;Nested URL routing confs and includes&lt;/a&gt; (new in 1.1) are what you should have used instead of bitching on the internet. It wouldn&amp;#39;t have made you seem as cool, but you would have gotten the job done instead.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/1587601438629110498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/1587601438629110498'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1252629021483#c1587601438629110498' title=''/><author><name>Angel</name><uri>http://www.blogger.com/profile/01814007501063758724</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-4633565526521685907</id><published>2009-09-09T14:54:20.994-07:00</published><updated>2009-09-09T14:54:20.994-07:00</updated><title type='text'>There is nothing that Django's routing can't do. I...</title><content type='html'>There is nothing that Django&amp;#39;s routing can&amp;#39;t do. In fact, the first version of this simply generated Django routes. This is about making is faster and easier to define hierarchical permissions and trees of URLs in a way that queries the database on a per-url-segment basis.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/4633565526521685907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/4633565526521685907'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html?showComment=1252533260994#c4633565526521685907' title=''/><author><name>Brandon Bloom</name><uri>http://www.blogger.com/profile/16981101182779460140</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10281291373750668260'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7839271548232117293' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7839271548232117293' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-9146351732313809219</id><published>2009-09-09T13:44:31.693-07:00</published><updated>2009-09-09T13:44:31.693-07:00</updated><title type='text'>in terms of* I meant. Spelling is not one of my st...</title><content type='html'>in terms of* I meant. Spelling is not one of my strongest areas eh?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/9146351732313809219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/9146351732313809219'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html?showComment=1252529071693#c9146351732313809219' title=''/><author><name>Andriy Drozdyuk</name><uri>http://www.blogger.com/profile/06962143421005350695</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7839271548232117293' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7839271548232117293' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-2935794819292105196</id><published>2009-09-09T13:43:26.119-07:00</published><updated>2009-09-09T13:43:26.119-07:00</updated><title type='text'>I am sorry I still don't get how this serves as an...</title><content type='html'>I am sorry I still don&amp;#39;t get how this serves as an improvement over Django&amp;#39;s url system?&lt;br /&gt;&lt;br /&gt;Can you provide me with a concrete example of what you cannot do in Django in terms or url-routing?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/2935794819292105196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/2935794819292105196'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html?showComment=1252529006119#c2935794819292105196' title=''/><author><name>Andriy Drozdyuk</name><uri>http://www.blogger.com/profile/06962143421005350695</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7839271548232117293' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7839271548232117293' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-7795661088802582825</id><published>2009-08-28T11:02:00.780-07:00</published><updated>2009-08-28T11:02:00.780-07:00</updated><title type='text'>I'd recommend taking a look at Werkzeug for your r...</title><content type='html'>I&amp;#39;d recommend taking a look at Werkzeug for your routing &amp;amp; other wsgi basic needs.&lt;br /&gt;&lt;br /&gt;As a follow-up to the previous post, Jinja 2 makes for an excellent templating engine (think django but much faster and without the stupid limitations).&lt;br /&gt;&lt;br /&gt;And as a shameless plug, have a look at WTForms for your forms: http://wtforms.simplecodes.com/</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/7795661088802582825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/7795661088802582825'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html?showComment=1251482520780#c7795661088802582825' title=''/><author><name>Thomas</name><uri>http://www.blogger.com/profile/11330120244167608930</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7839271548232117293' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7839271548232117293' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-1101782653658413699</id><published>2009-08-26T11:37:56.782-07:00</published><updated>2009-08-26T11:37:56.782-07:00</updated><title type='text'>Child views are not "hard coded". They are determi...</title><content type='html'>Child views are not &amp;quot;hard coded&amp;quot;. They are determined by the children method. You could pass segment, but it would be easier for the bind method to just store something on self for use later.&lt;br /&gt;&lt;br /&gt;I looked at Restish a bit. It seems like a nice library; definitely the closest to my taste from what I&amp;#39;ve seen.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/1101782653658413699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/1101782653658413699'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html?showComment=1251311876782#c1101782653658413699' title=''/><author><name>Brandon Bloom</name><uri>http://www.blogger.com/profile/16981101182779460140</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10281291373750668260'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7839271548232117293' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7839271548232117293' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-7117936789164676956</id><published>2009-08-26T02:10:31.749-07:00</published><updated>2009-08-26T02:10:31.749-07:00</updated><title type='text'>You are hardcoding child views in the children met...</title><content type='html'>You are hardcoding child views in the children method of each view which means the view can&amp;#39;t decide what (type of) children it has based on the current path segment. For example, I have a use case in which some content types can contain children of more than 1 type, so for example /foobar/child/ can either be a TypeAView or TypeBView depending on whether a TypeA with name &amp;quot;child&amp;quot; can be found or not - if it cannot be found, TypeBView will be returned. If your children() method took a path segment as an argument, it would probably solve this problem.&lt;br /&gt;&lt;br /&gt;BTW have you checked out how Restish resolves/dispatches URLs? I think they have it right when it comes to dynamic URL trees.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/7117936789164676956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7839271548232117293/comments/default/7117936789164676956'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html?showComment=1251277831749#c7117936789164676956' title=''/><author><name>Dead Man</name><uri>http://www.blogger.com/profile/14436768118289015929</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/url-routing-and-views.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7839271548232117293' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7839271548232117293' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-1330910410471267912</id><published>2009-08-24T23:06:08.220-07:00</published><updated>2009-08-24T23:06:08.220-07:00</updated><title type='text'>For anyone interested and tracking this thread, I'...</title><content type='html'>For anyone interested and tracking this thread, I&amp;#39;ve posted a follow-up:&lt;br /&gt;&lt;br /&gt;http://blog.brandonbloom.name/2009/08/url-routing-and-views.html</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/1330910410471267912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/1330910410471267912'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1251180368220#c1330910410471267912' title=''/><author><name>Brandon Bloom</name><uri>http://www.blogger.com/profile/16981101182779460140</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10281291373750668260'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-1923239498246064508</id><published>2009-08-24T22:43:23.229-07:00</published><updated>2009-08-24T22:43:23.229-07:00</updated><title type='text'>pylons is great being a framework that allows mixi...</title><content type='html'>pylons is great being a framework that allows mixing and matching libraries. &lt;br /&gt;&lt;br /&gt;My ideal would be &lt;br /&gt;&lt;br /&gt;Werkzeug&lt;br /&gt;Jinja2&lt;br /&gt;SqlAlchemy&lt;br /&gt;Babel&lt;br /&gt;wtforms (FormEncode and htmlfill&amp;#39;s pattern of inserting html is gross)&lt;br /&gt;&lt;br /&gt;I would probably build on Django&amp;#39;s idea of applications and middleware as that&amp;#39;s a good paradigm.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/1923239498246064508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/1923239498246064508'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1251179003229#c1923239498246064508' title=''/><author><name>Ian Lewis</name><uri>http://www.blogger.com/profile/16235834286436870828</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-2160606047928854144</id><published>2009-08-21T00:45:57.084-07:00</published><updated>2009-08-21T00:45:57.084-07:00</updated><title type='text'>This is a subset of the reason for why we made web...</title><content type='html'>This is a subset of the reason for why we made &lt;a href="www.web2py.com" rel="nofollow"&gt;web2py&lt;/a&gt;. Thanks for explaining them so clearly.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/2160606047928854144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/2160606047928854144'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1250840757084#c2160606047928854144' title=''/><author><name>Max</name><uri>http://www.blogger.com/profile/09623275440139063403</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-8714740892157831535</id><published>2009-08-20T18:53:37.639-07:00</published><updated>2009-08-20T18:53:37.639-07:00</updated><title type='text'>I agree, PowerShell is way better than the primiti...</title><content type='html'>I agree, PowerShell is way better than the primitive, DOS style Windows CMD. However, it&amp;#39;s nothing like a normal Unix shell for me... and I&amp;#39;d rather just use cygwin.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1269333104236652268/comments/default/8714740892157831535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/1269333104236652268/comments/default/8714740892157831535'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/04/powershell-condemned-to-reinvent.html?showComment=1250819617639#c8714740892157831535' title=''/><author><name>Howard T. Snidbiscuits</name><uri>http://www.blogger.com/profile/07724989982714067010</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/04/powershell-condemned-to-reinvent.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-1269333104236652268' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/1269333104236652268' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-4787311113708472759</id><published>2009-08-20T12:25:00.174-07:00</published><updated>2009-08-20T12:25:00.174-07:00</updated><title type='text'>http://jng.imagine27.com/articles/2007-07-12-16382...</title><content type='html'>http://jng.imagine27.com/articles/2007-07-12-163820_red-vs-blue.html&lt;br /&gt;&lt;br /&gt;A somewhat dated (and biased) comparison of Python/Django with Ruby/Rails.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/4787311113708472759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/4787311113708472759'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1250796300174#c4787311113708472759' title=''/><author><name>jgrant</name><uri>http://www.blogger.com/profile/06435994789233715181</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-5329188110388773509</id><published>2009-08-20T11:43:08.594-07:00</published><updated>2009-08-20T11:43:08.594-07:00</updated><title type='text'>"Beyond Django's specific weaknesses, I've come to...</title><content type='html'>&lt;i&gt;&amp;quot;Beyond Django&amp;#39;s specific weaknesses, I&amp;#39;ve come to believe that the schema-generative ORMs paradigm is fundamentally flawed.&amp;quot;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I too would like to see some more detail on this.  I maintain a Ruby ORM called DataMapper, and while the API is completely different, it is still declarative.  I prefer the declarative style to ActiveRecord, since I can specify rich types and constraints than I could reflect from a database.  The way I see it, at some point the schema needs to be defined, and I&amp;#39;d rather do it in a richer DSL and have the schema, validation and other constraints generated from that.&lt;br /&gt;&lt;br /&gt;Even so, I&amp;#39;d love to hear a different view point.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/5329188110388773509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/5329188110388773509'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1250793788594#c5329188110388773509' title=''/><author><name>dkubb</name><uri>http://www.blogger.com/profile/11017835890854426894</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-5142817485348166274</id><published>2009-08-20T11:15:29.566-07:00</published><updated>2009-08-20T11:15:29.566-07:00</updated><title type='text'>@Dead Man: I’ll probably publish something about o...</title><content type='html'>@Dead Man: I’ll probably publish something about our approach to URL routing soon. It seems that several people have shown interest in it.&lt;br /&gt;&lt;br /&gt;@ars: Yes, I will probably be writing about declarative ORM layers in the next week or so.&lt;br /&gt;&lt;br /&gt;@Andrew Shultz: We’re not doing a whole lot of automated testing yet. Small helper functions typically have doctests, we’ve got a couple unit tests, and we’re currently playing with Selenium for full tests. I’m much more confident in tests which drive the UI than tests which only poke at the views.&lt;br /&gt;&lt;br /&gt;@proteusguy: I just read that blog entry and will respond to it separately. Again, I’m not bashing Django so much as I am saying we’ve been slowly choosing tools that better fit each need as we identify those needs. Technical feasibility aside, we’ve been looking for a path of least resistance to accomplishing our goals and this post was just to describe them.&lt;br /&gt;&lt;br /&gt;@Alexei: That’s the impression I got too; Django would have had greater longevity on my tool shelf if I needed a highly customizable CMS. I don’t need more flexibility, I need less constraints.&lt;br /&gt;&lt;br /&gt;@RJ Ryan: Like I said about, I’ll try to follow up with more info about our URL routing system. What needs we had and why I felt I had to subvert Django to get them.&lt;br /&gt;&lt;br /&gt;@Shantanu Kumar: There are already too many choices of Python frameworks! :-)&lt;br /&gt;&lt;br /&gt;@Sebastien: Thanks for the PAML link! I’ll take a look at it. As for CleverCSS, I don’t see a need to switch from SASS. We only need Ruby and SASS installed on dev machines, the server only ever works with the compiled CSS.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/5142817485348166274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/5142817485348166274'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1250792129566#c5142817485348166274' title=''/><author><name>Brandon Bloom</name><uri>http://www.blogger.com/profile/16981101182779460140</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10281291373750668260'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-1254172637920333294</id><published>2009-08-20T10:18:04.171-07:00</published><updated>2009-08-20T10:18:04.171-07:00</updated><title type='text'>I use pylons + mako + sqlalchemy and love it</title><content type='html'>I use pylons + mako + sqlalchemy and love it</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/1254172637920333294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/1254172637920333294'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1250788684171#c1254172637920333294' title=''/><author><name>Tony Landis</name><uri>http://www.blogger.com/profile/17327625086350877283</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-8302648301675537485</id><published>2009-08-20T09:17:59.466-07:00</published><updated>2009-08-20T09:17:59.466-07:00</updated><title type='text'>I totally agree with RJ Ryan.  No framework will s...</title><content type='html'>I totally agree with RJ Ryan.  No framework will suit every project, but Django covers a lot of the basics in a way that&amp;#39;s good enough and doesn&amp;#39;t get in the way when I need to extend it.  Still, thanks for telling us why it wasn&amp;#39;t the tool for you.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/8302648301675537485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/8302648301675537485'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1250785079466#c8302648301675537485' title=''/><author><name>Gabriel</name><uri>http://www.blogger.com/profile/11036400756132161716</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4887447608343482497.post-528910964778799538</id><published>2009-08-20T08:58:09.822-07:00</published><updated>2009-08-20T08:58:09.822-07:00</updated><title type='text'>If you're looking for a HAML Python equivalent, th...</title><content type='html'>If you&amp;#39;re looking for a HAML Python equivalent, there is PAML (Pamela) at http://github.com/sebastien/pamela -- also, you can check CleverCSS as a SASS replacement.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/528910964778799538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4887447608343482497/7619874311475185718/comments/default/528910964778799538'/><link rel='alternate' type='text/html' href='http://blog.brandonbloom.name/2009/08/dropping-django.html?showComment=1250783889822#c528910964778799538' title=''/><author><name>Sébastien</name><uri>http://www.blogger.com/profile/05523596449775700316</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.brandonbloom.name/2009/08/dropping-django.html' ref='tag:blogger.com,1999:blog-4887447608343482497.post-7619874311475185718' source='http://www.blogger.com/feeds/4887447608343482497/posts/default/7619874311475185718' type='text/html'/></entry></feed>