<?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>infused.org &#187; Software</title>
	<atom:link href="http://www.infused.org/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.infused.org</link>
	<description></description>
	<lastBuildDate>Tue, 05 Jan 2010 00:33:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Blame Game</title>
		<link>http://www.infused.org/2009/01/05/the-blame-game/</link>
		<comments>http://www.infused.org/2009/01/05/the-blame-game/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 00:20:07 +0000</pubDate>
		<dc:creator>Keith</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.infused.org/?p=440</guid>
		<description><![CDATA[In just about every Rails project I&#8217;ve worked on over the last several years we&#8217;ve needed track the user who creates and updates database records.  The most popular solution seems to be DeLynn Berry&#8217;s userstamp plugin and, until recently, that&#8217;s what we&#8217;ve always chosen to use too.  But after fighting incompatibility with newer [...]]]></description>
			<content:encoded><![CDATA[<p>In just about every Rails project I&#8217;ve worked on over the last several years we&#8217;ve needed track the user who creates and updates database records.  The most popular solution seems to be DeLynn Berry&#8217;s userstamp plugin and, until recently, that&#8217;s what we&#8217;ve always chosen to use too.  But after fighting incompatibility with newer versions of Rails I decided to write my own plugin.  Enter <a href="http://github.com/infused/blame/tree/master">Blame</a>.</p>
<p>Blame automatically userstamps create and update operations if the table has columns named created_by and/or updated_by.</p>
<p><b>Installation:</b></p>
<pre><code>ruby script/plugin install git://github.com/infused/blame.git</code></pre>
<p>Blame assumes that you are using <a href="http://github.com/technoweenie/restful-authentication/tree/master">restful-authentication</a> and expects User.current_user to return the current user. You can override this behavior by overriding the default userstamp_object method in ActiveRecord::Base or in any of your models. For example, maybe you just want to find the current user bases on the a session variable:</p>
<pre><code># In environment.rb
class ActiveRecord::Base
  def userstamp_object
    User.find(session[:user_id])
  end
end
</code></pre>
<p>Maybe you don’t like the default column names of created_by/updated_by. You can customize the column names globally or for individual models:</p>
<pre><code># Globally in environment.rb
ActiveRecord::Base.created_userstamp_column = :creator_id

# In a model definition
class Subscription
  self.created_userstamp_column = :creator_id
  self.updated_userstamp_column = :updater_id
end
</code></pre>
<p>Automatic userstamping can be turned off by setting record_userstamps:</p>
<pre><code># Globally in environment.rb
ActiveRecord::Base.record_userstamps = false

# In a model definition
class Subscription
  self.record_userstamps = false
end

</code></pre>
<p>Blame also adds a migration helper which will add the created_by and updated_by columns (or your custom column names) to your table:</p>
<pre><code>create_table :widgets do |t|
  t.string :name
  t.timestamps
  t.userstamps
end
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.infused.org/2009/01/05/the-blame-game/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Hear Me RoR</title>
		<link>http://www.infused.org/2006/11/03/hear-me-ror/</link>
		<comments>http://www.infused.org/2006/11/03/hear-me-ror/#comments</comments>
		<pubDate>Fri, 03 Nov 2006 19:30:41 +0000</pubDate>
		<dc:creator>Keith</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.infused.org/2006/11/03/hear-me-ror/</guid>
		<description><![CDATA[Three weeks ago I left the security of my job of the last 8 years to pursue a new career as a freelance consultant/programmer.  
I&#8217;ve been freelancing part-time for several years and it was always a nice supplement to my income, but I was afraid of going it alone.  What if I couldn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Three weeks ago I left the security of my job of the last 8 years to pursue a new career as a freelance consultant/programmer.  </p>
<p>I&#8217;ve been freelancing part-time for several years and it was always a nice supplement to my income, but I was afraid of going it alone.  What if I couldn&#8217;t make enough to support my family?  What if I&#8217;m not good enough?  What if I fail and have to go find a job?  What will people think of me then?</p>
<p>Earlier this year I came to the realization that there is no reason to fear failing.  Would it be the end of the world if I did fail?  Hardly. Would I be embarrassed?  Probably. But, embarrassed or not, I can always change gears or find another job.  I could even give up and just lay around watching TV all day while my wife supports me.</p>
<p>So, now I&#8217;m doing what I really love: Developing the best software that I&#8217;m able, using Ruby and Ruby on Rails.  I also plan to spend more time working on my own software and writing about Ruby and Ruby on Rails. I&#8217;m even considering doing some speaking on the subject.</p>
<p>Are you looking for an experienced Ruby or Ruby on Rails developer? Maybe you&#8217;re just looking for some mentoring or guidance on a project?  Send me an email at <a href="mailto:keithm@infused.org">keithm at infused.org</a>.  I&#8217;m always looking for exciting new projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infused.org/2006/11/03/hear-me-ror/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Connect to SQL Server via ODBC on OS X 10.4.3</title>
		<link>http://www.infused.org/2005/11/17/connect-to-sql-server-via-odbc-on-os-x-1043/</link>
		<comments>http://www.infused.org/2005/11/17/connect-to-sql-server-via-odbc-on-os-x-1043/#comments</comments>
		<pubDate>Fri, 18 Nov 2005 00:38:10 +0000</pubDate>
		<dc:creator>Keith</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.infused.org/?p=312</guid>
		<description><![CDATA[Getting ODBC working on OS X is pretty easy, but you&#8217;ll have to find the damn drivers first.  First grab the newest iODBC SDK from the Software Availability page, and then grab the the Universal Data Access Drivers from the OpenLink download page.  Install the SDK first, and then the drivers.
Once you&#8217;ve installed [...]]]></description>
			<content:encoded><![CDATA[<p>Getting ODBC working on OS X is pretty easy, but you&#8217;ll have to find the damn drivers first.  First grab the newest iODBC SDK from the <a href="http://oplweb.openlinksw.com/product/webmatrixsdk.asp">Software Availability</a> page, and then grab the the Universal Data Access Drivers from the <a href="http://oplweb2.openlinksw.com:8080/download/">OpenLink download page</a>.  Install the SDK first, and then the drivers.</p>
<p>Once you&#8217;ve installed both of those packages you will have a new iODBC Administrator program in your Applications/Utilities/ directory.  Open it up and add a System DSN just as you would on a Windows machine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infused.org/2005/11/17/connect-to-sql-server-via-odbc-on-os-x-1043/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Test Driven PHP</title>
		<link>http://www.infused.org/2005/10/10/test-driven-php/</link>
		<comments>http://www.infused.org/2005/10/10/test-driven-php/#comments</comments>
		<pubDate>Mon, 10 Oct 2005 21:52:08 +0000</pubDate>
		<dc:creator>Keith</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.infused.org/?p=292</guid>
		<description><![CDATA[Can anyone recommend a good automated testing framework for PHP?  I&#8217;ve been doing all my development in Ruby using TDD and I can hardly stand to work without a test framework now in PHP.  I would make the development of  Retrospect-GDS test driven as well.  Email me if you have any [...]]]></description>
			<content:encoded><![CDATA[<p>Can anyone recommend a good automated testing framework for PHP?  I&#8217;ve been doing all my development in Ruby using <a href="http://en.wikipedia.org/wiki/Test_driven_development">TDD</a> and I can hardly stand to work without a test framework now in PHP.  I would make the development of  <a href="http://www.infused-solutions.com/retrospect2/">Retrospect-GDS</a> test driven as well.  Email <a href="mailto:keithm@infused.org">me</a> if you have any suggestions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infused.org/2005/10/10/test-driven-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You are likely to be eaten by a grue</title>
		<link>http://www.infused.org/2005/09/29/you-are-likely-to-be-eaten-by-a-grue/</link>
		<comments>http://www.infused.org/2005/09/29/you-are-likely-to-be-eaten-by-a-grue/#comments</comments>
		<pubDate>Thu, 29 Sep 2005 19:46:24 +0000</pubDate>
		<dc:creator>Keith</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.infused.org/?p=286</guid>
		<description><![CDATA[
I spent a half hour playing Zork 1 last night.  Brought back some good memories.
]]></description>
			<content:encoded><![CDATA[<p><img src="/wordpress//wp-content/images/zork.gif" height="342" width="500" align="" border="1" hspace="4" vspace="4" alt="Zork" title="" longdesc="" /></p>
<p>I spent a half hour playing Zork 1 last night.  Brought back some good memories.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infused.org/2005/09/29/you-are-likely-to-be-eaten-by-a-grue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change of Direction</title>
		<link>http://www.infused.org/2005/08/31/change-of-direction/</link>
		<comments>http://www.infused.org/2005/08/31/change-of-direction/#comments</comments>
		<pubDate>Wed, 31 Aug 2005 19:47:42 +0000</pubDate>
		<dc:creator>Keith</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.infused.org/?p=281</guid>
		<description><![CDATA[I will no longer be doing any development of Window-only software.  I&#8217;m making it official today, though it&#8217;s actually been several months since I&#8217;ve done any work on Windows applications.  I will continue to develop cross-platform applications, with an emphasis on web applications.  My focus has now shifted to Ruby on Rails [...]]]></description>
			<content:encoded><![CDATA[<p>I will no longer be doing any development of Window-only software.  I&#8217;m making it official today, though it&#8217;s actually been several months since I&#8217;ve done any work on Windows applications.  I will continue to develop cross-platform applications, with an emphasis on web applications.  My focus has now shifted to Ruby on Rails as the platform of choice, but I will continue to use PHP (or Perl or Python) where appropriate.</p>
<p>This means that there will be no future versions of <a href="http://www.infused-solutions.com/software/ged2csv/">Ged2Csv</a>,  though I will continue to sell and support the latest version for the foreseeable future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infused.org/2005/08/31/change-of-direction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2005 Follow-up</title>
		<link>http://www.infused.org/2005/08/05/oscon-2005-follow-up/</link>
		<comments>http://www.infused.org/2005/08/05/oscon-2005-follow-up/#comments</comments>
		<pubDate>Fri, 05 Aug 2005 18:41:32 +0000</pubDate>
		<dc:creator>Keith</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.infused.org/?p=266</guid>
		<description><![CDATA[A few more happy shiny links from OSCON 2005:

http://www.whytheluckystiff.net
http://redhanded.hobix.com
http://www.onestepback.org
http://www.vanderburg.org/Blog
http://www.martinfowler.com/bliki/
http://www.rubyist.net/~matz/slides/oscon2005/

]]></description>
			<content:encoded><![CDATA[<p>A few more happy shiny links from OSCON 2005:</p>
<ul>
<li><a href="http://www.whytheluckystiff.net/">http://www.whytheluckystiff.net</a></li>
<li><a href="http://redhanded.hobix.com/">http://redhanded.hobix.com</a></li>
<li><a href="http://www.onestepback.org/">http://www.onestepback.org</a></li>
<li><a href="http://www.vanderburg.org/Blog">http://www.vanderburg.org/Blog</a></li>
<li><a href="http://www.martinfowler.com/bliki/">http://www.martinfowler.com/bliki/</a></li>
<li><a href="http://www.rubyist.net/~matz/slides/oscon2005/">http://www.rubyist.net/~matz/slides/oscon2005/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.infused.org/2005/08/05/oscon-2005-follow-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2005</title>
		<link>http://www.infused.org/2005/08/04/oscon-2005/</link>
		<comments>http://www.infused.org/2005/08/04/oscon-2005/#comments</comments>
		<pubDate>Thu, 04 Aug 2005 17:26:20 +0000</pubDate>
		<dc:creator>Keith</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.infused.org/?p=261</guid>
		<description><![CDATA[I&#8217;m here at OSCON 2005 and I just saw DHH give one of the keynote addresses.  Walked the exhibit hall, but not much to see.  All the sessions are starting soon, so I have a day full of Ruby and Rails goodness to look forward to.  Oh, I am breaking out of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m here at <a href="http://conferences.oreillynet.com/os2005/">OSCON 2005</a> and I just saw <a href="http://www.loudthinking.com/">DHH</a> give one of the keynote addresses.  Walked the exhibit hall, but not much to see.  All the sessions are starting soon, so I have a day full of Ruby and Rails goodness to look forward to.  Oh, I am breaking out of the Ruby sessions for one PHP session about Unicode support in PHP 5.0.</p>
<p>One thing that has stuck me so far:  Well more than 50% of the thousands of laptops here are Macs.</p>
<p>Update: My unofficial and highly subjective survey says that roughly 70% of the laptops were Macs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infused.org/2005/08/04/oscon-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON 2005</title>
		<link>http://www.infused.org/2005/07/19/oscon-2005/</link>
		<comments>http://www.infused.org/2005/07/19/oscon-2005/#comments</comments>
		<pubDate>Tue, 19 Jul 2005 23:24:24 +0000</pubDate>
		<dc:creator>Keith</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.infused.org/?p=253</guid>
		<description><![CDATA[I decided that I&#8217;m going to attend OSCON on Thursday, August the 4th.  I&#8217;m just doing the one day pass thing for $525 because I don&#8217;t want to spend $1k to spend all week there.
My primary reason for going is to see David Heinemeier Hansson give his Extracting Rails From Basecamp session.  I&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>I decided that I&#8217;m going to attend <a href="http://conferences.oreillynet.com/os2005/">OSCON</a> on Thursday, August the 4th.  I&#8217;m just doing the one day pass thing for $525 because I don&#8217;t want to spend $1k to spend all week there.</p>
<p>My primary reason for going is to see <a href="http://www.loudthinking.com/">David Heinemeier Hansson</a> give his <a href="http://www.loudthinking.com/arc/000416.html">Extracting Rails From Basecamp</a> session.  I&#8217;ll also be attending most of the Ruby sessions.  Anybody wanna go with me?</p>
<p>I may go to the Apple Developer&#8217;s Connection Reception that night too, unless there&#8217;s some sort of Ruby or Rails related event happening.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infused.org/2005/07/19/oscon-2005/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Retrospect-GDS: Nip and Tuck, Part 1</title>
		<link>http://www.infused.org/2005/07/01/retrospect-gds-nip-and-tuck-part-1/</link>
		<comments>http://www.infused.org/2005/07/01/retrospect-gds-nip-and-tuck-part-1/#comments</comments>
		<pubDate>Fri, 01 Jul 2005 22:52:01 +0000</pubDate>
		<dc:creator>Keith</dc:creator>
				<category><![CDATA[Retrospect-GDS]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.infused.org/?p=240</guid>
		<description><![CDATA[I&#8217;ve been working on a new default template for Retrospect-GDS in fits and starts for the last two or three weeks.  I know a lot of people like the current template because its clean and simple, so that template will still be included in the distribution, but it will no longer be the default [...]]]></description>
			<content:encoded><![CDATA[<div>I&#8217;ve been working on a new default template for Retrospect-GDS in fits and starts for the last two or three weeks.  I know a lot of people like the current template because its clean and simple, so that template will still be included in the distribution, but it will no longer be the default template.</div>
<p><img src="/wordpress/wp-content/images/rgds_sneak1.png" height="120" width="500" border="0" alt="Retrospect-GDS Sneak Preview 1" style="margin: 20px 0" /><br />
<img src="/wordpress/wp-content/images/retro_sneak2.png" height="120" width="500" border="0" hspace="4" vspace="4" alt="Retrospect-GDS Sneak Preview 2" style="margin-bottom: 20px" /></p>
<p>The new template still follows the basic pattern of the old template, but is has been updated with better use of fonts and colors.  The CSS and markup has also been greatly simplified.  The only complicated bit is the new tabbed navigation.  I used the <a href="http://www.alistapart.com/articles/slidingdoors/">CSS Sliding Doors</a> technique from A List Apart and some of the elements from the <a href="http://www.alistapart.com/articles/slidingdoors2/">CSS Sliding Doors 2</a> article.  I chose to leave out the rollovers and I haven&#8217;t corrected for the anchor width problem in IE. In any other browser besides IE, the entire tab is clickable.  In Internet Exploder you&#8217;re stuck with just the text being clickable.  The fix for IE requires far too much structural markup for my taste, so I&#8217;m leaving it out.  After getting all the tabs working, I found that the template started randomly inducing the the IE Peekaboo bug.  Thankfully I found that the Peekaboo bug is now easily fixed with the <a href="http://www.communitymx.com/content/article.cfm?page=2&amp;cid=C37E0" id="C37E0">Holly Hack</a>.</p>
<p>What else is new or changed so far?</p>
<ul>
<li>The left sidebar menu has been replaced with a horizontal menu bar under the header banner.  The links have been styled as buttons and I&#8217;ve taken great care to ensure that the language drop-down is vertically centered in every browser that I can get my hands on.  Guess which one was the most difficult to get centered?  This frees up a lot of real estate for the rest of the content.</li>
<li>A gender icon is now shown after each person&#8217;s name in surname lists and search results windows.</li>
<li>The surname list is displayed in 5 columns instead of 4.</li>
<li>Fixed slash escaped characters showing up in the comments.</li>
<li>The pedigree chart has been completely overhauled.  The lines and boxes are made up of simple graphic elements positioned with CSS.  I think it looks much better than the square lines and boxes of the old template.</li>
<li>The tabbed navigation has been replaced with graphical elements.  No more ugly square tabs.</li>
</ul>
<p>That&#8217;s all I can think of for now.  Stay tuned for part 2 as the work progresses.</p>
<p>You can more information about Retrospect-GDS on the official <a href="http://www.infused-solutions.com/retrospect/">Retrospect-GDS project page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infused.org/2005/07/01/retrospect-gds-nip-and-tuck-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
