<?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>Binary Code &#187; /dev/ruby</title>
	<atom:link href="http://www.postal-code.com/binarycode/category/devruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.postal-code.com/binarycode</link>
	<description>A whole bunch of nought thought by Chris Cummer</description>
	<lastBuildDate>Sun, 29 Jan 2012 16:47:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MacRuby and Checking a Path is a Directory</title>
		<link>http://www.postal-code.com/binarycode/2012/01/22/macruby-and-checking-a-path-is-a-directory/</link>
		<comments>http://www.postal-code.com/binarycode/2012/01/22/macruby-and-checking-a-path-is-a-directory/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 00:04:42 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[/dev/obj-c]]></category>
		<category><![CDATA[/dev/ruby]]></category>

		<guid isPermaLink="false">http://www.postal-code.com/binarycode/?p=555</guid>
		<description><![CDATA[MacRuby is awesome, but some aspects are very much Obj-C with Ruby lipstick. One of these is the use of pointers being set by functions as secondary effects. In Ruby we would just return multiple return values. Obj-C can&#8217;t do this, so sometimes it assigns to pointers. I just ran into this when trying to [...]]]></description>
			<content:encoded><![CDATA[<p>MacRuby is awesome, but some aspects are very much Obj-C with Ruby lipstick. One of these is the use of pointers being set by functions as secondary effects. In Ruby we would just return multiple return values. Obj-C can&#8217;t do this, so sometimes it assigns to pointers.</p>
<p>I just ran into this when trying to determine if a file path is a directory or file. The obj-c approach is to use:</p>
<pre class="c" name="code">
NSFileManager#fileExistsAtPath:isDirectory
</pre>
<p>where isDirectory sets a pointer to YES or NO. </p>
<p>In MacRuby we might do the following (wrapped in a  convenience function):</p>
<pre class="ruby" name="code">
def directory?( path )
    bool = Pointer.new_with_type( 'B' )
    file_man = NSFileManager.new
    file_man.fileExistsAtPath( path, isDirectory:bool )
    bool[0]
end
</pre>
<p>Ta da.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.postal-code.com/binarycode/2012/01/22/macruby-and-checking-a-path-is-a-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stubbing Geocode with FactoryGirl</title>
		<link>http://www.postal-code.com/binarycode/2011/11/22/stubbing-geocode-with-factorygirl/</link>
		<comments>http://www.postal-code.com/binarycode/2011/11/22/stubbing-geocode-with-factorygirl/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 20:01:38 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[/dev/random]]></category>
		<category><![CDATA[/dev/ruby]]></category>

		<guid isPermaLink="false">http://www.postal-code.com/binarycode/?p=530</guid>
		<description><![CDATA[Google doesn&#8217;t seem to like it when our geocoded models hammer their geocoding API during our test runs so we should stub out the geocoding call. To do so: FactoryGirl.define do factory :place do name { Randgen.name } kind 'city' timezone 'Mountain Time (US &#038; Canada)' enabled true after_build { &#124;place&#124; place.stub!( :geocode ).and_return( [1,1] [...]]]></description>
			<content:encoded><![CDATA[<p>Google doesn&#8217;t seem to like it when our geocoded models hammer their geocoding API during our test runs so we should stub out the geocoding call. To do so:</p>
<pre class="ruby" name="code">
FactoryGirl.define do
  factory :place do
    name         { Randgen.name }
    kind         'city'
    timezone     'Mountain Time (US &#038; Canada)'
    enabled      true

    after_build  { |place| place.stub!( :geocode ).and_return( [1,1] ) }
    after_create { |place| place.stub!( :geocode ).and_return( [1,1] ) }
  end
end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.postal-code.com/binarycode/2011/11/22/stubbing-geocode-with-factorygirl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GeekTool and iCal</title>
		<link>http://www.postal-code.com/binarycode/2009/12/04/geektool-and-ical/</link>
		<comments>http://www.postal-code.com/binarycode/2009/12/04/geektool-and-ical/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 05:26:48 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[/dev/ruby]]></category>

		<guid isPermaLink="false">http://www.postal-code.com/binarycode/?p=302</guid>
		<description><![CDATA[I use GeekTool to display quite a few items on my desktop, it&#8217;s a fantastic utility. For fun I&#8217;ve put together a Ruby script for use with GeekTool that displays iCal events: GeekCal. Download the script, make it executable, set it up as a shell script in GeekTool et voila. Calendar events on the desktop.]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://projects.tynsoe.org/en/geektool/">GeekTool</a> to display quite a few items on my desktop, it&#8217;s a fantastic utility. For fun I&#8217;ve put together a Ruby script for use with GeekTool that displays iCal events: <a href="http://github.com/senorprogrammer/geek_cal/">GeekCal</a>.</p>
<p>Download the script, make it executable, set it up as a shell script in GeekTool et voila. Calendar events on the desktop.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.postal-code.com/binarycode/2009/12/04/geektool-and-ical/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rcov, NaN, and Fatal Crashes</title>
		<link>http://www.postal-code.com/binarycode/2009/08/27/rcov-nan-and-fatal-crashes/</link>
		<comments>http://www.postal-code.com/binarycode/2009/08/27/rcov-nan-and-fatal-crashes/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 00:16:46 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[/dev/rails]]></category>
		<category><![CDATA[/dev/ruby]]></category>

		<guid isPermaLink="false">http://www.postal-code.com/binarycode/?p=292</guid>
		<description><![CDATA[Seems its possible to crash the current version of rcov hard under certain circumstances (version as of this writing: rcov (0.8.1.2.0)). If you find it crashing with: ruby(17057,0xa0124720) malloc: *** error for object 0x5b1a602: Non-aligned pointer being freed *** set a breakpoint in malloc_error_break to debug /opt/local/lib/ruby/1.8/rss/rss.rb:274: [BUG] Segmentation fault ruby 1.8.7 (2008-08-11 patchlevel 72) [...]]]></description>
			<content:encoded><![CDATA[<p>Seems its possible to crash the current version of rcov hard under certain circumstances (version as of this writing: <code>rcov (0.8.1.2.0)</code>). If you find it crashing with:</p>
<blockquote><p>
ruby(17057,0xa0124720) malloc: *** error for object 0x5b1a602: Non-aligned pointer being freed<br />
*** set a breakpoint in malloc_error_break to debug<br />
/opt/local/lib/ruby/1.8/rss/rss.rb:274: [BUG] Segmentation fault<br />
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9]<br />
&#8230;<br />
rake aborted!<br />
NaN
</p></blockquote>
<p>Check to see if you have any empty helper files that don&#8217;t have any coverage. I had a couple that resembled the following. Removing them removed the &#8220;divide by zero&#8221; issue that causes the crash:</p>
<pre class="ruby" name="code">
module ProductHelper
end
</pre>
<p><strong>Update</strong><br />
Scratch that, it doesn&#8217;t entirely fix the issue. I&#8217;ve also implemented <a href="http://thestewscope.wordpress.com/2009/07/09/ruby-code-quality-and-metric_fu/">Stew Welbourne&#8217;s hack</a> for <code>round_to_tenths(decimal)</code> in MetricFu but that too does not seem to be a complete solution. The seg fault still happens, though intermittently (sometimes it runs through the complete test suite, sometimes it doesn&#8217;t).</p>
<p>The search continues.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.postal-code.com/binarycode/2009/08/27/rcov-nan-and-fatal-crashes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql2sqlite.rb</title>
		<link>http://www.postal-code.com/binarycode/2009/03/02/mysql2sqliterb/</link>
		<comments>http://www.postal-code.com/binarycode/2009/03/02/mysql2sqliterb/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 13:55:42 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[/dev/ruby]]></category>

		<guid isPermaLink="false">http://www.postal-code.com/binarycode/?p=283</guid>
		<description><![CDATA[Introducing mysql2sqlite.rb, a Ruby script for converting MySQL databases into Sqlite databases. Based on my googling of the web, I figure I&#8217;m one of perhaps five people in the world who&#8217;ve ever wanted to do this conversion but in case you&#8217;re number six, here you go. Usage is pretty straight-forward. It can either be configured [...]]]></description>
			<content:encoded><![CDATA[<p>Introducing <a href="http://github.com/senorprogrammer/mysql2sqlite.rb/tree/master">mysql2sqlite.rb</a>, a Ruby script for converting <a href="http://www.mysql.com/">MySQL</a> databases into <a href="http://www.sqlite.org/">Sqlite</a> databases.</p>
<p>Based on my googling of the web, I figure I&#8217;m one of perhaps five people in the world who&#8217;ve ever wanted to do this conversion but in case you&#8217;re number six, here you go.</p>
<p>Usage is pretty straight-forward. It can either be configured via command-line parameters or via a specified YAML file:</p>
<pre name="code" class="ruby">
./mysql2sqlite.rb database_name database_user database_password
./mysql2sqlite.rb config.yaml
</pre>
<p>and it will spit out two files: one of the raw, converted SQL and one that is the Sqlite database. For instance, if your MySQL database was called &#8216;clients&#8217; you&#8217;d end up with <code>clients.sql</code> and <code>clients.sqlite</code>.</p>
<p>For more details and source code see the <a href="http://github.com/senorprogrammer/mysql2sqlite.rb/tree/master">mysql2sqlite.rb</a> project on github.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.postal-code.com/binarycode/2009/03/02/mysql2sqliterb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DataMapper on Red Hat EL5</title>
		<link>http://www.postal-code.com/binarycode/2009/02/20/datamapper-on-red-hat-el5/</link>
		<comments>http://www.postal-code.com/binarycode/2009/02/20/datamapper-on-red-hat-el5/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 13:40:03 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[/dev/random]]></category>
		<category><![CDATA[/dev/ruby]]></category>

		<guid isPermaLink="false">http://www.postal-code.com/binarycode/?p=279</guid>
		<description><![CDATA[Last month I started rewriting the admin reporting section of one of my sites in Merb rather than refactor the existing PHP version, for a number of reasons. The pace of development with Ruby and Merb was tremendous and within about a week and a half I had a fully-functional, extensible reporting site developed, replete [...]]]></description>
			<content:encoded><![CDATA[<p>Last month I started rewriting the admin reporting section of one of my sites in <a href="http://merbivore.com">Merb</a> rather than refactor the existing PHP version, for a number of reasons. The pace of development with Ruby and Merb was tremendous and within about a week and a half I had a fully-functional, extensible reporting site developed, replete with graphs and statistics. <a href="http://datamapper.org">DataMapper</a> made tying into the legacy database, with it&#8217;s rather novel table and column naming schemes, trivial. It was all tremendously satisfying and, dare I say it for a project so unglamorous, fun.</p>
<p>And then I tried to get it to run on our production server, which is running Red Hat Enterprise Linux 5, and the fun went away. </p>
<p>I first tried installing <a href="www.modrails.com">Phusion Passenger</a> (a product I&#8217;m absolutely enthralled by) but no such luck; it had a hell of a time with the default Apache install and lack of development headers and various file locations. I wasn&#8217;t willing to muck about with the production server in a vain attempt to force it to work at the risk of the rest of the site.</p>
<p>Instead I figured it ought to run just fine on Rack. And every dependent gem installed with nary a hitch save for DataMapper, specifically do_mysql, which would fail to build the native extension with the following error:</p>
<pre class="code" name="sql">
In file included from /usr/include/mysql/my_global.h:83, from do_mysql_ext.c:6:
/usr/include/mysql/my_config.h:15:28: error: my_config_i386.h: No such file or directory
</pre>
<p>The solution was ultimately provided by <a href="http://autopilotmarketing.com/">Dan Kubb</a>:</p>
<blockquote><p>
We probably should make it so that all the DO driver specs can be run on installed gems, but in the meantime, checkout the source from git using the following commands:</p>
<pre class="code" name="shell">
git clone git://github.com/datamapper/do.git
cd do/data_objects
sudo rake install
cd ../do_mysql
... remove the references to my_config.h in do_mysql ...
rake compile spec
sudo rake install
</pre>
<p>This will first install the edge version of DataObjects, and then will compile and run the specs for do_mysql, and then install it.  You will want to remove all references to my_config.h from the do_mysql C libs just prior to running the specs of course.
</p></blockquote>
<p>The really important bit here: &#8220;remove the references to my_config.h in do_mysql&#8221;. That&#8217;s the magic, and with that everything was good and right and Merb was run, and the users were happy.</p>
<p>(For the very curious, the entire <a href="http://groups.google.com/group/datamapper/browse_thread/thread/bcd2c6bbfcb74213/9e092536a103e8a4?lnk=gst&#038;q=red+hat#9e092536a103e8a4">DataMapper Google Groups thread</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.postal-code.com/binarycode/2009/02/20/datamapper-on-red-hat-el5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bundling Gems With Merb</title>
		<link>http://www.postal-code.com/binarycode/2009/01/26/bundling-gems-with-merb/</link>
		<comments>http://www.postal-code.com/binarycode/2009/01/26/bundling-gems-with-merb/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 23:35:04 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[/dev/ruby]]></category>

		<guid isPermaLink="false">http://www.postal-code.com/binarycode/?p=274</guid>
		<description><![CDATA[As part of the deployment of my first Merb app I wanted to make sure it contained everything it would need. This is pretty easy in Merb: thor merb:gem:install Once that runs through and bundles all the gems in your dependencies.rb file I knew that I should have been able to simply run: ./bin/merb and [...]]]></description>
			<content:encoded><![CDATA[<p>As part of the deployment of my first Merb app I wanted to make sure it contained everything it would need. This is pretty easy in Merb:</p>
<pre name="code" class="ruby">
thor merb:gem:install
</pre>
<p>Once that runs through and bundles all the gems in your <code>dependencies.rb</code> file I knew that I should have been able to simply run:</p>
<pre name="code" class="ruby">
./bin/merb
</pre>
<p>and use the bundled install of Merb. But this was failing mightily with dramatic FATAL errors. Using:</p>
<pre name="code" class="ruby">
./bin/merb --verbose
</pre>
<p>shed light onto the issue. It turns out that because I was doing all my development by just running <code>merb</code> Merb was loading necessary dependencies that I hadn&#8217;t specified explicitly in my <code>dependencies.rb</code> file. Dependencies like &#8220;rmagick&#8221; and &#8220;mongrel&#8221;.</p>
<p>Putting all the dependencies into the file and re-running <code>thor merb:gem:install</code> did the trick.</p>
<p>Incidentally, if you attempt to do something like:</p>
<pre name="code" class="ruby">
thor merb:gem:install mongrel
</pre>
<p>without having mongrel specified in <code>dependencies.rb</code> the install will fail. This, in hindsight, makes perfect sense to me &#8211; I like that file being the authority &#8211; however the error message generated is a bit obtuse ( in this case: <code>"Configuration could not be confirmed: Could not find RubyGem mongrel (>= 0)"</code>). </p>
<p>It also appears (though I&#8217;m surprised by this so I suspect my understanding of this process is suspect) that you&#8217;ll need to declare dependencies that dependent gems rely on. Again in my case to get gruff bundled I also had to define rmagick:</p>
<pre name="code" class="ruby">
dependency "rmagick", "2.9.0"
dependency "gruff", "0.3.4"
</pre>
<p>So if you&#8217;re bundling gems make sure they&#8217;re all explicitly defined and use &#8211;verbose when running Merb to double-check. And read <a href="http://blog.dynamic50.com/index.php/2008/11/getting-started-with-merb-bundling-merb-with-your-application/">Getting Started with Merb &#8211; Bundling Merb with your Application</a>. It was immensely helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.postal-code.com/binarycode/2009/01/26/bundling-gems-with-merb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Method_missing requires responds_to?</title>
		<link>http://www.postal-code.com/binarycode/2009/01/13/responds_to-requires-method_missing/</link>
		<comments>http://www.postal-code.com/binarycode/2009/01/13/responds_to-requires-method_missing/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 18:01:25 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[/dev/ruby]]></category>

		<guid isPermaLink="false">http://www.postal-code.com/binarycode/?p=268</guid>
		<description><![CDATA[I believe this should be taken as dogma and followed religiously: I reject the argument because I reject as buggy any code such that object o responds to method m but o.responds_to?(:m) => false. If you implement your own method_missing for a class, you should almost always implement your own responds_to? as well. - Maybe [...]]]></description>
			<content:encoded><![CDATA[<p>I believe this should be taken as dogma and followed religiously:</p>
<blockquote><p>
 I reject the argument because I reject as buggy any code such that object o responds to method m but o.responds_to?(:m) => false. If you implement your own method_missing for a class, you should almost always implement your own responds_to? as well.</p>
<p>- <a href="http://github.com/raganwald/homoiconic/blob/master/2009-01-13/maybe.md"> Maybe </a>
</p></blockquote>
<p>There is wisdom in them there words. <a href="http://www.postal-code.com/binarycode/2008/02/27/monkey-vs-donkey-fight/">Monkey-patching is (perhaps) ok</a>, but voodoo should probably be avoided at all costs and an object that can act but won&#8217;t provide a means of letting you know without actually trying it is just plain ol&#8217; voodoo. And programming voodoo is bad juju.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.postal-code.com/binarycode/2009/01/13/responds_to-requires-method_missing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ultrasphinx Bootstrap Error</title>
		<link>http://www.postal-code.com/binarycode/2008/08/07/ultrasphinx-bootstrap-error/</link>
		<comments>http://www.postal-code.com/binarycode/2008/08/07/ultrasphinx-bootstrap-error/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 21:28:30 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[/dev/rails]]></category>
		<category><![CDATA[/dev/ruby]]></category>

		<guid isPermaLink="false">http://www.postal-code.com/binarycode/?p=238</guid>
		<description><![CDATA[You&#8217;re installing Ultraspinx (perhaps per these instructions from Inoshi, which are the best I&#8217;ve found thus far) and you run into this error when time comes to bootstrap your installation: ~/Sites/ticklists/: sudo rake ultrasphinx:bootstrap &#8211;trace (in /Users/chris/Sites/ticklists) ** Invoke ultrasphinx:bootstrap (first_time) ** Invoke ultrasphinx:_environment (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute ultrasphinx:_environment [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;re installing Ultraspinx (perhaps <a href="http://blog.insoshi.com/2008/07/17/searching-a-ruby-on-rails-application-with-sphinx-and-ultrasphinx/">per these instructions</a> from <a href="http://portal.insoshi.com/">Inoshi</a>, which are the best I&#8217;ve found thus far) and you run into this error when time comes to bootstrap your installation:</p>
<blockquote><p>
~/Sites/ticklists/: sudo rake ultrasphinx:bootstrap &#8211;trace<br />
(in /Users/chris/Sites/ticklists)<br />
** Invoke ultrasphinx:bootstrap (first_time)<br />
** Invoke ultrasphinx:_environment (first_time)<br />
** Invoke environment (first_time)<br />
** Execute environment<br />
** Execute ultrasphinx:_environment<br />
** Invoke ultrasphinx:configure (first_time)<br />
** Invoke ultrasphinx:_environment<br />
** Execute ultrasphinx:configure<br />
rake aborted!<br />
You have a nil object when you didn&#8217;t expect it!<br />
You might have expected an instance of ActiveRecord::Base.<br />
The error occurred while evaluating nil.[]
</p></blockquote>
<p>I couldn&#8217;t find this one in the google anywhere. Turns out the cause of this is defining non-existent properties for indexing on your models (perhaps I&#8217;m the only one dumb enough to do that). </p>
<p>You&#8217;ll know if this is the cause because you&#8217;ll see something akin to this in your Rails console:</p>
<blockquote><p>
** ultrasphinx: warning: field f is not present in User<br />
** ultrasphinx: warning: field descritpion is not present in Profile
</p></blockquote>
<p>Remove (or fix the spelling of) those and everything should work hunky-dory.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.postal-code.com/binarycode/2008/08/07/ultrasphinx-bootstrap-error/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Two-weekend website: Applican</title>
		<link>http://www.postal-code.com/binarycode/2008/07/13/two-weekend-website-applican/</link>
		<comments>http://www.postal-code.com/binarycode/2008/07/13/two-weekend-website-applican/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 04:57:17 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[/dev/rails]]></category>
		<category><![CDATA[/dev/ruby]]></category>

		<guid isPermaLink="false">http://www.postal-code.com/binarycode/?p=225</guid>
		<description><![CDATA[A couple of weeks ago, in the middle of getting DreamBank ready for launch I was feeling like I needed a break. Of course that meant &#8220;what can I develop in Rails over a single weekend?&#8221; See, I had an idea for an application that would fulfill a need we had at DreamBank: how to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com/senorprogrammer/applican/tree/master"><img src="http://www.postal-code.com/binarycode/wp-content/uploads/2008/07/applican_logo.png" alt="Applican" title="applican_logo" width="66" height="72" align="right" class="alignright size-full wp-image-226" hspace="8" /></a> A couple of weeks ago, in the middle of getting <a href="http://www.dreambank.org">DreamBank</a> ready for launch I was feeling like I needed a break. Of course that meant &#8220;what can I develop in Rails over a single weekend?&#8221; See, I had an idea for an application that would fulfill a need we had at DreamBank: how to manage incoming applicants and resumes against available job positions and I was pretty sure it would go.</p>
<p>My one-weekend project became a two weekend project and a bunch more time was shoe-horned in here and there for bug fixes and improvements until it was finally usable. And then we really got serious about the other launch and development got forgotten; it was released and functional and &#8211; dare I say it &#8211; even useful but neglected.</p>
<p>I now present to you &#8220;<a href="http://github.com/senorprogrammer/applican/tree/master">Applican</a>&#8220;, a Rails-based resume/applicant/job tracker designed (as much as it has been) as an internal tool for small &#038; medium-sized companies. For more details <a href="http://github.com/senorprogrammer/applican/wikis">see the proto-documentation here</a>.</p>
<p>I consider the current release to be about v0.4: it works, it&#8217;s useful, it undoubtedly has bugs, they&#8217;re may not be critical, there&#8217;s definitely functionality to be added. It&#8217;s free, it&#8217;s open-sourced, it&#8217;s available on <a href="http://github.com/senorprogrammer/applican/tree/master">Github</a> and it require Rails 2.1.</p>
<p>(Apologies to <a href="http://www.imdb.com/title/tt0285823/">Robert Rodriguez</a> for stealing and bastardizing one of the best lines in cinema history).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.postal-code.com/binarycode/2008/07/13/two-weekend-website-applican/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

