<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>McKinney Station &#187; Entrepreneurial</title>
	<atom:link href="http://www.mckinneystation.com/categories/entrepreneurial/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mckinneystation.com</link>
	<description>Ruby on Rails web application development for Dallas/Fort Worth and all of North Texas.</description>
	<lastBuildDate>Wed, 02 Sep 2009 14:29:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Rails respond_to Made It Too Easy</title>
		<link>http://www.mckinneystation.com/2009/07/13/rails-respond_to-made-it-too-easy/</link>
		<comments>http://www.mckinneystation.com/2009/07/13/rails-respond_to-made-it-too-easy/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 16:49:35 +0000</pubDate>
		<dc:creator>Geoffrey</dc:creator>
				<category><![CDATA[Entrepreneurial]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Web Applications]]></category>

		<guid isPermaLink="false">http://www.mckinneystation.com/?p=111</guid>
		<description><![CDATA[I recently had a spike in traffic (1-2 visits/day to 30-40 visits/day) over at CatechizeMe.com.  Someone out on the internet came across it, found it useful, and linked to it.  Yay!
With this new traffic, came some new requests for features.  The first was a request for a Google Gadget.  I didn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had a spike in traffic (1-2 visits/day to 30-40 visits/day) over at <a href="http://www.catechizeme.com">CatechizeMe.com</a>.  Someone out on the internet came across it, found it useful, and linked to it.  Yay!</p>
<p>With this new traffic, came some new requests for features.  The first was a request for a <a href="http://www.google.com/ig/directory">Google Gadget</a>.  I didn&#8217;t know much about what I needed to create a Gadget, but after <a href="http://code.google.com/apis/gadgets/index.html">looking it up</a> I realized I could use the <a href="http://www.catechizeme.com/resources/catechizeme-api">CatechizeMe API</a> that came automatically when I built the app.  With just a few lines of code, the Daily Question service was created and returning JSON data.  You gotta love it when things are this easy.</p>
<p>BEFORE:</p>
<pre>
<code>  def daily_question
    @question = @catechism.daily_question
    render :template =&gt; '/questions/show'
  end</code>
</pre>
<p>AFTER:</p>
<pre>
<code>  def daily_question
    @question = @catechism.daily_question
    respond_to do |wants|
      wants.html { render :template =&gt; '/questions/show' }
      wants.js { render_json @question.to_json }
    end
  end</code>
</pre>
<p>So now I get a <a href="http://www.catechizeme.com/catechisms/westminster_shorter_catechism/daily_question">daily catechism question from the CatechizeMe website</a> or via the Google Gadget using JSON:</p>
<p><script src="http://www.gmodules.com/ig/ifr?url=http://www.catechizeme.com/static/google_gadget.xml&amp;up_catechism=westminster_shorter_catechism&amp;synd=open&amp;w=320&amp;h=150&amp;title=CatechizeMe+%3A+Daily+Catechism&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mckinneystation.com/2009/07/13/rails-respond_to-made-it-too-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basejumper &#8211; Yet Another Starter Application</title>
		<link>http://www.mckinneystation.com/2009/02/22/basejumper-yet-another-starter-application/</link>
		<comments>http://www.mckinneystation.com/2009/02/22/basejumper-yet-another-starter-application/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 02:37:06 +0000</pubDate>
		<dc:creator>Geoffrey</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Development Environment]]></category>
		<category><![CDATA[Entrepreneurial]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Web Applications]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[microapps]]></category>

		<guid isPermaLink="false">http://www.mckinneystation.com/?p=102</guid>
		<description><![CDATA[I do not hide the fact that I like to try out new ideas by building lots of little applications.  One thing I find myself doing is recreating many of the same pieces for each application.  So I finally gave in and built a default template for the way I like all of [...]]]></description>
			<content:encoded><![CDATA[<p>I do not hide the fact that I like to try out new ideas by <a href="/2008/06/03/microapps-encourage-hacking/">building lots of little applications</a>.  One thing I find myself doing is recreating many of the same pieces for each application.  So I finally gave in and built a default template for the way I like all of my applications to start.  There are <a href="http://www.railsinside.com/elsewhere/100-7-barebones-rails-apps-to-kick-start-your-development-process.html">other starter apps</a>, but this one is tailored to my idiosyncrasies.</p>
<p>You can find the project, Basejumper, at: <a href="http://github.com/gdagley/basejumper">http://github.com/gdagley/basejumper</a></p>
<h2>What is included?</h2>
<h3>Blueprint <span class="caps">CSS</span> (<a href="http://www.bluprintcss.org">http://www.bluprintcss.org</a>)</h3>
<p>Say what you will about <span class="caps">CSS</span> frameworks, but they make my life a lot easier.  From the website, it &#8220;gives you a solid <span class="caps">CSS</span> foundation to build your project on top of, with an easy-to-use grid, sensible typography, and even a stylesheet for printing.&#8221;  There are official plugins for the framework, like &#8220;buttons&#8221; and &#8220;link-icons&#8221;, and other user created ones, like silksprite (<a href="http://www.ajaxbestiary.com/Labs/SilkSprite">http://www.ajaxbestiary.com/Labs/SilkSprite</a>).</p>
<h3>Authlogic (<a href="http://github.com/binarylogic/authlogic">http://github.com/binarylogic/authlogic</a>)</h3>
<p>The way I think authentication should be done.  Instead of copying a lot of authentication logic (encrypting passwords, remember tokens, etc.) into your user model, it is kept in the gem and is easily updatable.  It has lots of configuration options to fit with your authentication needs and some <a href="http://www.binarylogic.com/2008/11/3/tutorial-authlogic-basic-setup">really</a> <a href="http://www.binarylogic.com/2008/11/16/tutorial-reset-passwords-with-authlogic">good</a> <a href="http://www.binarylogic.com/2008/11/21/tutorial-using-openid-with-authlogic">tutorials</a>.</p>
<p>In app/models/user.rb</p>
<pre><code>class User &lt; ActiveRecord::Base
  acts_as_authentic
end</code></pre>
<h3>Configatron (<a href="http://github.com/markbates/configatron">http://github.com/markbates/configatron</a>)</h3>
<p>This is great way to store application wide configuration and settings.  By adding an initializer to load the config.yml, you can access configuration anywhere in the app.</p>
<p>In config/initializers/load_config.rb:</p>
<pre><code>configatron.configure_from_yaml("config/config.yml", :hash =&gt; Rails.env)</code></pre>
<p>And in config/config.yml</p>
<pre><code>development: &amp;#38;local
    property1: value1
    property2: value2

test:
  &lt;&lt;: *local
  value2: test_value2

production:
  &lt;&lt;: *local
  value2: prod_value2</code></pre>
<h3>Searchlogic (<a href="http://github.com/binarylogic/searchlogic">http://github.com/binarylogic/searchlogic</a>)</h3>
<p>From the same folks who brought you Authlogic, there is Searchlogic.  You will always need pagination.  You may not think so now, but believe me, you will.  So just start out with it enabled.  What I really, really like about Searchlogic, is not just the pagination support, but how easy it makes building advanced search forms (including searching nested objects).  And again, there is a <a href="http://www.binarylogic.com/2008/9/7/tutorial-pagination-ordering-and-searching-with-searchlogic">great tutorial</a></p>
<h3>log-buddy (<a href="http://github.com/relevance/log_buddy">http://github.com/relevance/log_buddy</a>)</h3>
<p>For the lazy debugger in all of us. How many times have you typed:</p>
<pre><code>some_var = 'some_value'
logger.debug "some_var = #{some_var}" </code></pre>
<p>Now try this</p>
<pre><code>some_var = 'some_value'
d { some_var }</code></pre>
<p>which will log</p>
<pre><code>some_var = 'some_value'  </code></pre>
<h3>micronaut and micronaut-rails (<a href="http://github.com/spicycode/micronaut">http://github.com/spicycode/micronaut</a> and <a href="http://github.com/spicycode/micronaut-rails">http://github.com/spicycode/micronaut-rails</a>)</h3>
<p>It just makes more sense to me.  Like <a href="http://rspec.info/">RSpec</a>, only fewer calories.  micronaut is a <a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development"><span class="caps">BDD</span></a> framework similar to RSpec.  In fact it uses all the same RSpec matchers, so there is not a new syntax to learn.  And it adds metadata to the loaded examples that is useful for deciding which tests to run, exclude, document, etc. or building additional tools for your example suite.</p>
<p>The application currently has examples (a.k.a. specs) for most of the existing code.  Adding new examples, should be quick and easy.  To see it all, start with <code>rake examples</code></p>
<h3>beholder treasure map (<a href="http://github.com/spicycode/beholder">http://github.com/spicycode/beholder</a>)</h3>
<p>I like continuous integration.  I <a href="http://www.thinkrelevance.com">work for a company</a> that <a href="http://www.runcoderun.com">likes continuous integration</a>.  Having continuous testing locally let&#8217;s me as soon as I break something.</p>
<p>beholder watches for files to change and then reruns the appropriate tests/specs/examples.  Now I don&#8217;t have an excuse for not running the example suite, because it is always running for me.</p>
<h3>active_form (<a href="http://github.com/nesquena/active_form">http://github.com/nesquena/active_form</a>)</h3>
<p>Easy ActiveRecord validations for non-AR models (for those Contact Us forms).</p>
<h3>comatose (<a href="http://github.com/darthapo/comatose">http://github.com/darthapo/comatose</a>)</h3>
<p>Inevitably, every project wants to be able to manage the &#8220;static&#8221; content on the site.  Comatose is a very simple <span class="caps">CMS</span> plugin.  Nothing fancy, but that is great for these small projects.  You can even style the admin interface to look more like your application (which I did), but the default styles could work just fine.  It is possible to use the content in Comatose as an entire page or a partial across many pages.  The app has a migration that creates some default pages and an example partial.</p>
<h3>active_scaffold (<a href="http://github.com/activescaffold/active_scaffold">http://github.com/activescaffold/active_scaffold</a>)</h3>
<p>Fastest way to build a super simple admin interface.  Or you could use it to build more complex admin.  It is really quite flexible with its search, <span class="caps">CRUD</span>, and the ability to customize.</p>
<h3>display_flash_helper (<a href="http://github.com/gdagley/display_flash_helper">http://github.com/gdagley/display_flash_helper</a>)</h3>
<p>Shameless use of my own plugin to display flash messages.  Nothing too fancy.</p>
<h3>exception_notification (<a href="http://github.com/rails/exception_notification">http://github.com/rails/exception_notification</a>)</h3>
<p>Because they happen and I want to know about them.</p>
<h3>pretty_buttons (<a href="http://github.com/relevance/pretty_buttons">http://github.com/relevance/pretty_buttons</a>)</h3>
<p><span class="caps">HTML</span> buttons shouldn&#8217;t have to look so bad.  This plugin plays nicely with Blueprint <span class="caps">CSS</span> buttons plugin, too</p>
<h3>semantic_form_builder (<a href="http://github.com/nesquena/semantic_form_builder">http://github.com/nesquena/semantic_form_builder</a>)</h3>
<p><span class="caps">HTML</span> forms made easier and semantic.  Also makes the forms easier to style.</p>
<h3>seo_helper (<a href="http://github.com/relevance/seo_helper">http://github.com/relevance/seo_helper</a>)</h3>
<p>A few useful helpers for <span class="caps">SEO</span> purposes.  Create page titles (h1) that match the html title (title), support for meta tags and easily add some breadcrumbs to each page.</p>
<h2>Conclusion</h2>
<p>Like I said before, it is tailored to they way I like things to start out.  You can fork it and change it.  I may not roll you changes back in, but that&#8217;s ok because now you have an starter app just the way you like it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mckinneystation.com/2009/02/22/basejumper-yet-another-starter-application/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Adding an iPhone Interface to an Existing Rails Application</title>
		<link>http://www.mckinneystation.com/2009/02/20/adding-an-iphone-interface-to-an-existing-rails-application/</link>
		<comments>http://www.mckinneystation.com/2009/02/20/adding-an-iphone-interface-to-an-existing-rails-application/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 17:21:20 +0000</pubDate>
		<dc:creator>Geoffrey</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Entrepreneurial]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Web Applications]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iUI]]></category>
		<category><![CDATA[pagination]]></category>

		<guid isPermaLink="false">http://www.mckinneystation.com/?p=95</guid>
		<description><![CDATA[I have been gradually adding new features to my StagingTracks.com website.  Really, it is a place where I can try out new things outside the office.  I have upgraded the UI to be a little cleaner by using the Blueprint CSS framework.  It was a easy way to normalize the CSS across [...]]]></description>
			<content:encoded><![CDATA[<p>I have been gradually adding new features to my <a href="/http://www.stagingtracks.com">StagingTracks.com</a> website.  Really, it is a place where I can try out new things outside the office.  I have upgraded the UI to be a little cleaner by using the <a href="http://www.blueprintcss.org">Blueprint <span class="caps">CSS</span> framework</a>.  It was a easy way to normalize the <span class="caps">CSS</span> across browsers and easily implement a column-based layout.  I also added <a href="http://twitter.com/stagingtracks">Twitter notifications</a> when new shops, clubs, and shows are added and reminders for upcoming shows each week.  Does the model railroading community really need all of this?  Probably not, but it helps me keep my skillz sharp.</p>
<h2>Finding Shops, Clubs, and Shows on your iPhone</h2>
<p><a href="http://www.stagingtracks.com/posts/getting_started">When I built StagingTracks a few years ago</a>, I did it because I was traveling and wanted to easily find the model railroading community wherever I was.  As it has grown over the past few years, so has technology.  While it was possible to navigate the StagingTracks website using a browser on the phone, it was not optimal.  Since this is my little sandbox for experimenting, I wanted to see how difficult it would be to add an optimized iPhone interface.</p>
<h2>Native app or Web app?</h2>
<p>I spend my daylight hours <a href="http://www.thinkrelevance.com">developing web applications for others</a>, so it made sense that I should reuse the infrastructure that I already had in place.  I didn&#8217;t want to learn iPhone <span class="caps">SDK</span> and all that is involved with that right now and I had recently come across the <a href="http://code.google.com/p/iui/">iUi javascript and css framework</a>.  iUI can give web applications a native iPhone application feel, so I just needed to see how to incorporate it into my &#8220;legacy&#8221; Rails application.</p>
<h2>Resources</h2>
<p>A quick Google search for iUI and Rails turned up Ben Smith&#8217;s excellent <a href="http://www.slashdotdash.net/2007/12/04/iphone-on-rails-creating-an-iphone-optimised-version-of-your-rails-site-using-iui-and-rails-2/">iPhone on Rails</a> article.</p>
<h3>iPhoney</h3>
<p>Reading through the article, I downloaded <a href="http://www.marketcircle.com/iphoney/">iPhoney</a> for quick testing without an iPhone.  Be sure to use the iPhone User Agent in the iPhoney menu.</p>
<h3>Local Subdomain for Testing</h3>
<p>I was going to serve the iPhone version from the subdomain iphone.stagingtracks.com, so I needed to setup something similar in my local development environment.  Fortunately, this was very easy with the <a href="http://github.com/bjeanes/ghost/tree/master">Ruby Ghost gem</a> found via Robby Russell&#8217;s <a href="http://www.robbyonrails.com/articles/2009/01/12/get-to-know-a-gem-ghost">Get to know a gem: Ghost</a>.</p>
<pre><code>sudo ghost add iphone.localhost.com</code></pre>
<p>We needed to add the .com so that the call to the request.subdomains will pick out the iphone portion.</p>
<h3>iUI Framework</h3>
<p>After downloading the iUI framework from the <a href="http://code.google.com/p/iui/">project site</a>, I moved everything into its rightful place.</p>
<pre>
<code>public
  - stylesheets
    - iui.css
  - javascripts
    - iui.js
  - images
    - iui
      - copy all of the .gif and .png files into here</code>
</pre>
<p>Because I moved the images into the <code>/images/iui</code> folder, I needed to update the image locations in the iUI css.  A quick find/replace and I was ready to go.</p>
<h2>Application changes</h2>
<p>I won&#8217;t go into all the details since <a href="http://www.slashdotdash.net/2007/12/04/iphone-on-rails-creating-an-iphone-optimised-version-of-your-rails-site-using-iui-and-rails-2/">Ben&#8217;s article</a> hit most of the high points.  Here are the few additional bits that I came across as I was adding my iPhone interface.</p>
<h3>Basic approach</h3>
<p>The basic approach to adding the iphone interface is to update the controller to render the iphone partial without the layout (since everything is <span class="caps">AJAX</span>) and then create an iphone template.</p>
<p>In posts_controller.rb change from:</p>
<pre><code>def show
  @post = Post.find(params[:id])
end  </code></pre>
<p>to</p>
<p><strong>UPDATE:</strong>: format.html should come before format.iphone.  For some reason it was working for browsers that were not IE.  Weird.</p>
<pre><code>def show
  @post = Post.find(params[:id])
  respond_to do |format|
    format.html
    format.iphone { render :layout =&gt; false }
  end
end  </code></pre>
<p>iphone template posts/show.iphone.erb:</p>
<pre><code>&lt;div class="panel" title="&lt;%= @post.title %&gt;" selected="true"&gt;
  &lt;h3&gt;&lt;%= @post.title %&gt;&lt;/h3&gt;
  &lt;%= render :partial =&gt; 'post.html.erb', :locals =&gt; {:post =&gt; @post} %&gt;
&lt;/div&gt;  </code></pre>
<h3>Search Button</h3>
<p>Since one of the more interesing features of StagingTracks is the ability to search for organizations near you, I wanted that to be prominent.  By adding a &#8220;button&#8221; link to the toolbar, it now shows up on every page.</p>
<p>In application.iphone.erb:</p>
<pre><code>&lt;div class="toolbar"&gt;
  &lt;h1 id="pageTitle"&gt;&lt;/h1&gt;
  <a id="backButton" class="button" href="#"></a>
  &lt;%= link_to "Search", search_path, :class =&gt; 'button' %&gt;
&lt;/div&gt;</code></pre>
<h3>Dynamically Growing Lists (a.k.a pagination)</h3>
<p>Since I already had paging in place for the blog posts, I wanted to be able to reuse that, if possible.  Turns out that was pretty easy to add as well.  I needed to separate the post_items into a separate partial so that I could return the next page of <code>&lt;li&gt;'s</code> to replace the &#8220;More news&#8230;&#8221; link (notice the target for the &#8220;More news&#8230;&#8221; link is &#8220;_replace&#8221;).</p>
<p>In posts/index.iphone.erb</p>
<pre><code>&lt;ul title="News" selected="true"&gt;
  &lt;%= render :partial =&gt; 'post_items', :locals =&gt; {:posts =&gt; @posts} %&gt;
&lt;/ul&gt;</code></pre>
<p>In posts/_post_items.iphone.erb</p>
<pre><code>&lt;% posts.each do |post| %&gt;
  &lt;li&gt;&lt;%= link_to post.title, post %&gt;&lt;/li&gt;
&lt;% end %&gt;
&lt;%= content_tag :li, link_to("More news...", posts_path(:page =&gt; posts.next_page), :target =&gt; "_replace") if posts.next_page %&gt;</code></pre>
<p>A quick change in the posts_controller.rb from:</p>
<pre><code>def index
  @posts = Post.latest.published.paginate :page =&gt; page, :order =&gt; 'published_at desc'
end</code></pre>
<p>to:</p>
<p><strong>UPDATE:</strong>: Same change to the ordering of format.html and  format.iphone.  </p>
<pre><code>def index
  @posts = Post.latest.published.paginate :page =&gt; page, :order =&gt; 'published_at desc'
  respond_to do |format|
    format.html
    format.iphone do
      if page == 1
          render :layout =&gt; false
        else
          render :layout =&gt; false, :partial =&gt; "post_items", :locals =&gt; {:posts =&gt; @posts}
      end
    end
  end
end</code></pre>
<h3>Styling Form Select Inputs</h3>
<p>My search form has a dropdown for choosing the country that you want to search.  By default, this did not look very nice.  Since it didn&#8217;t need a label, I just left it out in the form and added some additional <span class="caps">CSS</span>.</p>
<p>In search/index.iphone.erb</p>
<pre><code>&lt;% form_tag(search_path, :class =&gt; 'panel', :title =&gt; 'Search')  do %&gt;
  &lt;h2&gt;Find Local Shops, Clubs, and Shows&lt;/h2&gt;

  &lt;%= content_tag :p, flash[:error], :class =&gt; 'error' if flash[:error] %&gt;

  &lt;fieldset&gt;
    &lt;div class="row"&gt;
      &lt;%= country_select :search, :country, ['United States', 'Canada'], {} %&gt;
    &lt;/div&gt;  

    &lt;div class="row"&gt;
      &lt;label for='search_city'&gt;City&lt;/label&gt;
      &lt;input type="text" value="" name="search[city]" id="search_city"/&gt;
    &lt;/div&gt;

    &lt;div class="row"&gt;
      &lt;label for='search_state'&gt;State&lt;/label&gt;
      &lt;input type="text" value="" name="search[state]" id="search_state"/&gt;
    &lt;/div&gt;
  &lt;/fieldset&gt;
  &lt;%= link_to "Submit", "#", :class =&gt; 'whiteButton', :type =&gt; "submit" %&gt;
&lt;% end %&gt;</code></pre>
<p>And in my extra iphone.css (anything else that I needed to add to iui.css)</p>
<pre><code>.row &gt; select {
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    margin: 0;
    border: none;
    padding: 0;
    height: 42px;
    background: none;
    font-size: 16px;
    width: 100%;
}

.error {
  font-weight: bold;
  color: #8a1f11;
  margin-left: 14px;
}</code></pre>
<h2>Conclusion</h2>
<p>All told, I probably spent less than eight hours over a couple of nights adding a simple iPhone interface to my existing application.  I still want to look in to modifying the <span class="caps">CSS</span> more to have it look more like the regular StagingTracks website, but that can come later.  This was a fun little experiment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mckinneystation.com/2009/02/20/adding-an-iphone-interface-to-an-existing-rails-application/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Things I Really Like</title>
		<link>http://www.mckinneystation.com/2008/08/15/things-i-really-like/</link>
		<comments>http://www.mckinneystation.com/2008/08/15/things-i-really-like/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 21:12:05 +0000</pubDate>
		<dc:creator>Geoffrey</dc:creator>
				<category><![CDATA[Entrepreneurial]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WorkingWithRails]]></category>

		<guid isPermaLink="false">http://www.mckinneystation.com/?p=83</guid>
		<description><![CDATA[After a few years of a very boring layout for the McKinney Station website, I have added a few items in the sidebar to show that I actually do things around here.  It&#8217;s not much, but it is a start.  You can follow me on Twitter, check out my projects on Github and [...]]]></description>
			<content:encoded><![CDATA[<p>After a few years of a very boring layout for the McKinney Station website, I have added a few items in the sidebar to show that I actually do things around here.  It&#8217;s not much, but it is a start.  You can follow me on <a href="http://twitter.com/gdagley">Twitter</a>, check out my projects on <a href="http://github.com/gdagley">Github</a> and <a href="http://rubyforge.org/users/gdagley/">RubyForge</a>, and see what I am reading on <a href="http://delicious.com/gdagley">del.icio.us</a>. </p>
<p>Hopefully this gives a little insight into what I do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mckinneystation.com/2008/08/15/things-i-really-like/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pay For What You Use</title>
		<link>http://www.mckinneystation.com/2007/12/01/pay-for-what-you-use/</link>
		<comments>http://www.mckinneystation.com/2007/12/01/pay-for-what-you-use/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 04:44:52 +0000</pubDate>
		<dc:creator>Geoffrey</dc:creator>
				<category><![CDATA[Dallas]]></category>
		<category><![CDATA[Entrepreneurial]]></category>
		<category><![CDATA[North Texas]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web Applications]]></category>

		<guid isPermaLink="false">http://www.mckinneystation.com/2007/12/01/pay-for-what-you-use/</guid>
		<description><![CDATA[My friend, Chris Gay, is a finalist in the Amazon Web Services Startup Challenge with his company, MileMeter.  I love the concept of only paying for the auto insurance I am going to use.  Both my wife and I work out of the home and therefore our cars sit in the garage alot. [...]]]></description>
			<content:encoded><![CDATA[<p>My friend, Chris Gay, is a finalist in the <a href="http://developer.amazonwebservices.com/connect/amazon_startupchallenge.jsp">Amazon Web Services Startup Challenge</a> with his company, <a href="http://www.milemeter.com">MileMeter</a>.  I love the concept of only paying for the auto insurance I am going to use.  Both my wife and I work out of the home and therefore our cars sit in the garage alot.  But I still have to pay the same rates as my neighbors who drive to downtown Dallas everyday.  For both cars!  </p>
<p>So now I urge you to <a href="http://developer.amazonwebservices.com/connect/amazon_startupchallenge.jsp">go and vote for Chris and MileMeter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mckinneystation.com/2007/12/01/pay-for-what-you-use/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ahhhh&#8230;.  Room To Move</title>
		<link>http://www.mckinneystation.com/2007/11/09/ahhhh-room-to-move/</link>
		<comments>http://www.mckinneystation.com/2007/11/09/ahhhh-room-to-move/#comments</comments>
		<pubDate>Fri, 09 Nov 2007 18:25:48 +0000</pubDate>
		<dc:creator>Geoffrey</dc:creator>
				<category><![CDATA[Development Environment]]></category>
		<category><![CDATA[Entrepreneurial]]></category>

		<guid isPermaLink="false">http://www.mckinneystation.com/2007/11/09/ahhhh-room-to-move/</guid>
		<description><![CDATA[I got a Dell 2007WFP Ultrasharp 20&#8243; LCD monitor this week using BINalert.com.  
First, about the monitor and setup.  It is a great monitor, nice and bright!  My friend, Matt, encouraged me to spend a little more and get the Ultrasharp.  I am glad I did (although I didn&#8217;t pay much [...]]]></description>
			<content:encoded><![CDATA[<p>I got a Dell 2007WFP Ultrasharp 20&#8243; LCD monitor this week using <a href="http://www.binalert.com">BINalert.com</a>.  </p>
<p>First, about the monitor and setup.  It is a great monitor, nice and bright!  My friend, Matt, encouraged me to spend a little more and get the Ultrasharp.  I am glad I did (although I didn&#8217;t pay much more, see below).  I REALLY love the portrait mode.  In the picture I have <a href="http://www.mailplaneapp.com">Mailplane</a>, <a href="http://www.karppinen.fi/pyro/">Pyro</a>, <a href="http://www.skype.com">Skype</a>, and <a href="http://iconfactory.com/software/twitterrific">Twitterific</a> all stacked nicely.  And it doesn&#8217;t feel crowded.  I use <a href="http://virtuedesktops.info/">VirtueDesktops</a> and  keep all my work on the another virtual desktop.  On the &#8220;work&#8221; desktop I put <a href="http://macromates.com/">Textmate</a> and can see lots of lines of code.  Plus I still have room to keep open console windows at the bottom to see <a href="http://www.zenspider.com/ZSS/Products/ZenTest/">autotest results</a>, server logs, etc.  My browser can stay open on the laptop for easy inspection of whatever I am developing.  </p>
<p><img src='http://www.mckinneystation.com/wp-content/uploads/2007/11/desktop.JPG' alt='Desktop' /></p>
<p>Now about <a href="http://www.binalert.com">BINalert.com</a>.  (Disclosure: I built this site with a friend and I do make money with it.)  BINalert lets you setup up alerts so you can get notifications on new Buy-It-Now auctions on eBay.  There are lots of items listed with Buy-It-Now prices that are REALLY good deals.  For example, this monitor.  I setup an alert to watch for Dell 2007WFP Ultrasharp monitors with a Buy-It-Now price of $250 or less.  As soon as this one was listed, I got an email letting me know.  I went and checked it out (it was used but in great condition), and a week later I have my new monitor (or at least it&#8217;s new to me).  And I saved about $150 in the process.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mckinneystation.com/2007/11/09/ahhhh-room-to-move/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Connected With Others</title>
		<link>http://www.mckinneystation.com/2007/05/15/getting-connected-with-others/</link>
		<comments>http://www.mckinneystation.com/2007/05/15/getting-connected-with-others/#comments</comments>
		<pubDate>Tue, 15 May 2007 13:49:51 +0000</pubDate>
		<dc:creator>Geoffrey</dc:creator>
				<category><![CDATA[Entrepreneurial]]></category>
		<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[RailsForAll]]></category>
		<category><![CDATA[WorkingWithRails]]></category>

		<guid isPermaLink="false">http://www.mckinneystation.com/2007/05/15/getting-connected-with-others/</guid>
		<description><![CDATA[photo by wildcat dunny

I have come across a few useful sites the are helping to connect other Rails developers with each other.  Some are specific to RailsConf while others are targeted at Rails developers.
RailsConf

MyConfPlan &#8211; Plan which sessions you will be going to.  Here&#8217;s my schedule.
ConferenceMeetup &#8211; Meet up with others while at [...]]]></description>
			<content:encoded><![CDATA[<div class="shadow right"><img src='http://www.mckinneystation.com/wp-content/uploads/2007/05/train_over_canal.jpg' alt='Train over canal.' /><br/><span class="credit">photo by <a href="http://www.flickr.com/photos/wildcat_dunny/">wildcat dunny</a></credit>
</div>
<p>I have come across a few useful sites the are helping to connect other Rails developers with each other.  Some are specific to RailsConf while others are targeted at Rails developers.</p>
<h2>RailsConf</h2>
<ul>
<li><a href="http://myconfplan.com/conferences/RailsConf2007/">MyConfPlan</a> &#8211; Plan which sessions you will be going to.  <a href="http://myconfplan.com/conferences/RailsConf2007/users/gdagley">Here&#8217;s my schedule</a>.</li>
<li><a href="http://railsconf2007.conferencemeetup.com/">ConferenceMeetup</a> &#8211; Meet up with others while at RailsConf.  <a href="http://railsconf2007.conferencemeetup.com/p/378-geoffrey-dagley">Want to me up with me?</a></li>
</ul>
<h2>Entrepreneurial</h2>
<ul>
<li><a href="http://workingwithrails.com/">Working With Rails</a> &#8211; Find and recommend others who are working with Rails.  You can <a href="http://workingwithrails.com/person/2612-geoffrey-dagley">see what I am doing</a> and even <a href="http://workingwithrails.com/recommendation/new/person/2612-geoffrey-dagley">recommend me</a> if you want.</li>
<li><a href="http://www.railsforall.org">Rails For All</a> &#8211; Promoting Rails to the world.  <a href="http://www.railsforall.org/independent_developers/55">And helping freelance developers get their name out there.</a> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mckinneystation.com/2007/05/15/getting-connected-with-others/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is That Really What It Looks Like?</title>
		<link>http://www.mckinneystation.com/2007/05/14/is-that-really-what-it-looks-like/</link>
		<comments>http://www.mckinneystation.com/2007/05/14/is-that-really-what-it-looks-like/#comments</comments>
		<pubDate>Mon, 14 May 2007 13:41:28 +0000</pubDate>
		<dc:creator>Geoffrey</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Entrepreneurial]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Applications]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[wireframing]]></category>

		<guid isPermaLink="false">http://www.mckinneystation.com/2007/05/14/is-that-really-what-it-looks-like/</guid>
		<description><![CDATA[
photo by texas_mustang

One of the things I like about taking a project from start to finish is the first few rounds of development where we hammer out what the application is supposed to do.  After reading Kathy Sierra&#8217;s article &#8220;Don&#8217;t Make the Demo Look Done&#8220;, I wanted to see if I could come up [...]]]></description>
			<content:encoded><![CDATA[<div class="shadow left"><img src='http://www.mckinneystation.com/wp-content/uploads/2007/05/marhall_deputies_engineer.jpg' alt='Marshall, Deputies, and Engineer' /><br />
<br/><span class="credit">photo by <a href="http://www.flickr.com/photos/astros/">texas_mustang</a></span>
</div>
<p>One of the things I like about taking a project from start to finish is the first few rounds of development where we hammer out what the application is supposed to do.  After reading Kathy Sierra&#8217;s article &#8220;<em><a href="http://headrush.typepad.com/creating_passionate_users/2006/12/dont_make_the_d.html">Don&#8217;t Make the Demo Look Done</a>&#8220;</em>, I wanted to see if I could come up with something similar to the <em><a href="http://napkinlaf.sourceforge.net/">Napkin Look and Feel</a></em> for my web applications.</p>
<p>Why is it important?  I have found out the hard way, what Joel Spolsky points out in <em><a href="http://www.joelonsoftware.com/articles/fog0000000356.html">The Iceberg Secret, Revealed</a></em>.  As soon I start putting the colors, graphics, and drop shadows in place for the finished product, the attention is no longer on the functionality of the application and now turns to &#8220;could you move that button over 5 pixels?&#8221;  And this is still while half the application remains unfinished!</p>
<p>So this is my interpretation of making the demo look like a demo.  It is completely driven with a separate CSS stylesheet that can be removed and replaced with the finished stylesheet.  <a href="http://www.mckinneystation.com/2007/04/25/save-yourself-hours-of-css-frustration/">I make use of the Yahoo CSS</a> and <a href="http://webserve.govst.edu/users/gas52r0/Jay/backgrounds/webpaper/index.html">some paper background images</a>.  I have even contemplated making use of <a href="http://blog.caboo.se/articles/2007/3/29/tongue-in-cheek-goes-to-1-1">the Tongue In Cheek icons</a> to make it even more authentic.  I would have used a handwriting font, but there is not a good cross browser way to deliver fonts, so Comic Sans will have to satisfy the prototype font requirement.</p>
<p>Here are what the initial screens look like for a new application:</p>
<ul>
<li>Home Page <a href='http://www.mckinneystation.com/wp-content/uploads/2007/05/prototype-1.png' title='Prototype Home Page'><img src='http://www.mckinneystation.com/wp-content/uploads/2007/05/prototype-1.thumbnail.png' alt='Prototype Home Page' /></a></li>
<li>Sample Page <a href='http://www.mckinneystation.com/wp-content/uploads/2007/05/prototype-2.png' title='Prototype Sample Page'><img src='http://www.mckinneystation.com/wp-content/uploads/2007/05/prototype-2.thumbnail.png' alt='Prototype Sample Page' /></a></li>
<li>Sample Page <a href='http://www.mckinneystation.com/wp-content/uploads/2007/05/prototype-3.png' title='Another Sample Page'><img src='http://www.mckinneystation.com/wp-content/uploads/2007/05/prototype-3.thumbnail.png' alt='Another Sample Page' /></a></li>
</ul>
<h2>Does it work?</h2>
<p>So far it has worked great.  And as soon as we switch stylesheets, we lose focus on the functionality.  Every time.  So I will keep using this and keep pushing this as far as a project will let me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mckinneystation.com/2007/05/14/is-that-really-what-it-looks-like/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails Development Environment in Ubuntu</title>
		<link>http://www.mckinneystation.com/2007/05/08/rails-development-environment-in-ubuntu/</link>
		<comments>http://www.mckinneystation.com/2007/05/08/rails-development-environment-in-ubuntu/#comments</comments>
		<pubDate>Tue, 08 May 2007 14:59:20 +0000</pubDate>
		<dc:creator>Geoffrey</dc:creator>
				<category><![CDATA[Averatec]]></category>
		<category><![CDATA[Development Environment]]></category>
		<category><![CDATA[Entrepreneurial]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[RSpec]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[fastercsv]]></category>
		<category><![CDATA[hpricot]]></category>
		<category><![CDATA[mongrel]]></category>
		<category><![CDATA[starfish]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.mckinneystation.com/2007/05/08/rails-development-environment-in-ubuntu/</guid>
		<description><![CDATA[photo by zruvalcaba
After my last post, I thought I would share what I use for developing on Ubuntu.
Editor
I have always been a hands-on kinda guy, so I don&#8217;t use any of the fancy IDEs.  Right now, I am using SciTE for two reasons.  It feels lightweight and it is available for Linux and [...]]]></description>
			<content:encoded><![CDATA[<div class="shadow right"><img src='http://www.mckinneystation.com/wp-content/uploads/2007/05/goat_canyon_trestle.jpg' alt='Goat Canyon Trestle' /><br/><span class="credit">photo by <a href="http://www.sxc.hu/profile/zruvalcaba">zruvalcaba</a></span></div>
<p>After <a href="http://www.mckinneystation.com/2007/05/08/and-that-is-why-you-have-backups/">my last post</a>, I thought I would share what I use for developing on <a href="http://www.ubuntu.com">Ubuntu</a>.</p>
<h2>Editor</h2>
<p>I have always been a hands-on kinda guy, so I don&#8217;t use any of the <a href="http://www.aptana.com/">fancy</a> <a href="http://www.jetbrains.com/idea/index.html">IDEs</a>.  Right now, I am using <a href="http://www.scintilla.org/SciTE.html">SciTE</a> for two reasons.  It feels lightweight and it is available for Linux and Windows.  Since <a href="http://www.averatec.com/products/portable/thinlight/3200Series.asp">my laptop</a> does not have a lot of memory, a lightweight editor is a must.  I tried <a href="http://www.eclipse.org/">Eclipse</a>, but it chewed up all my memory and slowed things to a crawl.  So SciTE with <a href="http://caladbolg.net/scite.php">some additional plugins</a> (and <a href="http://mondaybynoon.com/2007/03/12/using-scite-with-textmate-style-snippets/">information on getting them going</a>) powers <a href="http://www.mckinneystation.com/projects">the development at McKinney Station</a>.</p>
<h2>Ruby and Rails</h2>
<p>I am using the latest <a href="http://www.ruby-lang.org/en/">Ruby</a> and <a href="http://www.rubyonrails.com">Rails</a> for all new development.  For testing I am using <a href="http://rspec.rubyforge.org">RSpec</a>, which seems <a href="http://www.mckinneystation.com/2007/04/25/specify-first-test-last-if-ever/">a lot more intuitive to me</a>.  Other <a href="http://rubygems.org/">gems</a> I  have installed include:</p>
<ul>
<li><a href="http://fastercsv.rubyforge.org/">FasterCSV</a> &#8211; parsing CSV files</li>
<li><a href="http://tech.rufy.com/2006/08/mapreduce-for-ruby-ridiculously-easy.html">starfish</a> &#8211; simple Ruby Map/Reduce</li>
<li><a href="http://mongrel.rubyforge.org/">mongrel</a> &#8211; lightweight Ruby web server</li>
<li><a href="http://code.whytheluckystiff.net/hpricot/">hpricot</a> &#8211; Ruby HTML parser</li>
</ul>
<h2>Database</h2>
<p>I love starting all of my development projects with SQLite.  It is <a href="http://wiki.rubyonrails.org/rails/pages/HowtoUseSQLite">so easy to get up and running</a>.   As the project matures, I am able to quickly switch development over to a MySQL database with a change in the application&#8217;s database configuration and a quick <code>rake db:migrate</code>.</p>
<h2>Version Control</h2>
<p>All source code versioning is done with Subversion.  With <a href="http://www.railsonwave.com/railsonwave/2006/12/19/smart-subversion-script-for-rails-projects">this quick little script</a>, I can get a Rails project committed and started in minutes.</p>
<h2>Conclusion</h2>
<p>I am always looking for ways to speed up my development process, but so far this is working for me.  And it is very enjoyable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mckinneystation.com/2007/05/08/rails-development-environment-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>And That Is Why You Have Backups</title>
		<link>http://www.mckinneystation.com/2007/05/08/and-that-is-why-you-have-backups/</link>
		<comments>http://www.mckinneystation.com/2007/05/08/and-that-is-why-you-have-backups/#comments</comments>
		<pubDate>Tue, 08 May 2007 14:06:40 +0000</pubDate>
		<dc:creator>Geoffrey</dc:creator>
				<category><![CDATA[Averatec]]></category>
		<category><![CDATA[Entrepreneurial]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.mckinneystation.com/2007/05/08/and-that-is-why-you-have-backups/</guid>
		<description><![CDATA[photo by ralph lehmann

Last week, my laptop started acting funny.  Not that unusual since I run Ubuntu on my laptop. It&#8217;s not one of the super computers all my buddies have, but it does let me get the job done.  
So last week when things finally got to a tipping point, I decided [...]]]></description>
			<content:encoded><![CDATA[<div class="shadow left"><img src='http://www.mckinneystation.com/wp-content/uploads/2007/05/steam.jpg' alt='Steam Engine' /><br /><span class="credit">photo by <a href="http://www.stockvault.net/view_photog.php?photogid=1023">ralph lehmann</a></span>
</div>
<p>Last week, my laptop started acting funny.  Not that unusual since I run <a href="http://www.ubuntu.com">Ubuntu</a> on <a href="http://www.averatec.com/products/portable/thinlight/3200Series.asp">my laptop</a>. It&#8217;s not <a href="http://www.apple.com/macbookpro/">one of the super computers</a> all <a href="http://www.meme-rocket.com/">my</a> <a href="http://mvm.therealadam.com/">buddies</a> have, but it does let me <a href="http://www.mckinneystation.com/projects">get the job done</a>.  </p>
<p>So last week when things finally got to a tipping point, I decided to try an upgrade to the latest Ubuntu release.  Needless to say, it didn&#8217;t go as planned.  With a planned trip coming up, I needed to get things back in order quickly.  I made sure I had a current backup of my /home directory, and did a brand new install.  Things went mostly well (remember this is a laptop) and within a day I was back up and going.</p>
<p>For my own reference later, these are the things I had to do to get Ubuntu working on my Averatec.</p>
<ul>
<li><a href="https://bugs.launchpad.net/ubuntu/+bug/48263">Add boot setting to enable wired network</a>.</li>
<li><a href="http://www.averatec.com/customercare/downloads.asp">Download Broadcom 43xx drivers for wireless network.</a></li>
<li>Use ndiswrapper and blacklist broadcom drivers (<a href="http://ubuntuforums.org/showthread.php?t=187316&#038;page=2">see last post by codyjack</a>)</li>
<li><a href="http://johnny.chadda.se/2007/02/21/unlock-the-gnome-keyring-upon-login/">Unlock the keyring automatically when logging in to quickly connect to wireless networks</a>.</li>
<li>Restore backup</li>
<li>Get back to work</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mckinneystation.com/2007/05/08/and-that-is-why-you-have-backups/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
