<?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/"
	>

<channel>
	<title>Aeonscope &#187; Software</title>
	<atom:link href="http://www.aeonscope.net/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aeonscope.net</link>
	<description>A view of time.</description>
	<pubDate>Sun, 14 Mar 2010 13:56:06 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Gearing up for Rails 3.0</title>
		<link>http://www.aeonscope.net/2010/02/08/gearing-up-for-rails-30/</link>
		<comments>http://www.aeonscope.net/2010/02/08/gearing-up-for-rails-30/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 13:08:39 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2815</guid>
		<description><![CDATA[
As full release of Ruby on Rails 3.0 draws near, I find myself collecting news, articles, and preparing myself for the transition. Here is what I&#8217;ve been reading so far:

Reading material.
Introduction.
Approaching the upgrade.
Getting up to speed.
Upgrading to Rails 3.
Automating a portion of the Rails 3 upgrade process with the rails-upgrade gem.
Revamped Routes.
Render Options.
Active Record Query [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/ruby/rails.png" alt="Ruby on Rails"/></center></p>
<p>As full release of Ruby on Rails 3.0 draws near, I find myself collecting news, articles, and preparing myself for the transition. Here is what I&#8217;ve been reading so far:</p>
<ul>
<li><a href="http://mediumexposure.com/rails-3-reading-material/?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+mediumexposure+%28mediumexposure%29">Reading material</a>.</li>
<li><a href="http://omgbloglol.com/post/344792822/the-path-to-rails-3-introduction">Introduction</a>.</li>
<li><a href="http://omgbloglol.com/post/353978923/the-path-to-rails-3-approaching-the-upgrade">Approaching the upgrade</a>.</li>
<li><a href="http://darwinweb.net/articles/82">Getting up to speed</a>.</li>
<li><a href="http://rails3.community-tracker.com/permalinks/5/notes-from-the-field-upgrading-to-rails-3">Upgrading to Rails 3</a>.</li>
<li><a href="http://omgbloglol.com/post/359147788/rails-upgrade-automating-a-portion-of-the-rails-3">Automating a portion of the Rails 3 upgrade process with the rails-upgrade gem</a>.</li>
<li><a href="http://rizwanreza.com/2009/12/20/revamped-routes-in-rails-3">Revamped Routes</a>.</li>
<li><a href="http://www.engineyard.com/blog/2010/render-options-in-rails-3/">Render Options</a>.</li>
<li><a href="http://m.onkey.org/2010/1/22/active-record-query-interface">Active Record Query Interface</a>.</li>
<li><a href="http://lindsaar.net/2010/1/26/new-actionmailer-api-in-rails-3">Understanding the ActionMailer API</a>.</li>
<li><a href="http://yehudakatz.com/2009/12/20/generic-actions-in-rails-3/">Generic Actions</a>.</li>
<li><a href="http://litanyagainstfear.com/blog/2010/02/03/the-rails-module/">The Rails Module</a>.</li>
<li><a href="http://blog.plataformatec.com.br/2010/01/discovering-rails-3-generators/">Discovering Rails 3 generators</a>.</li>
<li><a href="http://lindsaar.net/2010/1/31/validates_rails_3_awesome_is_true">Validations</a>.</li>
<li><a href="http://blog.plataformatec.com.br/2010/02/rails-3-i18n-changes/">I18n changes</a>.</li>
<li><a href="http://m.onkey.org/2010/2/5/signed-and-permanent-cookies-in-rails-3">Signed and Permanent cookies</a>.</li>
<li><a href="http://omgbloglol.com/post/371893012/the-path-to-rails-3-greenfielding-new-apps-with-the">Creating new apps with the Rails 3 beta</a>.</li>
<li><a href="http://railsplugins.org">Gem and Plugin Compatibility Checker</a>.</li>
</ul>
<p>I&#8217;m sure I&#8217;ll collect more as time rolls on. BTW, you can find these links and more on my <a href="http://www.aeonscope.net/software/development/ruby/">Ruby page</a> where I continue to capture useful Ruby information.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2010/02/08/gearing-up-for-rails-30/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Firefox 3.6 Extensions</title>
		<link>http://www.aeonscope.net/2010/01/25/firefox-36-extensions/</link>
		<comments>http://www.aeonscope.net/2010/01/25/firefox-36-extensions/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 13:10:47 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2683</guid>
		<description><![CDATA[
So Firefox 3.6 has been released and is ready for download. With it comes the challenge of determining whether some of your favorite extensions still work and, if not, what the alternatives are. Luckily, in my case, this version release didn&#8217;t cause too much trouble. Here are a few issues I ran into along with [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center"><a href="http://www.mozilla.com/firefox/"><img alt="Firefox Logo" id="image143" src="http://www.aeonscope.net/wp-content/uploads/2006/08/firefox-logo.gif" /></a></div>
<p>So <a title="Firefox" href="http://www.mozilla.com/firefox/">Firefox</a> 3.6 has been released and is ready for download. With it comes the challenge of determining whether some of your favorite extensions still work and, if not, what the alternatives are. Luckily, in my case, this version release didn&#8217;t cause too much trouble. Here are a few issues I ran into along with their solutions in case it is of interest:</p>
<ol>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/6639">Easy Drag and Go</a> - I really love the ease of being able to drag links on any page and have them open in a background tab. Unfortunately, this extension no longer works. The equivalent is <a href="https://addons.mozilla.org/en-US/firefox/addon/6912">QuickDrag</a>.</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/9505">Obtrusive JavaScript Checker</a> - I really hate obtrusive JavaScript code. It is bad coding practice, a maintenance nightmare, and truly ugly code to read. This tool helps detect and quickly flag web pages that are bad. Unfortunately, this extension has been broken for some time. The alternative is the <a href="https://addons.mozilla.org/en-US/firefox/addon/9641">Inline Code Finder</a> extension for Firebug which is a much better solution overall.</li>
<li><a href="http://www.sitepoint.com/dustmeselectors/">Dust-Me Selectors</a> - This was a cool tool for detecting what CSS code is being used or not used on a web page. I like having it around to keep my CSS code tight. The equivalent to this tool is <a href="https://addons.mozilla.org/en-US/firefox/addon/10704">CSS Usage</a> (a Firebug extension).</li>
</ol>
<p>For a list of all my favorite Firefox extensions or Firefox related info in general, check out my <a href="http://www.aeonscope.net/software/applications/firefox/">Firefox page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2010/01/25/firefox-36-extensions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Combining PDFs with Automator</title>
		<link>http://www.aeonscope.net/2009/10/19/combining-pdfs-with-automator/</link>
		<comments>http://www.aeonscope.net/2009/10/19/combining-pdfs-with-automator/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 13:17:34 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2476</guid>
		<description><![CDATA[
I have a Canon PIXMA MP470 device. It&#8217;s a decent printer that doubles as a scanner. The device is perfect for my needs although I would argue that it eats printer ink a little faster than I&#8217;d like. Then again, I got it for free, so I can&#8217;t complain too much (well if you don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/wp-content/uploads/2009/10/automator.png" alt="Automator Icon" title="Automator Icon" width="88" height="88" class="alignnone size-full wp-image-2477" /></center></p>
<p>I have a <a href="http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&#038;fcategoryid=2610&#038;modelid=15403">Canon PIXMA MP470</a> device. It&#8217;s a decent printer that doubles as a scanner. The device is perfect for my needs although I would argue that it eats printer ink a little faster than I&#8217;d like. Then again, I got it for free, so I can&#8217;t complain too much (well if you don&#8217;t calculate the long term cost of printer ink over time).</p>
<p>In the past, I used proprietary software that came with the device to scan documents. For printing support, I could easily detect and attach to the printer via <a href="http://www.apple.com/support/bonjour/">Bonjour</a> (as the device is plugged into an Apple Airport so all machines on the network can use it). In the case of scanning, I would have to attach the USB cable directly to my computer. There might be a way to do this via Bonjour but that eludes me at the moment.</p>
<p>Recently, I upgraded to <a href="http://www.aeonscope.net/2009/09/21/mac-os-x-106x-snow-leopard-applications/">Snow Leopard</a> and discovered that I could scan documents using the native Image Capture application. Perhaps, you could do this in Leopard too? Anyway, this allowed me to no longer require installing Canon&#8217;s proprietary printer/scanner software. The only downside is that the Image Capture application doesn&#8217;t know how to combine multiple document scans into one PDF.  Nor does the Preview application allow one to combine multiple PDFs into one PDF document either. Bummer.</p>
<p>The solution is to use <a href="http://www.apple.com/macosx/what-is-macosx/scripting.html">Automator</a>. I generally use Automator for quick image manipulation, resizing, etc but it also has decent PDF support. In my case, where I have several PDF files from multiple scans of a single document, I can use Automator to combine all these PDFs into one file. As part of Apple&#8217;s Automator action library, someone has already built an Automator worklfow that does exactly this. You can <a href="http://www.apple.com/downloads/macosx/automator/combinepdfs.html">download the workflow</a> and use it to combine multiple PDF files into one.</p>
<p>Something to think about if you are in a situation like this. It definitely does the trick for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/10/19/combining-pdfs-with-automator/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MacOS Setup 1.0.0</title>
		<link>http://www.aeonscope.net/2009/10/08/macos-setup-100/</link>
		<comments>http://www.aeonscope.net/2009/10/08/macos-setup-100/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 12:49:11 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2418</guid>
		<description><![CDATA[
I have released a simple GitHub project called MacOS Setup that makes configuring and using your MacOS easier. Here are a few highlights:

Configures the .bash_profile file.
Configures the .gitconfig file.
Configures the .gitignore file.
Configures the .irbrc file.
Adds Looksee, Wirble, and Hirb support to your IRB and Rails consoles.

Feel free to fork the project for your own purposes [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/macos/macos.png" alt="MacOS Icon"/></center></p>
<p>I have released a simple GitHub project called <a href="http://github.com/aeonscope/macos_setup">MacOS Setup</a> that makes configuring and using your MacOS easier. Here are a few highlights:</p>
<ul>
<li>Configures the .bash_profile file.</li>
<li>Configures the .gitconfig file.</li>
<li>Configures the .gitignore file.</li>
<li>Configures the .irbrc file.</li>
<li>Adds <a href="http://github.com/oggy/looksee">Looksee</a>, <a href="http://github.com/blackwinter/wirble">Wirble</a>, and <a href="http://github.com/cldwalker/hirb">Hirb</a> support to your IRB and Rails consoles.</li>
</ul>
<p>Feel free to fork the project for your own purposes if you like or simply maintain your own home files and then use this project for installation purposes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/10/08/macos-setup-100/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Favorite Ruby Feeds</title>
		<link>http://www.aeonscope.net/2009/10/06/favorite-ruby-feeds/</link>
		<comments>http://www.aeonscope.net/2009/10/06/favorite-ruby-feeds/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 13:08:23 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2394</guid>
		<description><![CDATA[
Over a year ago, I write a post about my favorite Ruby feeds. I&#8217;ve since deleted that post in order to write about an updated set of Ruby feeds that you should be paying attention to (if not already). I read all of these feeds religiously on a daily basis and have broken them down [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src='http://www.aeonscope.net/wp-content/uploads/2007/07/ruby.png' alt='Ruby' /></center></p>
<p>Over a year ago, I write a post about my favorite Ruby feeds. I&#8217;ve since deleted that post in order to write about an updated set of Ruby feeds that you should be paying attention to (if not already). I read all of these feeds religiously on a daily basis and have broken them down below by general news and information followed by screencasts/tutorials. Enjoy.</p>
<p><strong>News</strong></p>
<ul>
<li><a href="http://afreshcup.com">A Fresh Cup</a> - My personal favorite. While you can find similar news via the links below, Mike Gunderloy does an excellent job of summing everything up in place for news, information, and new gems from the Ruby community.</li>
<li><a href="http://ruby-toolbox.com">Ruby Toolbox</a> - A great trending site for finding out what gems are hot and most popular within the Ruby community. This can save you a lot of time when you want to know which gem is the best solution for a problem that has already been solved.</li>
<li><a href="http://rubytrends.com">Ruby Trends</a> - Another trending site. Useful for cross-checking against Ruby Toolbox on what is hot.</li>
<li><a href="http://www.ruby-lang.org">Ruby News</a> - Straight from the source. Find about new releases, conferences, developments, etc.</li>
<li><a href="http://www.rubyinside.com">Ruby Inside</a> - The inside scoop on Ruby news.</li>
<li><a href="http://www.rubyflow.com/">RubyFlow</a> - A great site for picking up new resources to add to your development repertoire.</li>
<li><a href="http://rubyfu.org/">RubyFu</a> - Useful quick news and resource links.</li>
<li><a href="http://blog.rubybestpractices.com">Ruby Best Practices</a> - A great source of thoughtful discussion, including code samples, on how to write better code.</li>
<li><a href="http://ruby5.envylabs.com">Ruby5</a> - From some of the same guys who provide the Rails Envy podcast below. This is another podcast on Ruby news but in short, 5-minute, segments of usually discussing many of the new and interesting gems being developed.</li>
<li><a href="http://www.railsinside.com">Rails Inside</a> - Get the inside scoop on Rails news.</li>
<li><a href="http://weblog.rubyonrails.com/">Riding Rails</a> - Learn what is happening with the Ruby on Rails team.</li>
<li><a href="http://railspikes.com/">Rails Spikes</a> - A multi-authored site of Ruby developers discussing news, tips, code, etc.</li>
<li><a href="http://www.railsillustrated.com/">Rails Illustrated</a> - Info on Rails, web design, and the user experience.</li>
<li><a href="http://www.railsnotes.com">Rails Notes</a> - Another site worth checking out and picking up new learning.</li>
<li><a href="http://railstips.org">Rails Tips</a> - As the site description goes: &#8220;One man, feverishly posting everything he learns.&#8221;</li>
<li><a href="http://www.therailsway.com">The Rails Way</a> - News and information dedicated to teaching best practices of Ruby on Rails.</li>
<li><a href="http://www.rorsecurity.info/">Ruby on Rails Security Project</a> - A good place to read up on security issues or at least keep your mind in it.</li>
<li><a href="http://giantrobots.thoughtbot.com/">Giant Robots Smashing Into Other Giant Robots</a> - Good development tips and tricks, mostly related to Rails.</li>
<li><a href="http://ryandaigle.com">Ryan&#8217;s Scraps</a> - Interesting news on what&#8217;s new and upcoming within the Rails code base. Includes code samples and detailed descriptions and examples of new Rails features. </li>
<li><a href="http://blog.hasmanythrough.com">Has Many Through</a> - Although he has a low writing frequency, the posts are enlightening.</li>
<li><a href="http://www.railsenvy.com/">Rails Envy</a> - An entertaining and informative weekly podcast dedicated to Ruby, Rails, and web framework news.</li>
<li><a href="http://podcast.rubyonrails.org/">Rails Podcasts</a> - Ruby/Rails podcasts by Geoffrey Grosenbach of <a href="http://peepcode.com/">PeepCode</a> fame.</li>
<li><a href="http://railsmagazine.com/">Rails Magazine</a> - News, articles, and information about the Ruby on Rails framework.</li>
</ul>
<p><strong>Tutorials</strong></p>
<ul>
<li><a href="http://railscasts.com">Railscasts</a> - Short screen cast tutorials of Ruby on Rails code.</li>
<li><a href="http://envycasts.com/">Envy Casts</a> - Produced by the same guys that host the Rails Envy podcasts.  Each screen cast tutorial will set you back about $9.</li>
<li><a href="http://peepcode.com">PeepCode</a> - Screencast tutorials like Railscasts but longer in length and not free (roughly $9 per episode).</li>
<li><a href="http://www.tekniqal.com">Tekniqal</a> - A collection of screencasts that cover some of the Ruby basics.</li>
<li><a href="http://railslab.newrelic.com/scaling-rails">Scaling Rails</a> - A series of screencasts on detailing how to scale your Ruby on Rails application appropriately. Produced by Gregg Pollack of Envy Cast fame.</li>
<li><a href="http://bddcasts.com">BDD Casts</a> - Video tutorials on all things related to Behavior Driven Development.</li>
</ul>
<p>BTW, you can find this list and more on <a href="http://www.aeonscope.net/software/development/ruby/">my Ruby page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/10/06/favorite-ruby-feeds/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rails Setup Template 1.0.0</title>
		<link>http://www.aeonscope.net/2009/09/30/rails-setup-template-100/</link>
		<comments>http://www.aeonscope.net/2009/09/30/rails-setup-template-100/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 14:16:58 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2372</guid>
		<description><![CDATA[
I have released a new Ruby on Rails template project called: Rails Setup Template. In truth, this is a renaming of the original Rails Setup project. I am planning on releasing other template projects in the future so this was cause for a little refactoring of my GitHub projects.
In addition to the original code, there [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/ruby/rails.png" alt="Ruby on Rails"/></center></p>
<p>I have released a new Ruby on Rails template project called: <a href="http://github.com/aeonscope/rails_setup_template">Rails Setup Template</a>. In truth, this is a renaming of the original Rails Setup project. I am planning on releasing other template projects in the future so this was cause for a little refactoring of my GitHub projects.</p>
<p>In addition to the original code, there are a few extra goodies including the use of the <a href="http://malsup.com/jquery/block/">BlockUI</a> JavaScript library for easily dealing with lengthy AJAX processes and some bug fixes. Check out the template when you have a chance, it&#8217;ll definitely make building your new Ruby on Rails projects easier. It is what I use for all new work and quick demos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/09/30/rails-setup-template-100/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ruby Gem Setup 1.0.0</title>
		<link>http://www.aeonscope.net/2009/09/29/ruby-gem-setup-100/</link>
		<comments>http://www.aeonscope.net/2009/09/29/ruby-gem-setup-100/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 12:29:20 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2367</guid>
		<description><![CDATA[
I have released a simple GitHub project called Ruby Gem Setup that makes setting up your Ruby Gems a little easier. Here are a few highlights:

Ensures the Ruby Gem environment is at the latest version.
Adds GitHub and Gemcutter as gem sources.
Allows you to configure a setup.txt file that lists all your favorite gems for install.

Very [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/ruby/ruby.png" alt="Ruby"/></center></p>
<p>I have released a simple GitHub project called <a href="http://github.com/aeonscope/ruby_gem_setup">Ruby Gem Setup</a> that makes setting up your Ruby Gems a little easier. Here are a few highlights:</p>
<ul>
<li>Ensures the Ruby Gem environment is at the latest version.</li>
<li>Adds GitHub and Gemcutter as gem sources.</li>
<li>Allows you to configure a setup.txt file that lists all your favorite gems for install.</li>
</ul>
<p>Very handy, especially when managing gems for multiple versions of Ruby. Feel free to fork the project for your own purposes if you like or simply maintain your own setup.txt file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/09/29/ruby-gem-setup-100/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MacOS Ruby Development Setup</title>
		<link>http://www.aeonscope.net/2009/09/28/macos-ruby-development-setup/</link>
		<comments>http://www.aeonscope.net/2009/09/28/macos-ruby-development-setup/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 13:40:01 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[MacOS]]></category>

		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2358</guid>
		<description><![CDATA[
For those wanting to set up a proper Ruby and Ruby on Rails development environment for your MacOS, I&#8217;ve created an OmniOutliner outline that I use. Its my personal guide to getting my development environment setup properly especially if one has erased and install the operating system from scratch.
When making the outline, I pulled heavily [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/ruby/ruby.png" alt="Ruby"/></center></p>
<p>For those wanting to set up a proper Ruby and Ruby on Rails development environment for your MacOS, I&#8217;ve created an <a href="http://www.omnigroup.com/applications/omnioutliner/">OmniOutliner</a> outline that I use. Its my personal guide to getting my development environment setup properly especially if one has <a href="http://www.aeonscope.net/2009/09/21/mac-os-x-106x-snow-leopard-applications/">erased and install the operating system from scratch</a>.</p>
<p>When making the outline, I pulled heavily from the following articles (also found on my <a href="http://www.aeonscope.net/software/operating-systems/mac/">MacOS</a> page) with a few modification here and there:</p>
<ul>
<li><a href="http://afreshcup.com/2009/09/02/migrating-to-snow-leopard-for-rails-development-a-definitive-guide/">A definitive upgrade guide</a></li>
<li><a href="http://weblog.rubyonrails.org/2009/8/30/upgrading-to-snow-leopard">Upgrade notes on developer tools</a></li>
<li><a href="http://afreshcup.com/2009/08/31/double-shot-529/">A bunch of notes on getting your developer tools up and running without too much trouble</a></li>
<li><a href="http://jaredonline.posterous.com/got-mysql-to-work-with-rails-in-mac-os-106-sn">How to get MySQL working</a></li>
</ul>
<p>You can download the outline for your own use here:</p>
<ul>
<li><a href="http://www.aeonscope.net/dev/ruby/setup/ruby_development_setup-1.0.1.zip">MacOS Ruby Development Setup 1.0.1</a></li>
</ul>
<p>In the future, I hope to provide this outline in both original and HTML format but for now, I just have the OmniOutliner format. Apologies to those who don&#8217;t use OmniOutliner.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/09/28/macos-ruby-development-setup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mac OS X 10.6.x (Snow Leopard) Applications</title>
		<link>http://www.aeonscope.net/2009/09/21/mac-os-x-106x-snow-leopard-applications/</link>
		<comments>http://www.aeonscope.net/2009/09/21/mac-os-x-106x-snow-leopard-applications/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 12:35:56 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2299</guid>
		<description><![CDATA[I wrote about performing a clean install of MacOS 10.5.x (Leopard) Applications a while ago. With Snow Leopard out, things have changed but not by much. The following is a breakdown of apps I commonly use and their install order (from a fresh install of the MacOS):

MacOS 10.6.0 (Snow Leopard Disk) - Insert the DVD, [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote about performing a clean install of <a href="http://www.aeonscope.net/2008/12/09/mac-os-x-105x-leopard-applications/">MacOS 10.5.x (Leopard) Applications</a> a while ago. With Snow Leopard out, things have changed but not by much. The following is a breakdown of apps I commonly use and their install order (from a fresh install of the MacOS):</p>
<ol>
<li>MacOS 10.6.0 (Snow Leopard Disk) - Insert the DVD, click the <em>Utilities</em> button, and click the <em>Restart</em> button. You&#8217;ll be booted into the Snow Leopard install at which point you&#8217;ll want to launch Disk Utility and format your hard drive (journaled). After you have wiped your hard drive, exit Disk Utility, and continue on with the Snow Leopard install.</li>
<li>XCode Tools (Snow Leopard Disk)</li>
<li>MacOS X 10.6.x Combo Patch (download)</li>
<li>Canon Printer Drivers/Utilities (download)</li>
<li><a href="http://cocoatech.com/">PathFinder</a> (download)</li>
<li><a href="http://www.omnigroup.com/applications/omnifocus/">OmniFocus</a> (download)</li>
<li><a href="http://www.omnigroup.com/applications/omnioutliner/">OmniOutliner</a> (download)</li>
<li><a href="http://www.omnigroup.com/applications/omnigraffle/">OmniGraffle</a> (download)</li>
<li><a href="http://www.mozilla.com/en-US/firefox/">Firefox</a> (download)</li>
<li><a href="http://www.opera.com">Opera</a> (download)</li>
<li><a href="http://filezilla-project.org/">FileZilla</a> (download)</li>
<li><a href="http://www.mozilla.com/en-US/firefox/">Vienna</a> (download)</li>
<li><a href="http://agilewebsolutions.com/products/1Password">1Password</a> (download)</li>
<li><a href="http://www.jingproject.com/">Jing</a> (download)</li>
<li><a href="http://www.videolan.org/vlc/">VLC</a> (download)</li>
<li><a href="http://lightheadsw.com/caffeine/">Caffeine</a> (download)</li>
<li><a href="http://www.coconut-flavour.com/coconutbattery/">Coconut Battery</a> (download)</li>
<li><a href="http://islayer.com/index.php?op=item&#038;id=28">iStat Menus</a> (download)</li>
<li><a href="http://macromates.com/">TextMate</a> (download)</li>
<li><a href="http://www.vmware.com/products/fusion/">VMWare Fusion</a> (download)</li>
<li><a href="http://www.billingsapp.com/index.html">Billings</a> (download)</li>
<li><a href="http://nothirst.com/moneywell/">MoneyWell</a> (download)</li>
<li><a href="http://www.delicious-monster.com/">Delicious Library</a> (download)</li>
<li><a href="http://www.openoffice.org/">OpenOffice</a> (download)</li>
<li><a href="http://www.skype.com/">Skype</a> (download)</li>
<li><a href="http://www.atebits.com/tweetie-mac/">Tweetie</a> (download)</li>
<li><a href="http://www.apple.com/downloads/dashboard/reference/loremipsumwidget.html">Lorem Ipsum</a> widget (download)</li>
<li><a href="http://www.logitech.com/index.cfm/440/374&#038;cl=us,en">Logitech Harmony 890</a> remote software (download)</li>
<li><a href="http://www5e.biglobe.ne.jp/~arcana/StartupSound/BETA/index.en.html">Startup Sound</a></li>
<li><a href="http://www.bombich.com">Carbon Copy Cloner</a> (download)</li>
<li>Software Updates (via the Apple icon, requires a couple reboots)</li>
</ol>
<p>You can learn more about some of these apps on my <a href="http://www.aeonscope.net/software/applications/">Applications</a> page.  Also, since I&#8217;m one of those who likes organization, I wrote a post on <a href="http://www.aeonscope.net/2006/08/26/data-management/">data management</a> a while back that sheds further light on how I manage my apps and the data related to them in case it is of interest (Note:  even though the post was originally written for Windows some of the concepts still apply for the MacOS).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/09/21/mac-os-x-106x-snow-leopard-applications/feed/</wfw:commentRss>
		</item>
		<item>
		<title>REST 1.1.0 Gem</title>
		<link>http://www.aeonscope.net/2009/08/26/rest-110-gem/</link>
		<comments>http://www.aeonscope.net/2009/08/26/rest-110-gem/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 04:23:00 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2230</guid>
		<description><![CDATA[
A new version of the REST 1.1.0 gem has been released. Here are the highlights:

Clarified the readme documentation.
Updated the JavaScript code so that events are bound for current and future instances instead of just once.
Fixed a JavaScript bug where deleting nested inputs on a new form would cause an exception.
Updated the JavaScript code so that [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/ruby/rails.png" alt="Ruby on Rails"/></center></p>
<p>A new version of the <a href="http://github.com/aeonscope/rest/tree/v1.1.0">REST 1.1.0</a> gem has been released. Here are the highlights:</p>
<ul>
<li>Clarified the readme documentation.</li>
<li>Updated the JavaScript code so that events are bound for current and future instances instead of just once.</li>
<li>Fixed a JavaScript bug where deleting nested inputs on a new form would cause an exception.</li>
<li>Updated the JavaScript code so that new records are initially hidden.</li>
<li>Updated the JavaScript code so the last record of a form is not deleted. Contents will be cleared and hidden (if last element).</li>
<li>Applied fade in/out effects when adding/destroying input forms.</li>
<li>Removed the hiding of the delete link via the various resource helpers.</li>
<li>Modified the JavaScript incrementNumber(string, position) function for better handling of complex nested Rails model forms.</li>
<li>Renamed all forms of the &#8220;new&#8221; action UJS classes to a single &#8220;new&#8221; class. Use the data-type attribute to distinguish type.</li>
<li>Applied &#8220;group&#8221; and &#8220;record&#8221; classes to distinguish between a group of records and a single record. Very handy for creating and/or destroying form elements.</li>
<li>Renamed the various resource helpers to be aware of input elements (this affects the destroy helpers mostly).</li>
<li>Added default option support for the Will Paginate gem requirement (use config/initializers/pagination.rb to change settings).</li>
<li>Renamed all &#8220;show_&#8221; helpers to &#8220;render_&#8221; helpers.</li>
<li>Added a render_show_link helper.</li>
<li>Added a render_new_link helper.</li>
<li>Added a render_edit_link helper.</li>
<li>Added icons for show, new, edit, and destroy actions. All corresponding helpers default to these icons.</li>
<li>Changed the rendering of partials to templates for all REST actions.</li>
<li>Added the ability to supply an index template if you wish to override the default index action behavior.</li>
<li>Added basic AJAX handling for the destroy action so that a response can be sent back to the JavaScript caller.</li>
<li>Moved all JavaScript REST functionality into a proper jQuery plugin.</li>
<li>Renamed the &#8220;ujs_setup&#8221; generator to &#8220;rest_setup&#8221;.</li>
</ul>
<p>These same notes can be also be found by viewing the <a href="http://github.com/aeonscope/rest/blob/62a484f3d44c162efb2d625bc8296ba7edfc7589/CHANGELOG.rdoc">CHANGELOG</a>. I also recommend viewing the OmniGraffle design document on how the form layouts are to used by the unobtrusive jQuery code when creating your views.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/08/26/rest-110-gem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Acts as Commentable 1.0.0</title>
		<link>http://www.aeonscope.net/2009/07/22/acts-as-commentable-100/</link>
		<comments>http://www.aeonscope.net/2009/07/22/acts-as-commentable-100/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 03:09:06 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2174</guid>
		<description><![CDATA[
The initial version release of my Acts as Commentable gem is available for use. Here are the highlights.

Wanted a gem, couldn&#8217;t find one, built my own with the notion that I&#8217;ll probably be adding more to this in the future.
Supports an auto label feature in case you find that handy.
It doesn&#8217;t get any simpler than [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/ruby/rails.png" alt="Ruby on Rails"/></center></p>
<p>The initial version release of my <a href="http://github.com/aeonscope/acts_as_commentable">Acts as Commentable</a> gem is available for use. Here are the highlights.</p>
<ul>
<li>Wanted a gem, couldn&#8217;t find one, built my own with the notion that I&#8217;ll probably be adding more to this in the future.</li>
<li>Supports an auto label feature in case you find that handy.</li>
<li>It doesn&#8217;t get any simpler than this (for a gem that is).</li>
</ul>
<p>Visit the GitHub page to learn more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/07/22/acts-as-commentable-100/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Quickly Filtering Ruby Methods</title>
		<link>http://www.aeonscope.net/2009/06/16/quickly-filtering-ruby-methods/</link>
		<comments>http://www.aeonscope.net/2009/06/16/quickly-filtering-ruby-methods/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 13:49:14 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Snippet]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2047</guid>
		<description><![CDATA[
Sometimes, when working with IRB or the Rails console, you might need a list of methods on a particular class or object. You don&#8217;t necessarily need to consult the doc because it is one of those situations where you would know the method if you saw it. So what do you do? Well, one trick [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/ruby/ruby.png" alt="Ruby on Rails"/></center></p>
<p>Sometimes, when working with IRB or the Rails console, you might need a list of methods on a particular class or object. You don&#8217;t necessarily need to consult the <a href="http://apidock.com">doc</a> because it is one of those situations where you would know the method if you saw it. So what do you do? Well, one trick is to use the select method (passed via a block) on a collection of methods. You can always start by asking the class for its methods by typing the following:</p>
<p>Hash.<a href="http://apidock.com/ruby/Object/methods">methods</a></p>
<p>Which yields:</p>
<p>["require_dependency", "decode_b", "write_inheritable_hash", "model_name", "breakpoint", "require", "delegate", "taguri", "const_missing", "new", "class_inheritable_hash", "suppress", "methods", "andand", "method", "allocate", "attr_internal_reader", "protected_instance_methods", "deprecate", "taguri=", "subclasses", "cattr_accessor", "include?", "daemonize", "taint", "present?", "class_eval", "alias_method_chain", "instance_variable_defined?", "yaml_tag_class_name", "name", "find_hidden_method", "reset_inheritable_attributes", "metaclass", "autoload", "to_yaml_style", "class_variables", "parent", "inheritable_attributes", "__id__", "singleton_methods", "synchronize", "dclone", "private_instance_methods", "object_id", "subclasses_of", "respond_to?", "nil?", "ancestors", "yaml_tag_read_class", "parent_name", "tap", "__send__", "require_library_or_gem", "protected_methods", "require_or_load", "me", "tainted?", "attr_internal_writer", "remove_class", "class_inheritable_reader", "untaint", "instance_of?", "autoload?", "b64encode", "included_in_classes", "equal?", "method_defined?", "with_options", "const_missing_without_dependencies", "display", "class_variable_defined?", "private_methods", "hash", "instance_method", "send", "constants", "deprecation_horizon", "instance_values", "`", "attr_internal_accessor", "yaml_tag_subclasses?", "class_inheritable_writer", "kind_of?", "enable_warnings", "freeze", "eql?", "public_method_defined?", "to_json", "id", "returning", "parents", "write_inheritable_attribute", "dont", "acts_like?", "require_association", "public_methods", "instance_eval", "superclass_delegating_reader", "instance_variable_names", "attr_internal", "const_get", "to_enum", "class_inheritable_array_writer", "is_a?", "silence_stderr", "private_method_defined?", "cattr_reader", "type", "const_missing_with_dependencies", "local_constants", "superclass", "write_inheritable_array", "instance_variables", "frozen?", "blank?", "attr_internal_naming_format", "const_set", "copy_instance_variables_from", "enum_for", "class_inheritable_hash_writer", "silence_stream", "to_a", "to_param", "mattr_reader", "protected_method_defined?", "attr_internal_naming_format=", "extended_by", "silence_warnings", "class", "public_class_method", "encode64", "from_xml", "instance_variable_get", "<=>", "to_yaml", "load_with_new_constant_marking", "==", "superclass_delegating_writer", "method_added", "class_inheritable_accessor", "===", "duplicable?", "extend", "to_s", "to_query", "alias_attribute", "instance_methods", ">=", "remove_subclasses", "extend_with_included_modules_from", "mattr_writer", "<=", "cattr_writer", "local_constant_names", "clone", "private_class_method", "decode64", "read_inheritable_attribute", "const_defined?", "yaml_as", "included_modules", "debugger", "=~", "instance_variable_set", "<", "superclass_delegating_accessor", "deprecated_method_warning", "attr_accessor_with_default", ">", "class_inheritable_array", "inspect", "[]&#8220;, &#8220;remove_subclasses_of&#8221;, &#8220;instance_exec&#8221;, &#8220;try&#8221;, &#8220;mattr_accessor&#8221;, &#8220;public_instance_methods&#8221;, &#8220;as_load_path&#8221;, &#8220;to_yaml_properties&#8221;, &#8220;unloadable&#8221;, &#8220;dup&#8221;, &#8220;module_eval&#8221;]</p>
<p>OK, yeah, that&#8217;s a bit overkill.  How about we narrow it down to the types of methods (using the select method with a regular expression):</p>
<p>Hash.methods {|m| m.select =~ /methods/}</p>
<p>Which yields:</p>
<p>["methods", "protected_instance_methods", "singleton_methods", "private_instance_methods", "protected_methods", "private_methods", "public_methods", "instance_methods", "public_instance_methods"]</p>
<p>Ah, much better. &#8230;but I&#8217;m not quite there yet. Lets say I know it&#8217;s an instance method and it is a type of &#8220;to&#8221; method. I could then type the following:</p>
<p>Hash.instance_methods {|m| m.select =~ /to_/}</p>
<p>Which yields:</p>
<p>["to_yaml_style", "to_hash", "to_set", "to_xml", "to_json", "to_enum", "to_options", "to_a", "to_param", "to_yaml", "to_options!", "to_s", "to_query", "to_yaml_properties"]</p>
<p>OK, now I remember, it was the &#8220;to_yaml&#8221; method that I was looking for!</p>
<p>This, of course, is a contrived example. However, if you know what type of method you are looking for and part of its name, then this is a quick and effective way of getting back a subset of methods from which you can gauge what it is that you&#8217;re looking for.</p>
<p>Where I tend use this most (as of late) is with Rails models that accept nested attributes (i.e. <a href="http://apidock.com/rails/ActiveRecord/NestedAttributes/ClassMethods/accepts_nested_attributes_for">accepts_nested_attributes_for</a>). For example:</p>
<p>Recipe.instance_methods {|m| m.select =~ /attributes/}</p>
<p>["update_attributes!", "comments_attributes=", "reject_new_nested_attributes_procs", "attributes", "attributes=", "time_zone_aware_attributes", "respond_to_without_attributes?", "update_attributes", "skip_time_zone_conversion_for_attributes", "<strong>user_recipe_attributes=</strong>", "<strong>ingredient_groups_attributes=</strong>", "attributes_before_type_cast", "<strong>instructions_attributes=</strong>", "<strong>sources_attributes=</strong>"]</p>
<p>So there you have it, in case it is of help.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/06/16/quickly-filtering-ruby-methods/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Default Scopes with Oracle</title>
		<link>http://www.aeonscope.net/2009/06/09/default-scopes-with-oracle/</link>
		<comments>http://www.aeonscope.net/2009/06/09/default-scopes-with-oracle/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 03:37:22 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=2014</guid>
		<description><![CDATA[
If you have the unfortunate experience of having to deal with Oracle databases you might run into an interesting problem with default scopes where Oracle spits back the following error:
ORA-00933: SQL command not properly ended: UPDATE post SET post_gid = NULL WHERE ((post_gid = 2060))  ORDER BY name
The problem, if you guessed it, is [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/ruby/rails.png" alt="Ruby on Rails"/></center></p>
<p>If you have the unfortunate experience of having to deal with Oracle databases you might run into an interesting problem with <a href="http://apidock.com/rails/ActiveRecord/Base/default_scope/class">default scopes</a> where Oracle spits back the following error:</p>
<p><code>ORA-00933: SQL command not properly ended: UPDATE post SET post_gid = NULL WHERE ((post_gid = 2060))  ORDER BY name</code></p>
<p>The problem, if you guessed it, is that you can&#8217;t add an ORDER clause to the end of an UPDATE statement in SQL. It is invalid syntax. This happens because you might have done something like this in your Post model:</p>
<p><code>class Post &lt; ActiveRecord::Base<br />
  # Named Scopes<br />
  default_scope :order =&gt; "name"<br />
end</code></p>
<p>I really like to use default_scope on my models when apt. However, with Oracle, you might as well forget about that until Rails is patched (which I suppose I should do once this aggravates me more).  The workaround is to not use default scopes but, instead, used named scopes, define them as conditions to your finds (usually index actions), and/or <a href="http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many">has_many</a> associations.  For example:</p>
<p><strong>Named Scope</strong></p>
<p><code>class Post &lt; ActiveRecord::Base<br />
  # Named Scopes<br />
  named_scope :default, :order =&gt; "name"<br />
end</code></p>
<p>This will work nicely but if you need to pass additional conditions, you&#8217;ll still need to do the following:</p>
<p><code>Post.default.all(:conditions =&gt; {:name =&gt; "Once Upon a Time"})</code></p>
<p><strong>Index Action</strong></p>
<p><code>Post.all :order =&gt; "name"</code></p>
<p><strong>Has Many Association</strong></p>
<p><code>class User &lt; ActiveRecord::Base<br />
  # Associations<br />
  has_many :posts, :order =&gt; "name"<br />
end</code></p>
<p>Obviously, not as elegant as defining them in one location but it&#8217;ll get you by.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/06/09/default-scopes-with-oracle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tweetie</title>
		<link>http://www.aeonscope.net/2009/05/18/tweetie/</link>
		<comments>http://www.aeonscope.net/2009/05/18/tweetie/#comments</comments>
		<pubDate>Mon, 18 May 2009 13:05:52 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=1857</guid>
		<description><![CDATA[For those on the MacOS wanting a great desktop app to manage your Twitter account, I would suggest checking out Tweetie and possibly the iPhone companion.  It&#8217;s been my favorite Twitter app as of late over other apps like Nambu or TweetDeck. For me, I really love the condensed view of the Tweetie app [...]]]></description>
			<content:encoded><![CDATA[<p>For those on the MacOS wanting a great desktop app to manage your Twitter account, I would suggest checking out <a href="http://www.atebits.com/tweetie-mac/">Tweetie</a> and possibly the <a href="http://www.atebits.com/tweetie-iphone/">iPhone</a> companion.  It&#8217;s been my favorite Twitter app as of late over other apps like <a href="http://www.nambu.com/">Nambu</a> or <a href="http://www.tweetdeck.com/">TweetDeck</a>. For me, I really love the condensed view of the Tweetie app which saves me desktop space versus the larger spread you get with TweetDeck or Nambu.  For example:</p>
<p><center><a href="http://www.aeonscope.net/wp-content/uploads/2008/04/tweetie.png" rel='lytebox[tweetie]'><img src="http://www.aeonscope.net/wp-content/uploads/2008/04/tweetie-100x100.png" alt="Tweetie" title="Tweetie" width="100" height="100" class="alignnone size-thumbnail wp-image-1855" /></a><br/>(click to view)</center></p>
<p>By clicking Tweetie&#8217;s sidebar you can quickly jump from tweets you have composed, see replies, direct messages, and search.  You can also use global keyboard shortcut to enter tweets. In my case I use CTRL+OPTION+COMMAND+T often to bring up a dialog to enter a quick tweet:</p>
<p><center><a href="http://www.aeonscope.net/wp-content/uploads/2009/05/tweetie-text-box.png" rel='lytebox[tweetie]'><img src="http://www.aeonscope.net/wp-content/uploads/2009/05/tweetie-text-box-100x100.png" alt="Tweetie Text Box" title="Tweetie Text Box" width="100" height="100" class="alignnone size-thumbnail wp-image-1858" /></a><br/>(click to view)</center></p>
<p>Notice that you can also use keyboard shortcuts to quickly convert long URLs to short ones. The only downside to using the keyboard shortcut is that the dialog only pops up in the Leopard Space from which you originally launched Tweetie (focus is switched to that Leopard Space as well). I was expecting the <a href="http://www.aeonscope.net/2008/02/19/omnifocus-hyperlinked-notes/">OmniFocus QuickEntry</a> dialog behavior which works from any Leopard Space. I messaged the developer about this and the response was that it is not easy to do but is looking into it. If that can get fixed, I would be tempted to buy the app even though the ad-supported, free version is not that annoying.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/05/18/tweetie/feed/</wfw:commentRss>
		</item>
		<item>
		<title>REST 1.0.0 Gem</title>
		<link>http://www.aeonscope.net/2009/05/06/rest-100-gem/</link>
		<comments>http://www.aeonscope.net/2009/05/06/rest-100-gem/#comments</comments>
		<pubDate>Thu, 07 May 2009 00:58:21 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=1805</guid>
		<description><![CDATA[
If you are like me, writing the same code over and over for the seven REST actions in a Ruby on Rails RESTful controller gets old really fast.  In order to circumvent this monotony, I&#8217;ve released a REST gem to make life easier.
This means you can write code like this:
  class Posts &#60; [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/ruby/rails.png" alt="Ruby on Rails"/></center></p>
<p>If you are like me, writing the same code over and over for the seven REST actions in a Ruby on Rails RESTful controller gets old really fast.  In order to circumvent this monotony, I&#8217;ve released a <a href="http://github.com/aeonscope/rest/tree/master">REST gem</a> to make life easier.</p>
<p>This means you can write code like this:</p>
<p><code>  class Posts &lt; ApplicationController<br />
    include Rest<br />
  end</code></p>
<p>&#8230;and you get the following working actions for free:</p>
<ul>
<li>index</li>
<li>show</li>
<li>new</li>
<li>edit</li>
<li>create</li>
<li>update</li>
<li>destroy</li>
</ul>
<p>Not too shabby, eh?  It can also handle nested resources and namespaces too.  Oh, and it gets better, as there is a ujs_setup generator included in the gem in case you want to drop the default Prototype/Scriptaculous libraries and start using unobtrusive jQuery.  You don&#8217;t even need to worry about bypassing forgery security within your controllers for AJAX requests. I&#8217;ve taken care of all of that for you.</p>
<p>So what are you waiting for, grab the gem and run the ujs_setup generator.  If you want to get really fancy with jQuery support then run my <a href="http://github.com/aeonscope/rails_setup/tree/master">rails_setup template</a> before adding this gem into a new or existing Ruby on Rails project.</p>
<p>I won&#8217;t tell anyone that you built your app in less than 5 minutes.  I&#8217;m a slacker too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/05/06/rest-100-gem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Enhanced Select 1.0.0</title>
		<link>http://www.aeonscope.net/2009/05/05/enhanced-select-100/</link>
		<comments>http://www.aeonscope.net/2009/05/05/enhanced-select-100/#comments</comments>
		<pubDate>Wed, 06 May 2009 01:53:32 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=1801</guid>
		<description><![CDATA[
Have you ever wanted to do more with the Ruby on Rails select helper in your form views?  Well, now you can make use of the full HTML spec for options with in a select element with my new enhanced_select gem.
To install, use the following command line:
sudo gem install aeonscope-enhanced_select
Then you can write code [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/images/ruby/rails.png" alt="Ruby on Rails"/></center></p>
<p>Have you ever wanted to do more with the Ruby on Rails <a href="http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select">select helper</a> in your form views?  Well, now you can make use of the full HTML spec for options with in a select element with my new <a href="http://github.com/aeonscope/enhanced_select/tree/master">enhanced_select gem</a>.</p>
<p>To install, use the following command line:</p>
<p><code>sudo gem install aeonscope-enhanced_select</code></p>
<p>Then you can write code like this:</p>
<p><code>@schools = [{:value =&gt; 1, :class =&gt; "private", :text =&gt; "Goldbugs"}, {:value =&gt; 2, :class =&gt; "public", :text =&gt; "Falcons"}]<br />
&lt;%= form.enhanced_select :id, @schools, :include_blank =&gt; "-select-" %&gt;</code></p>
<p>&#8230;which yields the following your view:</p>
<p><code>  &lt;select id="&lt;auto filled&gt;" name="&lt;auto filled&gt;"&gt;<br />
    &lt;option value=""&gt;-select-&lt;/option&gt;<br />
    &lt;option value="1" class="private"&gt;Goldbugs&lt;/option&gt;<br />
    &lt;option value="2" class="public"&gt;Falcons&lt;/option&gt;<br />
  &lt;/select&gt;</code></p>
<p>Check out the GitHub page to learn more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/05/05/enhanced-select-100/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GitHub Lessons</title>
		<link>http://www.aeonscope.net/2009/05/03/github-lessons/</link>
		<comments>http://www.aeonscope.net/2009/05/03/github-lessons/#comments</comments>
		<pubDate>Mon, 04 May 2009 00:06:45 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=1756</guid>
		<description><![CDATA[
So I have become a GitHub fan (powered by Git, obviously). It is free to use if you are developing open source code or you can pay various service fees to have GitHub host your private code.  As for me, I&#8217;m working on a few open source projects. Three, of which, are live now.
&#8230;but [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.aeonscope.net/wp-content/uploads/2009/04/octocat.png" alt="GitHub Octocat" title="GitHub Octocat" width="300" height="300" class="alignnone size-full wp-image-1782" /></center></p>
<p>So I have become a <a href="http://github.com">GitHub</a> fan (powered by <a href="http://git-scm.com">Git</a>, obviously). It is free to use if you are developing open source code or you can pay various service fees to have GitHub host your private code.  As for me, I&#8217;m working on a few open source projects. <a href="http://github.com/aeonscope">Three</a>, of which, are live now.</p>
<p>&#8230;but I learned a few lessons along the way. I thought I&#8217;d share what I learned in case you might be curious.</p>
<p><strong>Make everything a <a href="http://rubygems.org">gem</a> when apt</strong></p>
<p>They are <a href="http://github.com/technicalpickles/jeweler/tree/master">easy to develop</a> and manage. Plus they are version controlled and simple to configure within a Ruby on Rails app. I made the mistake of developing Ruby on Rails plug-ins initially and have finally converted all my plug-ins to gems now. Plug-ins, it seems, are going the way of the <a href="http://en.wikipedia.org/wiki/Dodo">Dodo</a>.</p>
<p><strong>Be wary of your user account.</strong></p>
<p>When you register with GitHub, pick a user account that you want to stick with as all software associated with your username will be prefixed to your code (this is especially critical with gems). In my case, I use &#8220;aeonscope&#8221; which yields the following gem install command line: <code>sudo gem install aeonscope-XXX</code>.  The installed gems will also show up on your file system with the same &#8220;aeonscope-&#8221; prefix.  You don&#8217;t, however, have to name your libraries in this manner which means that your Rails configurations will not match.  Lets take a closer look:</p>
<ul>
<li>GitHub Login:  aeonscope</li>
<li>GitHub Project:  rest</li>
<li>GitHub Project Path:  <a href="http://github.com/aeonscope/rest">http://github.com/aeonscope/rest</a></li>
<li>Gem Install Command:  sudo gem install aeonscope-rest</li>
<li>Ruby on Rails Configuration (via environment.rb): <code>config.gem "aeonscope-rest", :lib =&gt; "rest"</code></li>
</ul>
<p>Notice when you configure my gem in Rails, you must specify &#8220;rest&#8221; instead of &#8220;aeonscope-rest&#8221; for the library.  This is because I don&#8217;t want to namespace my Rails code with &#8220;aeonscope&#8221;.  I debated as to whether this was wise and, in the end, decided it was lame to force namespaces.  I like the fact that gems are installed and stored on your local file system with the namespace but once you configure the gem in Rails you then specify the library without the GitHub login prefix.</p>
<p><strong>Know your tools</strong></p>
<p>Save yourself some setup time by using <a href="http://github.com/technicalpickles/jeweler/tree/master">Jeweler</a> to craft your gems. Once you have released your new gem, you can <a href="http://hasmygembuiltyet.org/">check if it has built</a>.  The rest is a just a matter of reading the GitHub docs and learning about Git in general.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/05/03/github-lessons/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Buggy Firebug UJS Extension</title>
		<link>http://www.aeonscope.net/2009/04/29/buggy-firebug-ujs-extension/</link>
		<comments>http://www.aeonscope.net/2009/04/29/buggy-firebug-ujs-extension/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 01:44:28 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=1770</guid>
		<description><![CDATA[For those that happen to keep tabs on my GitHub projects or my tweets, you&#8217;ll know I&#8217;m a big advocate of writing Unobtrusive JavaScript (UJS). That means if you send me to a site of yours and I break out my handy Obtrusive JavaScript Checker tool only to find that you are obtrusive then my [...]]]></description>
			<content:encoded><![CDATA[<p>For those that happen to keep tabs on my <a href="http://github.com/aeonscope">GitHub</a> projects or my <a href="http://twitter.com/Aeonscope">tweets</a>, you&#8217;ll know I&#8217;m a big advocate of writing Unobtrusive JavaScript (UJS). That means if you send me to a site of yours and I break out my handy <a href="https://addons.mozilla.org/en-US/firefox/addon/9505">Obtrusive JavaScript Checker</a> tool only to find that you are obtrusive then my faith in your development capabilities will have diminished significantly.</p>
<p>With that in mind, I was playing with a <a href="https://addons.mozilla.org/firefox/1843">Firebug</a> extension called <a href="http://remi.org/2009/01/06/using-firebug-to-debug-unobtrusive-javascript.html">Firebug UJS</a>. I really enjoyed this tool because it allowed you to see UJS behavior within the DOM while investigating code in Firebug.  Cool! Only problem is that it totally hosed most of my jQuery enabled pages. In fact, if you install this plugin and try to view the <a href="http://jqueryui.com/demos/">jQuery UI demos</a>, you&#8217;ll be in a world of hurt.</p>
<p>While the extension is a nifty idea, I would recommend saving yourself time and frustration by not installing this.  If you want a list of extensions you might want to be using, then check out my <a href="http://www.aeonscope.net/software/applications/firefox/">Firefox page</a> for more info.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/04/29/buggy-firebug-ujs-extension/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Phusion Passenger on Ubuntu</title>
		<link>http://www.aeonscope.net/2009/03/15/phusion-passenger-on-ubuntu/</link>
		<comments>http://www.aeonscope.net/2009/03/15/phusion-passenger-on-ubuntu/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 18:05:04 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Phusion Passenger]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=1650</guid>
		<description><![CDATA[
Overview
The following a guide to configuring Phusion Passenger on Ubuntu for serving up your Ruby on Rails applications.
Requirements
It is assumed that you are familiar Ruby, Ruby on Rails, Apache, Phusion Passenger, and Ubuntu.  It is also assumed that you have a Ubuntu Server or VM setup and configured with a proper server stack that [...]]]></description>
			<content:encoded><![CDATA[<p><center><a href="http://www.ubuntu.com"><img src="http://www.aeonscope.net/images/linux/ubuntu.png"  alt="Ubuntu" /></a></center></p>
<p><strong>Overview</strong></p>
<p>The following a guide to configuring <a href="http://www.modrails.com">Phusion Passenger</a> on <a href="http://www.ubuntu.com">Ubuntu</a> for serving up your <a href="http://rubyonrails.org">Ruby on Rails</a> applications.</p>
<p><strong>Requirements</strong></p>
<p>It is assumed that you are familiar Ruby, Ruby on Rails, Apache, Phusion Passenger, and Ubuntu.  It is also assumed that you have a Ubuntu Server or VM setup and configured with a proper server stack that includes Apache, MySQL, Ruby, Ruby on Rails, etc.  You can learn how to setup and configure a fresh Ubuntu Server by reading my <a href="http://www.aeonscope.net/software/applications/ubuntu/">Ubuntu page</a> before preceding.</p>
<p><strong>Setup</strong></p>
<p>Phusion Passenger will warn you of missing software but lets go ahead and beat Phusion Passenger to the punch by executing the following commands from the command line:</p>
<ol>
<li>sudo apt-get install libopenssl-ruby</li>
<li>sudo apt-get install apache2-prefork-dev</li>
</ol>
<p>Now we can install Phusion Passenger:</p>
<ol>
<li>sudo gem install passenger</li>
<li>sudo passenger-install-apache2-module</li>
</ol>
<p> <br />
<strong>Apache Configuration</strong><br />
 <br />
Edit the <code>/etc/apache2/httpd.conf</code> or <code>/etc/apache2/apache2.conf</code> file (depending on how your server is setup, use one or the other but not both) by adding the following to the end of the file:</p>
<ul>
<li><code>LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so</code></li>
<li><code>PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6</code></li>
<li><code>PassengerRuby /usr/bin/ruby1.8</code></li>
<li><code>PassengerDefaultUser www-data</code></li>
</ul>
<p><strong>NOTE</strong>: Be mindful of the Phusion Passenger version as you might need to adjust the version numbers for your particular release.  Otherwise, just use the notes provided for you during the Phusion Passenger install.</p>
<p>Finally, execute the the following commands from the command line:</p>
<ol>
<li><code>sudo usermod -a -G www-data &lt;your user login&gt;</code></li>
<li><code>sudo a2enmod ssl</code></li>
</ol>
<p>The first command ensures the default www-data user group is group to your primary user account owning the server files.  Otherwise, Phusion Passenger will assume to run the Rails app as root which might cause problems.  The last command tells Apache to enable SSL support (you might or might not want this).</p>
<p><strong>Apache Non-Secure Virtual Hosts</strong></p>
<p>Edit your virtual host file (example: <code>/etc/apache2/sites-available/example</code>) so that the following is used:</p>
<p><code>NameVirtualHost *:80<br />
&lt;VirtualHost *:80&gt;<br />
    ServerName one.example.com<br />
    DocumentRoot /web/one/public</p>
<p>    &lt;Directory /web/one/public/ /&gt;<br />
        Options Indexes FollowSymLinks MultiViews<br />
        AllowOverride None<br />
        Order allow,deny<br />
        allow from all<br />
    &lt;/Directory&gt;<br />
&lt;/VirtualHost&gt;</code></p>
<p>Repeat the <code>&lt;VirtualHost/&gt;</code> block for each Rails site you want to setup.<br />
Restart Apache to pick up the new changes by executing the following command line: <code>sudo /etc/init.d/apache2 restart</code></p>
<p><strong>Apache Secure Virtual Hosts</strong></p>
<p>Edit your virtual host file (example: <code>/etc/apache2/sites-available/example-ssl</code>) so that the following is used:</p>
<p><code>    NameVirtualHost *:443<br />
   &lt;VirtualHost *:443&gt;<br />
      ServerName www.yourhost.com<br />
      DocumentRoot /somewhere/public</p>
<p>      SSLEngine on <br />
      SSLCertificateFile    /etc/ssl/certs/&lt;your server name&gt;.crt<br />
      SSLCertificateKeyFile /etc/ssl/private/&lt;your server name&gt;.key<br />
   &lt;/VirtualHost&gt;</code></p>
<p>Repeat the <code>&lt;VirtualHost/&gt;</code> block for each Rails site you want to setup.</p>
<p><strong>NOTE:</strong> While this setup will allow you to host multiple secure Rails sites it will not allow you to use a different SSL certificate for each as that is impossible.  Even if you change the SSL certificate for each virtual host only the first one defined will be used.</p>
<p>Restart Apache to pick up the new changes by executing the following command line: <code>sudo /etc/init.d/apache2 restart</code></p>
<p><strong>How to Generate Your Own SSL Certificates</strong></p>
<p>Run the following commands to create a temporary SSL key and certificate for testing with your applications:</p>
<ol>
<li>openssl genrsa -des3 -out server.key 1024</li>
<li>openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt</li>
</ol>
<p>Make sure to copy these files to the appropriate location by executing the following commands:</p>
<ul>
<li><code>mv server.crt /etc/ssl/certs/&lt;your server name&gt;.crt</code></li>
<li><code>mv server.key /etc/ssl/private/&lt;your server name&gt;.key</code></li>
<li><code>chmod 400 /etc/ssl/certs/&lt;your server name&gt;.crt</code></li>
<li><code>chmod 400 /etc/ssl/private/&lt;your server name&gt;.key</code></li>
</ul>
<p>The files names and paths need to match as to what you entered in your virtual host file for port 443 (as mentioned above).</p>
<p><strong>NOTE:</strong> To get up and running quickly without creating your own SSL keys and certificates, simply use the snake oil files as listed in the <code>/etc/apache2/sites-available/default-ssl</code> Apache configuration file.<br />
 <br />
<strong>Resources</strong></p>
<ul>
<li><a href="http://peepcode.com/products/phusion-passenger">PeepCode Phusion Passenger Screencast</a></li>
<li><a href="http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html">Apache SSL FAQs</a></li>
<li><a href="http://www.akadia.com/services/ssh_test_certificate.html">How to Create a Self-Signed SSL</a></li>
<li><a href="http://www.oreillynet.com/pub/a/apache/2005/02/17/apacheckbk.html">A Day in the Life of Apache</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/03/15/phusion-passenger-on-ubuntu/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ruby on Rails Quick Start</title>
		<link>http://www.aeonscope.net/2009/03/09/ruby-on-rails-quick-start/</link>
		<comments>http://www.aeonscope.net/2009/03/09/ruby-on-rails-quick-start/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 02:44:24 +0000</pubDate>
		<dc:creator>Brooke Kuhlmann</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.aeonscope.net/?p=1594</guid>
		<description><![CDATA[
Introduction
Ruby on Rails is a web framework built on top of the Ruby programming language that focuses on convention over configuration to get things done.  It was originally developed by David Heinemeier Hansson at 37signals for the Basecamp application.  Eventually, the framework was extracted from Basecamp, open sourced, and is now known as [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src='http://www.aeonscope.net/images/ruby/rails.png' alt='Rails' /></center></p>
<p><strong>Introduction</strong></p>
<p><a href="http://www.rubyonrails.org">Ruby on Rails</a> is a web framework built on top of the <a href="http://www.ruby-lang.org">Ruby</a> programming language that focuses on convention over configuration to get things done.  It was originally developed by <a href="http://en.wikipedia.org/wiki/David_Heinemeier_Hansson">David Heinemeier Hansson</a> at <a href="http://www.37signals.com">37signals</a> for the <a href="http://www.basecamphq.com">Basecamp</a> application.  Eventually, the framework was extracted from Basecamp, open sourced, and is now known as Ruby on Rails.  It is also a total pleasure to work with.</p>
<p><strong>Requirements</strong></p>
<p>It is assumed that you have knowledge of the Ruby language and a working development environment in order to make use of this post.  Read my <a href="http://www.aeonscope.net/2009/02/17/intro-to-ruby-getting-started/">Intro to Ruby</a> article series if you need further instruction.</p>
<p><strong>Literature</strong></p>
<ol>
<li><a href="http://www.sitepoint.com/books/rails1/">Build Your Own Ruby on Rails Web Applications</a> by Patrick Lenz - This was the first book that I read on the Rails framework that walks you through building a simple web application from start to finish.  Something to consider but you might enjoy the book listed below better.</li>
<li><a href="http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">Agile Web Development with Rails, Third Edition</a> - Have not read this book myself as of yet but have heard very good things about it.</li>
<li><a href="http://www.b-simple.de/documents">RESTful Rails</a> - A free PDF available for download.  While knowing the REST architecture is not a prerequisite to developing Ruby on Rails applications, I would strongly recommend that you take time to understand how to use it.  You&#8217;ll be glad you did.</li>
</ol>
<p><strong>API</strong></p>
<p>Good bookmarks to have on hand are:</p>
<ul>
<li><a href="http://apidock.com">API Doc</a> - Provides quick keyword search capabilities as well as community comments for Ruby and Ruby on Rails.  My personal favorite.</li>
<li><a href="http://www.gotapi.com/rubyrails">Got API </a>- An alternative to API Doc but not as easy on the eyes.  Depends on your temperament, of course.</li>
</ul>
<p><strong>News</strong></p>
<p>The following feeds are worth adding to your feed reader in order to stay connected with the community:</p>
<ul>
<li><a href="http://www.railsinside.com">Rails Inside</a> - Get the inside scoop on Rails news.</li>
<li><a href="http://weblog.rubyonrails.com/">Riding Rails</a> - Learn what is happening with the Ruby on Rails team.</li>
<li><a href="http://railspikes.com/">Rails Spikes</a> - A multi-authored site of Ruby developers discussing news, tips, code, etc.</li>
<li><a href="http://www.railsillustrated.com/">Rails Illustrated</a> - Info on Rails, web design, and the user experience.</li>
<li><a href="http://www.rorsecurity.info/">Ruby on Rails Security Project</a> - A good place to read up on security issues or at least keep your mind in it.</li>
<li><a href="http://giantrobots.thoughtbot.com/">Giant Robots Smashing Into Other Giant Robots</a> - Good development tips and tricks, mostly related to Rails.</li>
<li><a href="http://www.railsenvy.com/">Rails Envy</a> - An entertaining and informative weekly podcast dedicated to Ruby, Rails, and web framework news.</li>
<li><a href="http://podcast.rubyonrails.org/">Rails Podcasts</a> - Ruby/Rails podcasts by Geoffrey Grosenbach of <a href="http://peepcode.com/">PeepCode</a> fame.</li>
</ul>
<p><strong>Tools</strong></p>
<p>Using a simple text editor like TextEdit (MacOS) or Notepad (Windows) will do just fine for starters.  However, you might consider the following tools as better alternatives to simple text editors:</p>
<ul>
<li><a href="http://macromates.com/">TextMate</a> - Lightweight, fast, and costs $30. For the MacOS platform only.</li>
<li><a href="http://www.netbeans.org/">NetBeans</a> - Developed by Sun and free to use.  Works on multiple platforms.</li>
<li><a href="http://www.radrails.org/">Aptana</a> - Adds Ruby on Rails support to the Eclipse IDE.  Visit the <a href="http://update.aptana.com/update/studio/3.2/">software update site</a> to install directly into Eclipse.</li>
</ul>
<p>I am a MacOS guy, so TextMate is my development tool of choice when writing Ruby code.  However, if you are not on the MacOS I would recommend Netbeans as it is less buggy than Eclipse (although I do like the Eclipse UI better).</p>
<p>In addition to the tools mentioned above, you might consider installing the <a href="https://addons.mozilla.org/en-US/firefox/addon/5817">SQLite Manager</a> Firefox add-on for quick and easy access to your SQLite3 database.  You can find this and other recommended plugins for Firefox on my <a href="http://www.aeonscope.net/software/applications/firefox/">Firefox page</a>.</p>
<p><strong>Installation</strong></p>
<p>Installation and setup is as simple as installing a few Ruby gems.  Execute the following commands from a command line in the following order:</p>
<ol>
<li>sudo gem install rails</li>
<li>sudo gem install mongrel</li>
<li>sudo gem install sqlite3-ruby</li>
</ol>
<p>When you generate a rails app it will default to using the SQLite3 database. Feel free to install MySQL or some other database for your development needs.  The Mongrel gem installs a web server stack for running your Rails application.  By default, you can run Rails on WEBrick but I recommend using Mongrel instead.</p>
<p><strong>Creating a Rails App</strong></p>
<p>To create your first Rails app, open a terminal window in a working directory of your choice.  Then execute the following command:</p>
<p><code>rails MySpiffyApp</code></p>
<p>This will create a new folder in your working directory called &#8220;MySpiffyApp&#8221;.  Inside this directory you will have set of files and folders that represent the default Rails web application structure.  Make sure to read the README file located in the root of &#8220;MySpiffyApp&#8221; directory to make sense of the file and folder structure.</p>
<p><strong>Running Your Rails App</strong></p>
<p>Right, so now you have a Rails app but how do you run it?  While still in your terminal window, change to the root of your Example project folder and type:</p>
<p><code>script/server -u</code></p>
<p>This will launch your Rails app with debugger support enabled (i.e. the &#8220;-u&#8221; option).  To view your app, just plug this address in your web browser:  http://localhost:3000</p>
<p>Congratulations, you have successfully installed Rails, built a Rails app, and seen it running!</p>
<p><strong>Next Steps</strong></p>
<p>I will be releasing various bits of code in the future that will make building your Ruby on Rails apps easier.  Stay tuned if you want to learn more and don&#8217;t be afraid to send me some feedback as comments are always welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeonscope.net/2009/03/09/ruby-on-rails-quick-start/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
