<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom">

 <title>ProUtils Ruby Blog</title>
 
 <link href="http://proutils.github.com/" />
 <updated />
 <id>http://proutils.github.com/</id>

 
 <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/proutils" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="proutils" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
   <title>Requirements Specification</title>
   <link href="proutils.github.com/20100524-requirements/index.html" />
   <updated>2010-05-24</updated>
   <id>proutils.github.com</id>
   <content type="html">
    <p>Recently, on my personal programming <a href="http://trans.github.com">blog</a>, I expounded on some concerns I have with <a href="http://gembundler.com/">Bundler</a>. These concerns have their origin in my work on <a href="http://github.com/proutils/pom">POM</a> and related ProUtils projects such as <a href="http://github.com/proutils/syckle">Syckle</a> and <a href="http://github.com/proutils/box">Box</a>. These projects utilize requirements information. If Bundler becomes widely used outside of Rails development, and it seems it might, then it is imporatan that I figure out how to best fit Bundler into the POM's design.</p>

<p>Of course, as with any new technologies, my initial take on Bundler held some false assumptions, and thus some over-blown concerns. However, I still see some issues with the design. Nonetheless I figure most issues will be worked out in time --and if not, and the project is fundamentally flawed in some fahsion, then it will eventually wither, and be replaced by something better.</p>

    <br /><br />
    [<a href="proutils.github.com/20100524-requirements/index.html">Read More</a>]
   </content>
 </entry>
 
 <entry>
   <title>POM's PROFILE and VERSION Files</title>
   <link href="proutils.github.com/20100517-profile/index.html" />
   <updated>2010-05-17</updated>
   <id>proutils.github.com</id>
   <content type="html">
    <p>A big change is coming to the next release of POM, and in turn
all the tools that utilize it, including Syckle, Roll, Box and WebMe.
So big is the change, in fact, that it requires a mojor verison bump.
So expect the next release ov POM to be 2.0. In itself the change
is straight forward... Instead of the previous use of a <code>meta/</code>
directory for storing project metadata, POM will now use two
YAML files: PROFILE and VERSION.</p>

    <br /><br />
    [<a href="proutils.github.com/20100517-profile/index.html">Read More</a>]
   </content>
 </entry>
 
 <entry>
   <title>Directory-based Configuration</title>
   <link href="proutils.github.com/20100513-dirconfig/index.html" />
   <updated>2010-05-13</updated>
   <id>proutils.github.com</id>
   <content type="html">
    <p>With regards to <a href="http://proutils.github.com/pom">POM</a>,
the most cumbersome issue I have had to struggle with over the course
of its long and somewhat painful development, is the question of
configuration storage. You see, many years ago I hit on the idea of
using the file system itself as a "hash" for heirarchical storage.
In other words, instead of using a YAML or JSON or INI file, POM could
use the directory structure.</p>

    <br /><br />
    [<a href="proutils.github.com/20100513-dirconfig/index.html">Read More</a>]
   </content>
 </entry>
 
 <entry>
   <title>Mocking Mocks</title>
   <link href="proutils.github.com/20100214-mocking-mocks/index.html" />
   <updated>2010-02-14</updated>
   <id>proutils.github.com</id>
   <content type="html">
    <p>There are a variety of test-double/mocking libraries available for Ruby.
<a href="http://mocha.rubyforge.org/">Mocha</a> is probably the most well known.
<a href="http://rspec.info/">RSpec</a> comes with it's own mock library. I beleive
<a href="http://flexmock.rubyforge.org/">FlexMock</a> is the venerable older gentleman
on the block. And there are plenty of alternatives such as
<a href="http://rubyforge.org/projects/double-ruby">rr</a> and <a href="http://github.com/jm/stump">stump</a>.</p>

<p>I myself have been toying with an implementation, with a goal of maximizing ease
of use and implemetation overhead. In my pursuit I discovered something very
interesting: Ruby doesn't necessairly need a test-double library.</p>

    <br /><br />
    [<a href="proutils.github.com/20100214-mocking-mocks/index.html">Read More</a>]
   </content>
 </entry>
 
 <entry>
   <title>Damn Version Numbers</title>
   <link href="proutils.github.com/20100208-version-numbers/index.html" />
   <updated>2010-02-08</updated>
   <id>proutils.github.com</id>
   <content type="html">
    <p>Per the usual for a developer with too many projects on their hands,
I am constantly on the lookout for new tools to make my work easier.
Being the kind of person who likes to "do it themselves", I often
end-up writing those tools. Recently I endeavored to make my life a bit
easier by automating, at least in part, my project's version numbers.
I thought, while only a partial help, that if I added a git post-commit
hook that bumped the patch number one, at the very least I could push
out patches without ever having to fuss with adjusting the version
number manually.</p>

    <br /><br />
    [<a href="proutils.github.com/20100208-version-numbers/index.html">Read More</a>]
   </content>
 </entry>
 
 <entry>
   <title>Quiet Revolt Against the FHS?</title>
   <link href="proutils.github.com/20091026-fhs-revolt/index.html" />
   <updated>2009-10-26</updated>
   <id>proutils.github.com</id>
   <content type="html">
    <p>Prompted by the disocvery of improper use of relative require in a number or Ruby project's executables, my last <a href="http://protuils.github.com/2009/10/proper-require.html">post</a> dicussed <i>why</i> and <i>when</i> to avoid using relative require. To summarize, there are two broad reasons to avoid relative loading. The first is simply YAGNI. In most cases you simply don't need to do it. Your script is on the $LOAD_PATH and all that is needed is the normal <code>require 'mylib/mydir/myfile'</code> to load it. The second, and up until today I felt the more important concern, is conformance to the <a href="http://www.pathname.com/fhs/">File Hierarchy Standard</a>. While there is plenty of room to use relative requires and not tread on the FHS, it is easy enough to run afoul if one is not careful and aware of the issues. Such was the case with the executables.</p>

    <br /><br />
    [<a href="proutils.github.com/20091026-fhs-revolt/index.html">Read More</a>]
   </content>
 </entry>
 
 <entry>
   <title>A Proper Require</title>
   <link href="proutils.github.com/20091023-proper-require/index.html" />
   <updated>2009-10-23</updated>
   <id>proutils.github.com</id>
   <content type="html">
    <p>Recently I <a href="http://groups.google.com/group/ruby-talk-google/browse_thread/thread/6a46c837ffc84761">posted</a>
a light diatribe against improper use of relative requires in Ruby programs.
I pointed-out a bit of code, I recently came across, that added a relative path to Ruby's
<code>$LOAD_PATH</code> from within a <code>bin/</code> executable.</p>

    <br /><br />
    [<a href="proutils.github.com/20091023-proper-require/index.html">Read More</a>]
   </content>
 </entry>
 
 <entry>
   <title>The History of Syckle</title>
   <link href="proutils.github.com/20090924-history-of-proutils/index.html" />
   <updated>2009-09-24</updated>
   <id>proutils.github.com</id>
   <content type="html">
    <p>Syckle, which until recently was called "Reap", is the oldest component of the ProUtils collection and
has been through a number major redesigns.
The first version of was essentially what Hoe is today albiet with fewer tasks. Likely to the dismay of
any early followers of the project, the second version warped into a Rake clone. Seeing no point to a slighly
improved rewrite of Rake, the third version made a complete u-turn and had every task as a separate script
utilizing a special DSL. Each task script could also call on other scripts simply by name (via
method_missing). This design was very interesting, but was lacking in certain respects (largely in maturity),
so the penultimate version evolved these tasks into a set of stand-alone executables patterned after git's
"many small commands" design. This worked well, but it proved difficult to learn the proper usage and sequence
of usage of so many tools. This natually led to the current version whereby all tasks belong to a life-cycle,
similar to Maven. The user triggers a cycle-phase and all prior phases are run through until the requested
cycle-phase is reached.</p>

    <br /><br />
    [<a href="proutils.github.com/20090924-history-of-proutils/index.html">Read More</a>]
   </content>
 </entry>
 
 <entry>
   <title>New Website</title>
   <link href="proutils.github.com/20090730-new-website/index.html" />
   <updated>2009-07-30</updated>
   <id>proutils.github.com</id>
   <content type="html">
    <p>Okay so we tried the Jekyll --the static site generator supported by GitHub.
Jekyll is a good static site generator with nice blogging features. I give it
a lot of credit. But I have taken a stab at a static site generator myself more
than a few times and with some inspiration from Jekyll I fianlly was able
create a system that is worth the effort to code.
I dubbed it <i>Brite</i> (short for We<b>b</b> W<b>rite</b>).</p>

<p>While there are still some features to add, this site demonstrates the fruit
of my labor. I won't terry on with the details here. You can read them on
the <a href="http://proutils.github.com/brite">Brite</a> website. But I will at least say,
for the first time I am fully satisfied with with a static site generator,
enough so to use it for all my future project sites.</p>

    <br /><br />
    [<a href="proutils.github.com/20090730-new-website/index.html">Read More</a>]
   </content>
 </entry>
 

</feed>

