<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sense Method Media &#187; ruby on rails</title>
	<atom:link href="http://sensemethodmedia.com/blog/category/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://sensemethodmedia.com/blog</link>
	<description>Design and Development</description>
	<lastBuildDate>Mon, 19 Jan 2009 23:34:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Metaprogramming JavaScript with Prototype</title>
		<link>http://sensemethodmedia.com/blog/2007/04/05/metaprogramming-javascript-with-prototype/</link>
		<comments>http://sensemethodmedia.com/blog/2007/04/05/metaprogramming-javascript-with-prototype/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 06:20:24 +0000</pubDate>
		<dc:creator>mastorna</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://sensemethodmedia.com/2007/04/05/metaprogramming-javascript-with-prototype/</guid>
		<description><![CDATA[Controlling the DOM is everything for a JavaScript coder.  The DOM itself is unruly, like a bull facing a matador.  It doesn&#8217;t like to be tamed, prodded, and definately does like to get told what to do when JavaScript is written poorly.  For most, the DOM wins and the lowely JavaScripter has [...]]]></description>
			<content:encoded><![CDATA[<p>Controlling the <span class="caps">DOM </span>is everything for a JavaScript coder.  The <span class="caps">DOM </span>itself is unruly, like a bull facing a matador.  It doesn&#8217;t like to be tamed, prodded, and definately does like to get told what to do when JavaScript is written poorly.  For most, the <span class="caps">DOM </span>wins and the lowely JavaScripter has little to do but hack up the code and Just Make It Work.  Well, as with anything in life from relationships to a car, just making it work, sucks.  </p>

<p>Several years ago, I was asked to dynamically update select fields (aka dropdown boxes) and conditionally present data based on the  intial select field value.  Simple enough, eh?  A little javascript, a little php, the beginnings of an Ajax app for sure.  While it wasn&#8217;t around at the time, I could have used some Metaprogramming to solve the problem.  In its place, I wrote what I thought at the time was really clean javascript and <span class="caps">PHP </span>to perform the task.  Only now, I know I was wrong all along.  Granted, it worked as a solution and its still running today flawlessly for the client, however, I could have done it better.  Like anyone worth their salt, I&#8217;m a perfectionist and an idealist, which makes for a very very picky programmer.  </p>

<p><a href="http://www.adamlogic.com/">Adamlogic</a> has tweaked prototype to developed an elegant solution to my very problem.  I can&#8217;t believe it, but <a href="http://www.adamlogic.com/wp-content/uploads/2007/03/metaprogramming-javascript.pdf">this is dead sexy</a> [pdf].  Adamlogic&#8217;s usage of prototype to make JavaScript programming solve realworld problems with real world syntax is just so perfect.  </p>

<p>The benefits read like a dream for a programmer who cares:<br />
* Seperate &#8220;What&#8221; From &#8220;How&#8221;<br />
* Reusable<br />
* Self-Documenting (reallly?)<br />
* Easy to Maintain (!)</p>

<p>but the big one is</p>


<ul>
<li>Chain methods together in english language syntax.</li>
</ul>



<p>Stringing methods like this, like passing objects as params to a method, is powerful indeed.  This along could have solved a month of code. </p>

<code>
show('US-state-field').when('country').is('United States');
</code>]]></content:encoded>
			<wfw:commentRss>http://sensemethodmedia.com/blog/2007/04/05/metaprogramming-javascript-with-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Low Pro</title>
		<link>http://sensemethodmedia.com/blog/2006/10/29/low-pro/</link>
		<comments>http://sensemethodmedia.com/blog/2006/10/29/low-pro/#comments</comments>
		<pubDate>Sun, 29 Oct 2006 10:10:22 +0000</pubDate>
		<dc:creator>mastorna</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://sensemethodmedia.com/2006/10/29/low-pro/</guid>
		<description><![CDATA[Hey, you! You use prototype, right?  Don&#8217;t love the event handling?  Checkout Low Pro from Dan Webb.  Plenty of additional functionality and fixes that makes prototype more of a joy.]]></description>
			<content:encoded><![CDATA[<p>Hey, you! You use prototype, right?  Don&#8217;t love the event handling?  Checkout <a href="http://www.danwebb.net/2006/9/3/low-pro-unobtrusive-scripting-for-prototype">Low Pro</a> from Dan Webb.  Plenty of additional functionality and fixes that makes prototype more of a joy.</p>]]></content:encoded>
			<wfw:commentRss>http://sensemethodmedia.com/blog/2006/10/29/low-pro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heavensent: Assembla</title>
		<link>http://sensemethodmedia.com/blog/2006/10/29/heavensent-assembla/</link>
		<comments>http://sensemethodmedia.com/blog/2006/10/29/heavensent-assembla/#comments</comments>
		<pubDate>Sun, 29 Oct 2006 09:42:46 +0000</pubDate>
		<dc:creator>mastorna</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://sensemethodmedia.com/2006/10/29/heavensent-assembla/</guid>
		<description><![CDATA[Any developer worth their salt uses three basic tools:  



Concurrent Versioning
Issue \ Bug Tracking
Project Mgmt Tools




For many, the top choices are Subversion (svn), Trac, and Basecamp, respectively.  I consider these tools to be the holy trinity of professional software development, as they stay out of the way and let you do what you [...]]]></description>
			<content:encoded><![CDATA[<p>Any developer worth their salt uses three basic tools:  </p>


<ol>
<li>Concurrent Versioning</li>
<li>Issue \ Bug Tracking</li>
<li>Project Mgmt Tools</li>
</ol>



<p>For many, the top choices are Subversion (svn), Trac, and Basecamp, respectively.  I consider these tools to be the holy trinity of professional software development, as they stay out of the way and let you do what you need to do.  The best of breed tools these might be, but the only one that does it right is Basecamp.  Why?  Cause they make it pleasently easy to setup and use.  Its all hosted for you, so the pain of installation and configuration is taken away.  </p>

<p>For ease of use, including the install and config process, the other tools fall woefully short. I&#8217;ve had <em>issues</em> with installing svn and trac, to say the least.  From misconfigured swig files to faulty apache configurations, I was becoming bald by pulling out my hair.  Trac is especially hidious to install and configure (mostly configure), whereas svn slightly less unnerving, yet both tools are so complelling in the open source community that they&#8217;ve quickly become a defacto standard for software developers.  </p>

<p>With the obvious large audience in hand, it saddens me that the developers of these tools don&#8217;t really do much in the way to ease the the install\config process.  For example, Trac has just released their 0.10 release with minimal documentation on upgrading or fresh installation.  </p>

<p>Frustrated as I was, I was thrilled to find <a href="http://www.assembla.com/search/home">Assembla</a>, a group of developers that collect these rouge best of breed tools and allow you to use them in a hosted platform, ala Basecamp.  Config? Nope. Cost? Nada.  Just sign up, send invites to your teammates, and you&#8217;ve got yourself svn and trac ramped up and ready to go.  </p>

<p>So what&#8217;s the catch? From what I&#8217;ve gathered thus far, I cannot find a fault.  The service is build around a Ruby on Rails mgmt web app, with features that tie directly into your totally configurable install of trac\svn.  Want typo? Its there too!  Will this stick around is the the big question?   New companies and projects come and go faster than you can say web2.0.  Security, above all else, is the primary concern.  Again, they seem to have it locked down.  Trac is setup with .htpasswd apache files, so you&#8217;ve got auth for trac. They could do more to support sensitve areas by serving up under https.  For now, I&#8217;m going to get started on trac&#8217;ing my bugs, which is all I wanted to do in the first place.</p>

<p>Overall, assembla is a godsend.</p>]]></content:encoded>
			<wfw:commentRss>http://sensemethodmedia.com/blog/2006/10/29/heavensent-assembla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dear Trac and Subversion,</title>
		<link>http://sensemethodmedia.com/blog/2006/08/30/dear-trac-and-subversion/</link>
		<comments>http://sensemethodmedia.com/blog/2006/08/30/dear-trac-and-subversion/#comments</comments>
		<pubDate>Thu, 31 Aug 2006 05:04:00 +0000</pubDate>
		<dc:creator>mastorna</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://sensemethodmedia.com/2006/08/30/dear-trac-and-subversion/</guid>
		<description><![CDATA[Your installation process is horrific.  Your documentation is vague and obtuse, leaving out details that are vital to properly implementing your software.  Generally, you&#8217;ve made my day a nightmare and I don&#8217;t like you for it.  I have a good feeling its blind luck that some get their repos working properly, cause [...]]]></description>
			<content:encoded><![CDATA[<p>Your installation process is horrific.  Your documentation is vague and obtuse, leaving out details that are vital to properly implementing your software.  Generally, you&#8217;ve made my day a nightmare and I don&#8217;t like you for it.  I have a good feeling its blind luck that some get their repos working properly, cause your documentation fails miserably.</p>

<p>signed,<br />
average user.</p>]]></content:encoded>
			<wfw:commentRss>http://sensemethodmedia.com/blog/2006/08/30/dear-trac-and-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

