<?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: When Rails Fails</title>
	<atom:link href="http://zef.me/2308/when-rails-fails/feed" rel="self" type="application/rss+xml" />
	<link>http://zef.me/2308/when-rails-fails</link>
	<description>Technology, Me, You.</description>
	<lastBuildDate>Wed, 10 Mar 2010 23:14:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Models are Programs &#171; I am Zef</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3541</link>
		<dc:creator>Models are Programs &#171; I am Zef</dc:creator>
		<pubDate>Mon, 30 Nov 2009 10:12:20 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3541</guid>
		<description>&lt;p&gt;[...] patterns and was able to capture them in a little library we like to call Ruby on Rails, and sure, it&#8217;s not perfect, but it seems to dramatically improve developers&#8217; productivity. Is Rails a new idea, though? [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] patterns and was able to capture them in a little library we like to call Ruby on Rails, and sure, it&#8217;s not perfect, but it seems to dramatically improve developers&#8217; productivity. Is Rails a new idea, though? [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Lenary</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3535</link>
		<dc:creator>Lenary</dc:creator>
		<pubDate>Tue, 24 Nov 2009 02:47:27 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3535</guid>
		<description>&lt;p&gt;Jesse, it remains that you should test everything that is &#039;game-breaking&#039;. If a peice of javascript is a &#039;game-breaker&#039;, write some Behaviour Tests that run in something like selenium so that can simulate and test the javascript correctly. &lt;br&gt;&lt;br&gt;If you are only relying on doing a once-through of the app for your testing, especially for &#039;game-breaking&#039; logic and behaviour, you only have yourself to blame. There are many good and viable BDD tools avaliable, as well as normal TDD. (I&#039;m not sure if conventional TDD will cover this particular behaviour)&lt;br&gt;&lt;br&gt;I am almost 100% sure there will be tutorials online for getting selenium setup, or you can find help on &lt;a href=&quot;http://stackoverflow.com&quot; rel=&quot;nofollow&quot;&gt;stackoverflow.com&lt;/a&gt; or irc as you see fit.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Jesse, it remains that you should test everything that is &#39;game-breaking&#39;. If a peice of javascript is a &#39;game-breaker&#39;, write some Behaviour Tests that run in something like selenium so that can simulate and test the javascript correctly. <br /><br />If you are only relying on doing a once-through of the app for your testing, especially for &#39;game-breaking&#39; logic and behaviour, you only have yourself to blame. There are many good and viable BDD tools avaliable, as well as normal TDD. (I&#39;m not sure if conventional TDD will cover this particular behaviour)<br /><br />I am almost 100% sure there will be tutorials online for getting selenium setup, or you can find help on <a href="http://stackoverflow.com" rel="nofollow">stackoverflow.com</a> or irc as you see fit.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: pradkris</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3504</link>
		<dc:creator>pradkris</dc:creator>
		<pubDate>Wed, 18 Nov 2009 02:23:13 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3504</guid>
		<description>&lt;p&gt;Thanks for your valuable comments. I personally feel the author is explaining about improving error messages and not trying to reach the community for help. I mean trying to debug a typo should not take a longer time like posting on SO, etc. Also in a team setup or a large scale system you might sometimes wonder if there is actually a class with name homme.. This is jus my humble opinion.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks for your valuable comments. I personally feel the author is explaining about improving error messages and not trying to reach the community for help. I mean trying to debug a typo should not take a longer time like posting on SO, etc. Also in a team setup or a large scale system you might sometimes wonder if there is actually a class with name homme.. This is jus my humble opinion.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: pradkris</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3490</link>
		<dc:creator>pradkris</dc:creator>
		<pubDate>Wed, 18 Nov 2009 01:23:13 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3490</guid>
		<description>&lt;p&gt;Thanks for your valuable comments. I personally feel the author is explaining about improving error messages and not trying to reach the community for help. I mean trying to debug a typo should not take a longer time like posting on SO, etc. Also in a team setup or a large scale system you might sometimes wonder if there is actually a class with name homme.. This is jus my humble opinion.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks for your valuable comments. I personally feel the author is explaining about improving error messages and not trying to reach the community for help. I mean trying to debug a typo should not take a longer time like posting on SO, etc. Also in a team setup or a large scale system you might sometimes wonder if there is actually a class with name homme.. This is jus my humble opinion.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: When Scala DSLs Fail &#171; I am Zef</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3485</link>
		<dc:creator>When Scala DSLs Fail &#171; I am Zef</dc:creator>
		<pubDate>Tue, 17 Nov 2009 11:16:59 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3485</guid>
		<description>&lt;p&gt;[...] in its XML-based language for constructing user interfaces. I won&#8217;t milk this one too much, we know the trick by now, but let me demonstrate what happens when a programmer makes mistakes in [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] in its XML-based language for constructing user interfaces. I won&#8217;t milk this one too much, we know the trick by now, but let me demonstrate what happens when a programmer makes mistakes in [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Framework Failures for Beginners &#124; Thought Clusters</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3484</link>
		<dc:creator>Framework Failures for Beginners &#124; Thought Clusters</dc:creator>
		<pubDate>Tue, 17 Nov 2009 11:04:00 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3484</guid>
		<description>&lt;p&gt;[...] Hemel writes about the inscrutable error messages that he gets when making typos in Ruby on Rails, Scala and JBoss Seam. I recently saw a new programmer struggle with the RoR errors and I have been [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] Hemel writes about the inscrutable error messages that he gets when making typos in Ruby on Rails, Scala and JBoss Seam. I recently saw a new programmer struggle with the RoR errors and I have been [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: The Third Bit &#187; Blog Archive &#187; Bend It &#8216;Til It Breaks</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3474</link>
		<dc:creator>The Third Bit &#187; Blog Archive &#187; Bend It &#8216;Til It Breaks</dc:creator>
		<pubDate>Mon, 16 Nov 2009 14:18:21 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3474</guid>
		<description>&lt;p&gt;[...] It&#8217;s not the only approach, but it&#8217;s the one Zef Hemel took with Ruby on Rails. In his original post, he took a critical look at how helpful Rails is when a developer mistypes something. A lot of [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] It&#8217;s not the only approach, but it&#8217;s the one Zef Hemel took with Ruby on Rails. In his original post, he took a critical look at how helpful Rails is when a developer mistypes something. A lot of [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Static Verification: An External DSL Advantage &#171; I am Zef</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3471</link>
		<dc:creator>Static Verification: An External DSL Advantage &#171; I am Zef</dc:creator>
		<pubDate>Mon, 16 Nov 2009 11:17:24 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3471</guid>
		<description>&lt;p&gt;[...] through the use of meta programming facilities, looks a lot like a domain-specific language. I looked at Ruby on Rails as a prime example of an internal DSL built on a dynamic language, at JBoss Seam as a framework [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] through the use of meta programming facilities, looks a lot like a domain-specific language. I looked at Ruby on Rails as a prime example of an internal DSL built on a dynamic language, at JBoss Seam as a framework [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Jesse Dailey</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3422</link>
		<dc:creator>Jesse Dailey</dc:creator>
		<pubDate>Thu, 12 Nov 2009 21:52:21 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3422</guid>
		<description>&lt;p&gt;Engineering explanations aside, the fact remains that #4 is a game-breaking, absolutely should never happen, serious flaw in a web application.  To dismiss it as &#039;you should notice&#039;, is like saying, if you want to code with Rails, &#039;hire more testers&#039;.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Engineering explanations aside, the fact remains that #4 is a game-breaking, absolutely should never happen, serious flaw in a web application.  To dismiss it as &#39;you should notice&#39;, is like saying, if you want to code with Rails, &#39;hire more testers&#39;.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Geraldo</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3421</link>
		<dc:creator>Geraldo</dc:creator>
		<pubDate>Thu, 12 Nov 2009 21:41:20 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3421</guid>
		<description>&lt;p&gt;Ryan Bigg  don&#039;t worry. Your advice is going to be useful coz the site is indexed.&lt;br&gt;One sign that rails got there is the amount of bashing it gets.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Ryan Bigg  don&#39;t worry. Your advice is going to be useful coz the site is indexed.<br />One sign that rails got there is the amount of bashing it gets.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: jgodse</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3418</link>
		<dc:creator>jgodse</dc:creator>
		<pubDate>Thu, 12 Nov 2009 20:18:29 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3418</guid>
		<description>&lt;p&gt;Let&#039;s see. &lt;br&gt;&lt;br&gt;1) When you used &quot;homme&quot;, it was an unknown symbol. Same as making a typo in C. Granted, in Rails, you have to know that &quot;HommeController&quot; is the Ruby class associated with &quot;homme&quot;. However, it is not vastly different from figuring out name mangling when you debug a C++ linking problem. &lt;br&gt;2) Because Ruby is interpreted, the interpreter cannot say if a symbol should not be there. :controler may be a valid symbol. This program failed because a required symbol :controller was not defined. &lt;br&gt;3) I agree with you on this one. &lt;br&gt;4) Because Rails is interpreted, it cannot say if :confrm is required. Furthermore, I don&#039;t think that HTML requires the &quot;confirm&quot; attribute, so the Ruby wrapper cannot require it either. If you were coding straight HTML, you would have the same problem. &lt;br&gt;5) This is a huge problem in Rails. The underlying issue is that ActiveRecord is actually only partially coupled to the underlying data model. (This is good because it allows easier interfacing with legacy data schemas). That is why you have to write migrations separately and keep them in sync with the attributes in ActiveRecord. Keeping knowledge of the data schema in two places is a bit of a kludge, but I&#039;m not sure how to fix it without forcing all data definitions to reside in one place such as ActiveRecord. &lt;br&gt;6) This is not a huge problem. Although Rails is flexible in which MIME types it supports, it should generate some kind of warning if the format is not well-known (such as html, xml, json, text). The lower-case uppercase thing is there for visual &quot;beauty&quot; I think, but it throws off people trying to parse error messages. &lt;br&gt;7) Rails is pretty powerful when it comes to naming conventions. However, I find it confusing when one is able to create objects by passing params[:post] and not even knowing what was passed in. Also, if you try to include other parameters on your form, it is hard to get them in using the Rails naming convention, and you are effectively back to coding raw HTML forms. I find that doing a &quot;view source&quot; on the form page will quickly tell me what Rails generated as parameter names. &lt;br&gt;&lt;br&gt;Rails is very powerful, but in some places the abstractions leak and you need to know how it works under the hood. Overall, I find that Rails abstractions and &quot;convention over configuration&quot; let me get a system up &amp; running quickly. When I was working with Perl/CGI, I had to understand raw HTML forms, and when I was with ASP.Net, I had to learn that framework (which IMHO is much more cryptic than Rails or Perl/CGI).&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Let&#39;s see. <br /><br />1) When you used &#8220;homme&#8221;, it was an unknown symbol. Same as making a typo in C. Granted, in Rails, you have to know that &#8220;HommeController&#8221; is the Ruby class associated with &#8220;homme&#8221;. However, it is not vastly different from figuring out name mangling when you debug a C++ linking problem. <br />2) Because Ruby is interpreted, the interpreter cannot say if a symbol should not be there. :controler may be a valid symbol. This program failed because a required symbol :controller was not defined. <br />3) I agree with you on this one. <br />4) Because Rails is interpreted, it cannot say if :confrm is required. Furthermore, I don&#39;t think that HTML requires the &#8220;confirm&#8221; attribute, so the Ruby wrapper cannot require it either. If you were coding straight HTML, you would have the same problem. <br />5) This is a huge problem in Rails. The underlying issue is that ActiveRecord is actually only partially coupled to the underlying data model. (This is good because it allows easier interfacing with legacy data schemas). That is why you have to write migrations separately and keep them in sync with the attributes in ActiveRecord. Keeping knowledge of the data schema in two places is a bit of a kludge, but I&#39;m not sure how to fix it without forcing all data definitions to reside in one place such as ActiveRecord. <br />6) This is not a huge problem. Although Rails is flexible in which MIME types it supports, it should generate some kind of warning if the format is not well-known (such as html, xml, json, text). The lower-case uppercase thing is there for visual &#8220;beauty&#8221; I think, but it throws off people trying to parse error messages. <br />7) Rails is pretty powerful when it comes to naming conventions. However, I find it confusing when one is able to create objects by passing params[:post] and not even knowing what was passed in. Also, if you try to include other parameters on your form, it is hard to get them in using the Rails naming convention, and you are effectively back to coding raw HTML forms. I find that doing a &#8220;view source&#8221; on the form page will quickly tell me what Rails generated as parameter names. <br /><br />Rails is very powerful, but in some places the abstractions leak and you need to know how it works under the hood. Overall, I find that Rails abstractions and &#8220;convention over configuration&#8221; let me get a system up &amp; running quickly. When I was working with Perl/CGI, I had to understand raw HTML forms, and when I was with ASP.Net, I had to learn that framework (which IMHO is much more cryptic than Rails or Perl/CGI).</p>]]></content:encoded>
	</item>
	<item>
		<title>By: luigimontanez</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3414</link>
		<dc:creator>luigimontanez</dc:creator>
		<pubDate>Thu, 12 Nov 2009 19:09:34 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3414</guid>
		<description>&lt;p&gt;Ryan, thanks for taking the time to craft a well-explained, reasonable response. Nice job.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Ryan, thanks for taking the time to craft a well-explained, reasonable response. Nice job.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: voidspace</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3412</link>
		<dc:creator>voidspace</dc:creator>
		<pubDate>Thu, 12 Nov 2009 18:52:10 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3412</guid>
		<description>&lt;p&gt;My goodness, the Rails crowd doesn&#039;t like &lt;em&gt;any&lt;/em&gt; criticism does it. :-)&lt;br&gt;&lt;br&gt;Nice post. Any framework developer should consider error handling part of the API.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>My goodness, the Rails crowd doesn&#39;t like <em>any</em> criticism does it. :-)<br /><br />Nice post. Any framework developer should consider error handling part of the API.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: none</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3410</link>
		<dc:creator>none</dc:creator>
		<pubDate>Thu, 12 Nov 2009 17:31:36 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3410</guid>
		<description>&lt;p&gt;&lt;em&gt;lol&lt;/em&gt; &lt;br&gt;&lt;br&gt;you are a pathetic loser to even waste your time to write such a post. very funny! that really made my day.&lt;br&gt;&lt;br&gt;and good luck with webdsl.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p><em>lol</em> <br /><br />you are a pathetic loser to even waste your time to write such a post. very funny! that really made my day.<br /><br />and good luck with webdsl.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: pk</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3402</link>
		<dc:creator>pk</dc:creator>
		<pubDate>Thu, 12 Nov 2009 14:17:58 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3402</guid>
		<description>&lt;p&gt;Hi Zoltan,&lt;br&gt;&lt;br&gt; This is so true. I did couple of web projects and when started with third one was frustrated so much rework needs to be done. Rails solves these problems. When you have done some website you know typical things needed and RoR provides them out of factory. You don&#039;t need to reinvent the wheel.&lt;br&gt; &lt;br&gt;  Price of using such framework always comes at cost you don&#039;t understand all the code that goes into framework. This is true with any kind of framework be it RoR, DJango or PHP MVC. As long as you know how to fix issues with framework or can find answers to them on a well supported forum using a framework should not be issue at all. RoR is one of the best community supported frameworks I have come across.&lt;br&gt;&lt;br&gt;PK&lt;br&gt;&lt;a href=&quot;http://roorky.com&quot; rel=&quot;nofollow&quot;&gt;http://roorky.com&lt;/a&gt;&lt;br&gt;Interactive Programming Books&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi Zoltan,<br /><br /> This is so true. I did couple of web projects and when started with third one was frustrated so much rework needs to be done. Rails solves these problems. When you have done some website you know typical things needed and RoR provides them out of factory. You don&#39;t need to reinvent the wheel.<br /> <br />  Price of using such framework always comes at cost you don&#39;t understand all the code that goes into framework. This is true with any kind of framework be it RoR, DJango or PHP MVC. As long as you know how to fix issues with framework or can find answers to them on a well supported forum using a framework should not be issue at all. RoR is one of the best community supported frameworks I have come across.<br /><br />PK<br /><a href="http://roorky.com" rel="nofollow">http://roorky.com</a><br />Interactive Programming Books</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Giles Bowkett</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3398</link>
		<dc:creator>Giles Bowkett</dc:creator>
		<pubDate>Thu, 12 Nov 2009 12:42:58 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3398</guid>
		<description>&lt;p&gt;Wrong. It&#039;s not the framework&#039;s job to do anything. Rails isn&#039;t for lazy people. If you want an error-checking system, you build one.&lt;br&gt;&lt;br&gt;That would be a ridiculously easy Rails plugin. Just use the ruby2ruby library and grep it.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Wrong. It&#39;s not the framework&#39;s job to do anything. Rails isn&#39;t for lazy people. If you want an error-checking system, you build one.<br /><br />That would be a ridiculously easy Rails plugin. Just use the ruby2ruby library and grep it.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Zef Hemel</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3397</link>
		<dc:creator>Zef Hemel</dc:creator>
		<pubDate>Thu, 12 Nov 2009 11:34:23 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3397</guid>
		<description>&lt;p&gt;For all those offering their help and tips on how to debug Rails programs, I thank you. However, I&#039;m not a struggling Rails developer. I look at Rails because we are developing a Rails competitor called WebDSL (&lt;a href=&quot;http://www.webdsl.org&quot; rel=&quot;nofollow&quot;&gt;http://www.webdsl.org&lt;/a&gt;). One problem that we try to solve is the lack of static analysis that many frameworks, like Rails, have. To point out that this indeed a problem, I&#039;m writing a series of posts like this one.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>For all those offering their help and tips on how to debug Rails programs, I thank you. However, I&#39;m not a struggling Rails developer. I look at Rails because we are developing a Rails competitor called WebDSL (<a href="http://www.webdsl.org" rel="nofollow">http://www.webdsl.org</a>). One problem that we try to solve is the lack of static analysis that many frameworks, like Rails, have. To point out that this indeed a problem, I&#39;m writing a series of posts like this one.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: When JBoss Seam Fails &#171; I am Zef</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3405</link>
		<dc:creator>When JBoss Seam Fails &#171; I am Zef</dc:creator>
		<pubDate>Thu, 12 Nov 2009 10:51:40 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3405</guid>
		<description>&lt;p&gt;[...] I wrote about Ruby on Rails and what happens when programmers make common (typing) mistakes in their programs. It seems to have [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] I wrote about Ruby on Rails and what happens when programmers make common (typing) mistakes in their programs. It seems to have [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Edward Ocampo-Gooding</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3396</link>
		<dc:creator>Edward Ocampo-Gooding</dc:creator>
		<pubDate>Thu, 12 Nov 2009 10:27:45 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3396</guid>
		<description>&lt;p&gt;Hi Zef,&lt;br&gt;&lt;br&gt;I agree with your sentiment – watching beginners work with Rails make typos and become unaware of how/when they made a mistake can be frustrating.&lt;br&gt;&lt;br&gt;What often happens is that beginners learn to recognize these fairly opaque errors and later dig a little deeper to realize what’s actually going on, along with picking up other web development debugging techniques like Firefox’s Firebug, or Safari’s Inspector where you can look at the requests and responses.&lt;br&gt;&lt;br&gt;It’d sure be nice if there were better stack traces and more transparent errors. Do you have some ideas about how you’d patch things or redesign the various DSLs Rails uses to accommodate newer web developers apart from static analysis?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi Zef,<br /><br />I agree with your sentiment – watching beginners work with Rails make typos and become unaware of how/when they made a mistake can be frustrating.<br /><br />What often happens is that beginners learn to recognize these fairly opaque errors and later dig a little deeper to realize what’s actually going on, along with picking up other web development debugging techniques like Firefox’s Firebug, or Safari’s Inspector where you can look at the requests and responses.<br /><br />It’d sure be nice if there were better stack traces and more transparent errors. Do you have some ideas about how you’d patch things or redesign the various DSLs Rails uses to accommodate newer web developers apart from static analysis?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: dasil003</title>
		<link>http://zef.me/2308/when-rails-fails/comment-page-1#comment-3395</link>
		<dc:creator>dasil003</dc:creator>
		<pubDate>Thu, 12 Nov 2009 09:20:53 +0000</pubDate>
		<guid isPermaLink="false">http://zef.me/?p=2308#comment-3395</guid>
		<description>&lt;p&gt;This is so true.  It all started with the infamous 15 minute blog video from DHH back in &#039;04.  That pretty much guaranteed that for the rest of time the uninitiated would think of Rails as a super-easy toy framework for programming lightweights.&lt;br&gt;&lt;br&gt;But the reality is that Rails is hardcore Ruby–some of it very ill-advised Ruby for any project less ubiquitous than Rails–and it&#039;s written for serious web programmers.  Unlike say PHP where you can muddle through a lot of applications without much training, writing any non-trivial app in Rails is going to through some curveballs your way.  If you&#039;re not willing to roll up your sleeves and learn the finer points of Ruby meta-programming then all your productivity gains in Rails are going to be nullified the first time you see a weird error message (which happens frequently, especially before you are familiar with the language).&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>This is so true.  It all started with the infamous 15 minute blog video from DHH back in &#39;04.  That pretty much guaranteed that for the rest of time the uninitiated would think of Rails as a super-easy toy framework for programming lightweights.<br /><br />But the reality is that Rails is hardcore Ruby–some of it very ill-advised Ruby for any project less ubiquitous than Rails–and it&#39;s written for serious web programmers.  Unlike say PHP where you can muddle through a lot of applications without much training, writing any non-trivial app in Rails is going to through some curveballs your way.  If you&#39;re not willing to roll up your sleeves and learn the finer points of Ruby meta-programming then all your productivity gains in Rails are going to be nullified the first time you see a weird error message (which happens frequently, especially before you are familiar with the language).</p>]]></content:encoded>
	</item>
</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->