<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/1.5" -->
<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/"
>

<channel>
	<title>Going Up</title>
	<link>http://inquirylabs.com/blog2005</link>
	<description>Thoughts on life, programming and growth by Duane Johnson.</description>
	<pubDate>Fri, 10 Feb 2006 23:51:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5</generator>
	<language>en</language>

		<item>
		<title>Easy Resource Management in Rails</title>
		<link>http://inquirylabs.com/blog2005/?p=39</link>
		<comments>http://inquirylabs.com/blog2005/?p=39#comments</comments>
		<pubDate>Fri, 06 Jan 2006 18:46:09 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Code</category>
	<category>Ruby on Rails</category>
		<guid>http://inquirylabs.com/blog2005/?p=39</guid>
		<description><![CDATA[Hot on the heels of my previous announcement, there is now a bundled_resource plugin that takes advantage of all of my previous work in this area at syncPEOPLE, plus some (download).

What's it for?
If your development is in any way similar to mine, there are a number of useful resources out there that make web applications [...]]]></description>
			<content:encoded><![CDATA[	<p>Hot on the heels of my <a href="http://inquirylabs.com/blog/?p=35">previous announcement</a>, there is now a bundled_resource plugin that takes advantage of all of my previous work in this area at <a href="http://syncpeople.com/">syncPEOPLE</a>, plus some (<a href="http://inquirylabs.com/downloads/bundled_resource-0.7.tgz">download</a>).</p>
	<h2>What&#8217;s it for?</h2>
	<p>If your development is in any way similar to mine, there are a number of useful resources out there that make web applications shine beautifully.  For example, there&#8217;s the <a href="http://www.dynarch.com/projects/calendar/">Dynarch calendar</a> and the <a href="http://livsey.org/experiments/textareatools/">textarea tools</a>.  There are a number of others&#8212;too many, in fact.  The problem is that as a web developer, it sometimes takes some real surgery to put each one of these in to an application.  And then when you create a new page that uses these resources (even within the same app), you have to figure out which pieces to cut and paste to get it functional.</p>
	<p>Take the Dynarch calendar, for instance.  There are 4 javascript files, 1 CSS file (among several to choose from), 2 images, several helper methods, and a controller method that you&#8217;ll need in order to get it to work with Rails.  Sometimes it&#8217;s easier just to ignore the calendar bit because it&#8217;s such a pain to set up.</p>
	<h2>How does BundledResource help?</h2>
	<p>But what if it weren&#8217;t a pain?  What if you could write this at the top of your page:<br />
<code>
<pre>
  &lt;% require_bundle :dynarch_calendar %&gt;
</pre>
</code></p>
	<p>And your dynarch calendar would just work?  That&#8217;s what bundled_resource does.</p>
	<p>Now you can use this method:</p>
	<p><code>
<pre>
  dynarch_date_select 'post', 'publish_date'
</pre>
</code></p>
	<p>anywhere on the page, and it&#8217;ll work.  Easy <img src='http://inquirylabs.com/blog2005/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
	<h2>So it looks easy&#8230; what&#8217;s going on?</h2>
	<p>What the bundled_resource plugin does is it keeps all of your resources (javascripts, stylesheets, images) within the plugin&#8217;s directory structure and <i>copies them in to the public folder</i> whenever your app starts.  This is very similar to James Adam&#8217;s technique that he uses with Rails Engines.</p>
	<p>The advantage, of course, is that you don&#8217;t have to worry about copying and pasting files all over the place whenever you want a new bundled_resource.  They all belong together in one little folder inside the plugin.</p>
	<h2>Pre-packaged Bundles</h2>
	<p>Included with this release (0.7) are three bundles: the Dynarch Calendar, Textarea Tools and qForms.  Setting up an app to use them is simple:</p>
	<ol>
	<li>Install <a href="http://inquirylabs.com/downloads/bundled_resource-0.7.tgz">bundled_resource</a></li>
	<li>Add the following two lines to your layout (just like the <a href="http://inquirylabs.com/blog/?p=35">RequireResourceHelper</a>):<br />
<code>
<pre>
  &lt;%= stylesheet_auto_link_tags %&gt;
  &lt;%= javascript_auto_include_tags %&gt;
</pre>
</code></li>
	<li>Add a require_bundle :[bundle name] at the top of your view file.</li>
	<p>For example:<br />
<code>
<pre>
require_bundle :qforms
</pre>
</code></p>
	<p>And that&#8217;s it!  Welcome to Easier Resource Management for Rails.</ol>
]]></content:encoded>
			<wfw:commentRSS>http://inquirylabs.com/blog2005/wp-commentsrss2.php?p=39</wfw:commentRSS>
	</item>
		<item>
		<title>Overriding the Dispatcher to Give User-Friendly Database Errors</title>
		<link>http://inquirylabs.com/blog2005/?p=38</link>
		<comments>http://inquirylabs.com/blog2005/?p=38#comments</comments>
		<pubDate>Thu, 05 Jan 2006 23:05:30 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Ruby on Rails</category>
		<guid>http://inquirylabs.com/blog2005/?p=38</guid>
		<description><![CDATA[One of the design goals of Family Connection is to make it very easy to install as a Rails application.  That includes showing the user what errors are happening even during the installation.


The Problem
So what do I mean by that?  Well, currently, whenever Rails encounters a database error (for example, if your username [...]]]></description>
			<content:encoded><![CDATA[	<p>One of the design goals of <a href="http://familyconnect.rubyforge.org/">Family Connection</a> is to make it very easy to install as a Rails application.  That includes showing the user what errors are happening even during the installation.<br />
<center><img src="http://inquirylabs.com/downloads/database-setup.png"/ style="border: 1px solid #ccc"/></center></p>
	<h2>The Problem</h2>
	<p>So what do I mean by that?  Well, currently, whenever Rails encounters a database error (for example, if your username or password is incorrectly set in the database.yml file, or if the database doesn&#8217;t yet exist) then Rails throws a fit.  In some cases, it doesn&#8217;t even register that an error occurred.  Because the database is loaded dynamically (as a consequence of automatically requiring the models), there&#8217;s no way for a controller to catch the error and display a user-friendly error page.</p>
	<h2>The Solution</h2>
	<p>So here&#8217;s what you do: create a &#8220;Pre-Dispatcher&#8221; that intercepts the CGI requests before the Rails dispatcher gets to do its job.  If everything&#8217;s OK, pass the request on and all is well.  But if there&#8217;s a problem, then render a pre-defined controller and view.</p>
	<h2>Tricky, Tricky</h2>
	<p>How do we do this without actually modifying with the Rails internals?  Can we use a plugin?  Yes and no.  The dispatcher code is actually loaded <b><i>after</i></b> the plugins.  This means we can&#8217;t re-open the class and modify as needed.  Instead, we put a file called &#8220;dispatcher.rb&#8221; in the lib/ folder (or, if we wanted, in a plugin&#8217;s lib/ folder since they are all added to the $LOAD_PATH as well).  It just so happens that this name conflicts with the &#8220;dispatcher.rb&#8221; file that Rails normally loads&#8212;exactly as we want.  Once we&#8217;ve gotten Rails to load our dispatcher file instead, we load the real thing, and then patch it by re-opening the class (<b>yay ruby!</b>) and adding our code.</p>
	<h2>Download</h2>
	<p>You can download the source code to the pre_dispatcher plugin <a href="http://inquirylabs.com/downloads/dispatcher.rb">here</a>.  Just drop it in to your application&#8217;s lib/ folder and it&#8217;ll automatically be loaded by Rails.</p>
	<h2>Caveats</h2>
	<p>First, when a database exception occurs, the controller name that we&#8217;ll use is hard-coded inside that dispatcher file.  I called mine &#8220;DatabaseExceptionController&#8221;.  You can name  yours however you like.</p>
	<p>Second, I couldn&#8217;t seem to get plugins to work within my DatabaseExceptionController.  While not strictly necessary in my case, it was kind of troubling that they wouldn&#8217;t load.  I&#8217;m not sure what the difference is between my dispatcher&#8217;s call to the controller and the regular dispatcher&#8217;s call to other controllers.  If you figure it out, please tell me.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://inquirylabs.com/blog2005/wp-commentsrss2.php?p=38</wfw:commentRSS>
	</item>
		<item>
		<title>Honest, Simple, Solid, True</title>
		<link>http://inquirylabs.com/blog2005/?p=37</link>
		<comments>http://inquirylabs.com/blog2005/?p=37#comments</comments>
		<pubDate>Wed, 04 Jan 2006 18:17:38 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Life</category>
		<guid>http://inquirylabs.com/blog2005/?p=37</guid>
		<description><![CDATA[I've read two of C. Terry Warner's books before and met him in person once.  I can honestly recommend him as one of the most spiritually insightful people I know.

With that said, I must also confess that I haven't yet read the article I'm about to post: my mom sent me the link and [...]]]></description>
			<content:encoded><![CDATA[	<p>I&#8217;ve read two of C. Terry Warner&#8217;s books before and met him in person once.  I can honestly recommend him as one of the most spiritually insightful people I know.</p>
	<p>With that said, I must also confess that I haven&#8217;t yet read the article I&#8217;m about to post: my mom sent me the link and spoke very highly of it.  I&#8217;d like to share it here and then get back to it in a peaceful and reflective moment.</p>
	<p><a href="http://speeches.byu.edu/htmlfiles/Warner_CTerry_01_1996">C. Terry Warner&#8217;s &#8220;Honest, Simple, Solid, True&#8221;</a>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://inquirylabs.com/blog2005/wp-commentsrss2.php?p=37</wfw:commentRSS>
	</item>
		<item>
		<title>Let the Rails Backtrace Take You Right to Textmate</title>
		<link>http://inquirylabs.com/blog2005/?p=36</link>
		<comments>http://inquirylabs.com/blog2005/?p=36#comments</comments>
		<pubDate>Wed, 04 Jan 2006 12:29:46 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Code</category>
	<category>Ruby on Rails</category>
		<guid>http://inquirylabs.com/blog2005/?p=36</guid>
		<description><![CDATA[Whenever a Rails exception occurs, it spits out a backtrace full of filenames and line numbers.  I've often thought, "Wouldn't it be nice if I could just click on one of those and it would take me to the problem?"  Well, it is nice---and you can use this new plugin with TextMate too, [...]]]></description>
			<content:encoded><![CDATA[	<p>Whenever a Rails exception occurs, it spits out a backtrace full of filenames and line numbers.  I&#8217;ve often thought, &#8220;Wouldn&#8217;t it be nice if I could just click on one of those and it would take me to the problem?&#8221;  Well, it <b>is</b> nice&#8212;and you can use this new plugin with TextMate too, if you&#8217;d like.</p>
	<p>The textmate_backtracer plugin (<a href="http://inquirylabs.com/downloads/textmate_backtracer.tgz">download</a>) will make each of the backtrace lines clickable in your browser.  I&#8217;ve tested this with FireFox and Safari.  It&#8217;s not a debugger, but it makes life easier <img src='http://inquirylabs.com/blog2005/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
	<p>To install, just download to your rails app&#8217;s &#8216;plugins&#8217; folder and untar/unzip it.  Then restart your server (webrick or Lighty).  Enjoy!</p>
	<p><b>Update:</b> I&#8217;ve fixed a couple of things in the latest download&#8212;there was some debug info being written to STDERR (now removed), and backtrace lines without a method were not clickable (now clickable).
</p>
]]></content:encoded>
			<wfw:commentRSS>http://inquirylabs.com/blog2005/wp-commentsrss2.php?p=36</wfw:commentRSS>
	</item>
		<item>
		<title>Rails RequireResourceHelper for JS and CSS</title>
		<link>http://inquirylabs.com/blog2005/?p=35</link>
		<comments>http://inquirylabs.com/blog2005/?p=35#comments</comments>
		<pubDate>Tue, 03 Jan 2006 15:01:06 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Ruby on Rails</category>
		<guid>http://inquirylabs.com/blog2005/?p=35</guid>
		<description><![CDATA[A friend of mine recently expressed interest in this code snippet, so I thought I'd send it out to anyone else who's interested.  This module makes it a lot easier to 'require' javascript and cascading stylesheet dependencies inside your views or controllers.  By 'convention', the code will automatically include any javascript or CSS [...]]]></description>
			<content:encoded><![CDATA[	<p>A friend of mine recently expressed interest in this code snippet, so I thought I&#8217;d send it out to anyone else who&#8217;s interested.  This module makes it a lot easier to &#8216;require&#8217; javascript and cascading stylesheet dependencies inside your views or controllers.  By &#8216;convention&#8217;, the code will automatically include any javascript or CSS files whose name matches the current controller&#8217;s name.  In addition, any file named like &#8216;controller_name_action_name.css&#8217; will also be included for specific actions (likewise for JS).  It was inspired by a portion of code I saw from <a href="http://dema.ruby.com.br/">Demetrius Nunes</a>.</p>
	<h1>Usage</h1>
	<p>To use it, put the following in your application.rb:<br />
<code>
<pre>
	class ApplicationController < ActionController::Base
	  helper 'require_resource'
	end
</pre>
</pre>
</code></p>
	<p>Then in your layout&#8217;s HTML &#8220;head&#8221; section:<br />
<code>
<pre>
	< %= stylesheet_auto_link_tags %>
	< %= javascript_auto_include_tags %>
</pre>
</code></p>
	<h1>Example</h1>
	<p>Supposing I am writing an action for WelcomeController called &#8216;index.rhtml&#8217;, (and that each of the files actually exists), I can now assume that this HTML will be present in the layout:</p>
	<p><code>
<pre>
	&lt;script src=\"/javascripts/welcome.js\" type=\"text/javascript\">&lt;/script>
	&lt;script src=\"/javascripts/welcome_index.js\" type=\"text/javascript\">&lt;/script>
	&lt;link href=\"/stylesheets/welcome.css\" media=\"screen\" rel=\"Stylesheet\" type=\"text/css\" />
	&lt;link href=\"/stylesheets/welcome_index.css\" media=\"screen\" rel=\"Stylesheet\" type=\"text/css\" />
</pre>
</code></p>
	<p>Note: Once again, WordPress is adding extra backslashes to the quotes&#8212;they are not in the code itself.  If the files don&#8217;t exist, the above HTML won&#8217;t be included.</p>
	<p>In the case that the CSS or JS is not named &#8216;by convention&#8217; as a file that corresponds with the controller&#8217;s name, I use the &#8220;require_javascript&#8221; code.  In one of my views (index.rhtml, for example):<br />
<code>
<pre>
	< % require_javascript 'popitup' %>
</pre>
</code></p>
	<p>Then, I can call the js function popitup later:<br />
<code>
<pre>
< %= link_to_function \"click me\", \"popitup('#{url_for :action => &#8216;click&#8217;}')&#8221; %>
</pre>
</code></p>
	<h1>The Module</h1>
	<p><b>Update:</b> Since the quotes are getting munged by WP, I&#8217;ve uploaded the source file so you can <a href="http://inquirylabs.com/downloads/require_resource_helper.rb">download it directly</a>.</p>
]]></content:encoded>
			<wfw:commentRSS>http://inquirylabs.com/blog2005/wp-commentsrss2.php?p=35</wfw:commentRSS>
	</item>
		<item>
		<title>How to Install rmagick on Mac OS X</title>
		<link>http://inquirylabs.com/blog2005/?p=34</link>
		<comments>http://inquirylabs.com/blog2005/?p=34#comments</comments>
		<pubDate>Fri, 30 Dec 2005 14:02:39 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Code</category>
		<guid>http://inquirylabs.com/blog2005/?p=34</guid>
		<description><![CDATA[So I did some searching around the net and found this step-by-step guide to installing rmagick on OS X on the RubyForge site.  It fails to mention, however, that there's a much simpler way of doing things now through the ports system:


$ sudo port install rb-rmagick


Special thanks to whoever put together the official rb-rmagick [...]]]></description>
			<content:encoded><![CDATA[	<p>So I did some searching around the net and found <a href="http://rmagick.rubyforge.org/install-osx.html">this step-by-step guide</a> to installing rmagick on OS X on the RubyForge site.  It fails to mention, however, that there&#8217;s a much simpler way of doing things now through the ports system:</p>
	<p><code>
<pre>
$ sudo port install rb-rmagick
</pre>
</code></p>
	<p>Special thanks to whoever put together the <a href="http://rb-rmagick.darwinports.com/">official rb-rmagick darwinports page</a>.  Life is so much easier on Mac OS because of people like you!  <img src='http://inquirylabs.com/blog2005/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
]]></content:encoded>
			<wfw:commentRSS>http://inquirylabs.com/blog2005/wp-commentsrss2.php?p=34</wfw:commentRSS>
	</item>
		<item>
		<title>Moving to Ruby from Java: Here&#8217;s a Great Guide</title>
		<link>http://inquirylabs.com/blog2005/?p=33</link>
		<comments>http://inquirylabs.com/blog2005/?p=33#comments</comments>
		<pubDate>Sun, 25 Dec 2005 21:45:13 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Code</category>
		<guid>http://inquirylabs.com/blog2005/?p=33</guid>
		<description><![CDATA[Just thought I'd post this up for anyone looking to move to Ruby from a Java programming background:

Andrew Glover has written an excellent article at IBM developerWorks on Ruby's terse syntax and intelligent design decisions.  He points out that his article is not a "Ruby on Rails" info packet---to the contrary, it's just pure [...]]]></description>
			<content:encoded><![CDATA[	<p>Just thought I&#8217;d post this up for anyone looking to move to Ruby from a Java programming background:</p>
	<p><a href="http://www-128.ibm.com/developerworks/library/j-ruby/?ca=dgr-lnxw01RubyOffRails#author">Andrew Glover</a> has written <a href="http://www-128.ibm.com/developerworks/library/j-ruby/?ca=dgr-lnxw01RubyOffRails">an excellent article at IBM developerWorks</a> on Ruby&#8217;s terse syntax and intelligent design decisions.  He points out that his article is <i>not</i> a &#8220;Ruby on Rails&#8221; info packet&#8212;to the contrary, it&#8217;s just pure Ruby doing what it does best.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://inquirylabs.com/blog2005/wp-commentsrss2.php?p=33</wfw:commentRSS>
	</item>
		<item>
		<title>Performancing for Firefox is Handy</title>
		<link>http://inquirylabs.com/blog2005/?p=32</link>
		<comments>http://inquirylabs.com/blog2005/?p=32#comments</comments>
		<pubDate>Wed, 21 Dec 2005 10:34:05 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Life</category>
		<guid>http://inquirylabs.com/blog2005/?p=32</guid>
		<description><![CDATA[            Just found out about this fantastic Firefox plugin that lets you blog about a web page while you're visiting the page.&nbsp; Cool!Performancing Firefox: Tabs, Windows and Browsers | Performancing.com   ]]></description>
			<content:encoded><![CDATA[	<p>            Just found out about this fantastic Firefox plugin that lets you blog about a web page <b>while you&#8217;re visiting the page</b>.&nbsp; Cool!</p>
	<p><a href="http://performancing.com/node/485">Performancing Firefox: Tabs, Windows and Browsers | Performancing.com</a> <br /> 
</p>
]]></content:encoded>
			<wfw:commentRSS>http://inquirylabs.com/blog2005/wp-commentsrss2.php?p=32</wfw:commentRSS>
	</item>
		<item>
		<title>Stashing Associated HABTM Objects in Memory</title>
		<link>http://inquirylabs.com/blog2005/?p=31</link>
		<comments>http://inquirylabs.com/blog2005/?p=31#comments</comments>
		<pubDate>Tue, 20 Dec 2005 23:54:23 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Ruby on Rails</category>
		<guid>http://inquirylabs.com/blog2005/?p=31</guid>
		<description><![CDATA[Let's say we have the following has_and_belongs_to_many relationship:


class Contacts < ActiveRecord::Base
  has_and_belongs_to_many :companies
end

class Company < ActiveRecord::Base
  has_and_belongs_to_many :contacts
end


Now, if you create a new contact:

friend = Contact.new

and then add some companies:

friend.companies = [Company.new, Company.new]

you will find that nothing was stored in the database.  On the other hand, if friend is an already-existing object, [...]]]></description>
			<content:encoded><![CDATA[	<p>Let&#8217;s say we have the following has_and_belongs_to_many relationship:</p>
	<p><code>
<pre>
class Contacts < ActiveRecord::Base
  has_and_belongs_to_many :companies
end
	
class Company < ActiveRecord::Base
  has_and_belongs_to_many :contacts
end
</pre>
</pre>
</code></p>
	<p>Now, if you create a new contact:</p>
	<p><code>
<pre>friend = Contact.new</pre>
</code></p>
	<p>and then add some companies:</p>
	<p><code>
<pre>friend.companies = [Company.new, Company.new]</pre>
</code></p>
	<p>you will find that nothing was stored in the database.  On the other hand, if friend is an already-existing object, as in the following example, then the same assignment to <b>companies</b> will result in a save to the database:</p>
	<p><code>
<pre>friend = Contact.find :first
friend.companies = [Company.new, Company.new]</pre>
</code></p>
	<p>In fact, both of those new (and as yet unsaved) company objects are first stored in the database, and then the join table gets two new rows to associate <b>friend</b> with the Company objects.</p>
	<h1>Hmph</h1>
	<p>That&#8217;s not very good if you want to construct associated objects in memory, validate, and <b><i>then</i></b> save them.  After several hours of, well, you can imagine how one feels after several hours of <b>any</b> sort of problem, here&#8217;s a workaround I found:</p>
	<p><code>
<pre>friend = Contact.find :first
new_record_state = friend.instance_variable_get \"@new_record\"
friend.instance_variable_set \"@new_record\", true
friend.companies = [Company.new, Company.new]
friend.instance_variable_set \"@new_record\", new_record_state
</pre>
</code></p>
	<p>This will trick the automated :after_add hook in to thinking that <b>friend</b> is a new object (and thus, has no id).  As a result, the companies will not be saved in the database, even though the association will exist in memory.</p>
	<p>Whew.</p>
]]></content:encoded>
			<wfw:commentRSS>http://inquirylabs.com/blog2005/wp-commentsrss2.php?p=31</wfw:commentRSS>
	</item>
		<item>
		<title>Lessons on Light from Sunday School</title>
		<link>http://inquirylabs.com/blog2005/?p=30</link>
		<comments>http://inquirylabs.com/blog2005/?p=30#comments</comments>
		<pubDate>Sun, 18 Dec 2005 14:43:29 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Scripture</category>
		<guid>http://inquirylabs.com/blog2005/?p=30</guid>
		<description><![CDATA[Lessons on Light from Sunday School]]></description>
			<content:encoded><![CDATA[	<p>Going to church is one of the &#8220;sharpening the saw&#8221; activities in my life that inspire me to be a better person.  Today, I was enlightened by our discussion in Sunday School (specifically, the Priesthood lesson) on the subject of Light, and I&#8217;d like to share a few principles that I learned.</p>
	<h2>Adam Was Given the Breath of Life, not the Light of Life</h2>
	<p>Some of you may have read the story of the Brother of Jared in the Book of Mormon.  In that story, the Brother of Jared seeks to build several primitive &#8220;submarines&#8221; in which he and his people can cross the great deep (probably the Pacific Ocean).  In order to use these underwater vessels, however, he realizes that two things are necessary: air and light.  He prays to the Lord and asks for these things, and the Lord shows him how he will be able to have air throughout the journey.  With regard to the request for light, however, the Lord turns the question back on the Brother of Jared and asks, &#8220;What do you want me to do so that you can have light?&#8221;  In this story is a profound truth: that while we are given breath and physical life freely, it is up to us to seek light&#8212;to ask questions, find truth, and live the best we know how&#8212;to work for it and find it on our own.  God will not grant that to us without a price.</p>
	<h2>Truth Can Be Taught Without the Spirit of Truth</h2>
	<p>In the Doctrine and Covenants (a book of revelations to Joseph Smith) there is an interesting section (#50) in which God tells certain missionaries that they are not to teach truth except by &#8220;the Spirit of Truth.&#8221;  In our Sunday School lesson today, I finally began to understand the significance of this.  Have you ever had the experience of talking with missionaries who are trying to &#8220;convince you&#8221; of the truth?  Or have you been a part of a debate team when you feel so frustrated that the other side doesn&#8217;t &#8220;get it&#8221;?  These situations are examples of truth without the Spirit of Truth.  There may be some good thing that is being shared, but the manner of its communication&#8212;something outside the content of the message itself&#8212;is amiss.  On the other hand, when the Spirit of Truth is present, both the giver and the receiver are &#8220;edified, and rejoice together.&#8221;</p>
	<h2>Truth is Quantum</h2>
	<p>A graduate student in chemistry spoke up during our discussion on Light and drew another interesting analogy between physical light and spirtual light: spiritual light, or &#8220;truth&#8221; is quantum.  Just like modern physics has revealed that physical light comes in packets (light is not a continuous stream), truth comes in packets to our minds.  We have &#8220;revelations&#8221; that suddenly enlighten us and inspire new thoughts.  We learn &#8220;line upon line, precept upon precept.&#8221;</p>
	<h2>Spiritual Growth is Discovering the Source of Indirect Lighting</h2>
	<p>Another member of our class pointed out that we all have spiritual experiences&#8212;it&#8217;s just that some of us, during those moments of revelation, search for the source and become more acquainted with truth.  I thought that was an interesting take on spiritual growth&#8212;rather than paying attention only to the thing that is being lit up, we need to also pay attention to the thing that is doing the lighting.  In this way, our lives will grow brighter and brighter because we can draw nearer to the source of light.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://inquirylabs.com/blog2005/wp-commentsrss2.php?p=30</wfw:commentRSS>
	</item>
	</channel>
</rss>
