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

<channel>
	<title>Vermonster LLC : Agile Product Development</title>
	<atom:link href="http://www.vermonster.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vermonster.com</link>
	<description>Small Business and Technology Consulting Firm from Boston, MA</description>
	<pubDate>Sat, 26 Apr 2008 14:06:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Xubuntu + KDevelop</title>
		<link>http://www.vermonster.com/2008/04/26/xubuntu-kdevelop/</link>
		<comments>http://www.vermonster.com/2008/04/26/xubuntu-kdevelop/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 13:55:29 +0000</pubDate>
		<dc:creator>bkaney</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Uber-techie]]></category>

		<guid isPermaLink="false">http://www.vermonster.com/?p=99</guid>
		<description><![CDATA[I recently ditched Gentoo on my notebook for Xubuntu (Ubuntu with the XFCE windows manager), after a portage block removed my coreutils, rendering it pretty much useless.  I&#8217;m still a big fan of Gentoo, but will likely be using it for servers and not desktops.  I&#8217;ve recently been turned on to KDevelop for [...]]]></description>
			<content:encoded><![CDATA[<p>I recently ditched <a href="http://www.gentoo.org">Gentoo</a> on my notebook for <a href="http://www.xubuntu.org">Xubuntu</a> (<a href="http://www.ubuntu.org">Ubuntu</a> with the <a href="http://www.xfce.org">XFCE</a> windows manager), after a portage block removed my coreutils, rendering it pretty much useless.  I&#8217;m still a big fan of Gentoo, but will likely be using it for servers and not desktops.  I&#8217;ve recently been turned on to <a href="http://www.kdevelop.org">KDevelop</a> for working on my Ruby on Rails projects.  Although not as polished as <a href="http://macromates.com/">Textmate</a> for the Mac, I do find it a nice alternative.  It has a nice class view, embedded console and IRB shell, a pretty nice &#8220;find in files&#8221;, and many other features.  I&#8217;ve been a longtime Kate user, which happens to be the editor in KDevelop.</p>
<p><a href="http://www.vermonster.com/wp-content/uploads/2008/04/kdevelop.jpg"><img class="alignnone size-medium wp-image-100" title="kdevelop" src="http://www.vermonster.com/wp-content/uploads/2008/04/kdevelop-300x187.jpg" alt="" width="300" height="187" /></a></p>
<p><span style="font-size:10px;">(KDevelop with the Class View on the left and console on the bottom)</span></p>
<p>But since switching to Xubuntu, starting up KDevelop was sluggish starting up.  I also had &#8220;the process for the file protocol died unexpectedly&#8221; error (appearing twice).  Since KDevelop is a KDE application, I knew it probably needed to KDE libraries for different file protocols, <a href="http://en.wikipedia.org/wiki/KIO">kioslaves</a>.  So although not a dependency (which it probably should be), installing the kio-locate package solved my problems.</p>
<p><code><br />
$ sudo apt-get install kio-locate<br />
</code></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vermonster.com/2008/04/26/xubuntu-kdevelop/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CSO Online Re-Launch!</title>
		<link>http://www.vermonster.com/2008/03/31/cso-online-re-launch/</link>
		<comments>http://www.vermonster.com/2008/03/31/cso-online-re-launch/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 17:04:08 +0000</pubDate>
		<dc:creator>bkaney</dc:creator>
		
		<category><![CDATA[Client Work]]></category>

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

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

		<guid isPermaLink="false">http://new.vermonster.com/2008/03/31/cso-online-launch/</guid>
		<description><![CDATA[CSO Online, the web edition of the CSO magazine, has re-launched.   CSO focuses on security and risk within the enterprise.   We worked closely with Keith LaFerriere  at Visual Activity to iron out a usable design.   We think the results are awesome!

We also helped by migrating the content from [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.csoonline.com">CSO Online</a>, the web edition of the CSO magazine, has re-launched.   CSO focuses on security and risk within the enterprise.   We worked closely with <a href="http://www.visualactivity.com/">Keith LaFerriere  at Visual Activity</a> to iron out a usable design.   We think the results are awesome!</p>
<p><a href="http://www.csoonline.com" title="small.jpg"><img src="http://new.vermonster.com/wp-content/uploads/2008/03/small.jpg" alt="small.jpg" /></a></p>
<p>We also helped by migrating the content from a legacy CMS (content management system) to their current one.  To do this, used the power of <a href="http://www.ruby-lang.org">Ruby</a> with some help by the popular <a href="http://ar.rubyonrails.com/">ActiveRecord library</a> to quickly extract information stored in a blend of MS-SQL and Oracle databases to a nice single Oracle database.</p>
<p>Chekout the new website at <a href="http://www.csoonline.com">http://www.csoonline.com</a> and the new site tour at <a href="http://csoonline.com/sitetour">http://csoonline.com/sitetour</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vermonster.com/2008/03/31/cso-online-re-launch/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CSS Graphy - Bar Graph Plugin for Rails</title>
		<link>http://www.vermonster.com/2008/02/13/css-graphy-bar-graph-plugin-for-rails/</link>
		<comments>http://www.vermonster.com/2008/02/13/css-graphy-bar-graph-plugin-for-rails/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 17:48:36 +0000</pubDate>
		<dc:creator>bkaney</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

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

		<guid isPermaLink="false">http://new.vermonster.com/2008/02/13/css-graphy-bar-graph-plugin-for-rails/</guid>
		<description><![CDATA[For our RallyClock product, we are implementing some simple bar graphing in our next round of enhancements. In doing so, we looked around for some existing plugins to get it done but decided on rolling our own. Read more about the plugin we wrote and how it works.

Gruff&#8217;ing It
We first came across Gruff by Geoffrey [...]]]></description>
			<content:encoded><![CDATA[<p>For our <a href="http://www.rallyclock.com">RallyClock</a> product, we are implementing some simple bar graphing in our next round of enhancements. In doing so, we looked around for some existing plugins to get it done but decided on rolling our own. Read more about the plugin we wrote and how it works.<br />
<span id="more-95"></span></p>
<h2>Gruff&#8217;ing It</h2>
<p>We first came across <a href="http://nubyonrails.com/pages/gruff">Gruff by Geoffrey Grosenbach</a>, which is a nice plugin that uses ImageMagick to create PNG-based graphs. For our purposes, it did not seem to be flexible enough when there is a variable number of data pairs. Here are two examples, notice the legend is stripped.</p>
<p><img width="400" src="http://farm3.static.flickr.com/2256/2257914105_490c6b2d09.jpg" height="300" /></p>
<p><img src="http://farm3.static.flickr.com/2403/2258707758_ab26320f4e.jpg" /></p>
<h2>CSS Graphs</h2>
<p>Next, we looked at <a href="http://nubyonrails.com/pages/css_graphs">css_graphs</a>, also by Geoffrey, but the limitations as stated on the site didn&#8217;t fit our needs:</p>
<blockquote>
<pre>Limitations of the First Release    * Only one graph can be used per page.    * Values must be in the range 0-10</pre>
</blockquote>
<h2>CSS Graphy</h2>
<p>So we wrote our own plugin with the features of auto-scaling so you can enter in any range of numbers. Also we can put down as many bar charts on our page as we would like.</p>
<p><img src="http://farm3.static.flickr.com/2022/2261715260_13b188d7c3.jpg" /><br />
<a href="http://farm3.static.flickr.com/2022/2261715260_48cbb0c005_o.png">Full Size</a></p>
<h2>More Information</h2>
<p>You can download the plugin and read about how it works on our project site: <a href="http://oss.vermonster.com/css_graphy">http://oss.vermonster.com/css_graphy</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vermonster.com/2008/02/13/css-graphy-bar-graph-plugin-for-rails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Happy New Year!  Quick Re-cap of 2007</title>
		<link>http://www.vermonster.com/2008/01/07/happy-new-year-quick-re-cap-of-2007/</link>
		<comments>http://www.vermonster.com/2008/01/07/happy-new-year-quick-re-cap-of-2007/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 17:10:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Company]]></category>

		<guid isPermaLink="false">http://new.vermonster.com/2008/01/07/happy-new-year-quick-re-cap-of-2007/</guid>
		<description><![CDATA[Happy new year to all our clients, consultants and everyone else!  We had a really exciting year in 2007, worked on a bunch of cutting-edge projects and learned more than I thought could be possible in a decade.

In Vermonster news, there are a few noteworthy points from 2007 we are proud to share:

We successfully [...]]]></description>
			<content:encoded><![CDATA[<p>Happy new year to all our clients, consultants and everyone else!  We had a really exciting year in 2007, worked on a bunch of cutting-edge projects and learned more than I thought could be possible in a decade.</p>
<p><span id="more-77"></span>
<p>In Vermonster news, there are a few noteworthy points from 2007 we are proud to share:</p>
<ul>
<li>We successfully launched and are continuing to maintain an enterprise-level warehouse shipping application, which has processes literally millions of pieces of mail.  We squeezed all the power and validated Ruby on Rails as a stable technology choice.</li>
<li><a href="http://www.techdispenser.com">Tech Dispense</a>r, a completely custom-build application for Computerworld launched early 2007.  There are tens-of-thousands of articles being processed using a highly-usable backend (with a few ajax tricks along the way).</li>
<li>Continued to support the ever-growing data appliance company <a href="http://www.dataupia.com">Dataupia</a>.  We expect to hear some big things from them this year and applaud their efforts.</li>
<li><a href="http://www.rallyclock.com">RallyClock</a> finally launched.  It is a market breaking time tracking application that fits into your work day featuring a rich API and an Instant Messenger interface for non-disruptive use.</li>
<li>We had one of our best years on record and look forward to continued growth in 2008</li>
</ul>
<p>We&#8217;ve also started a few projects in late 2007 that we are heads-down working on right now.  Look for announcements soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vermonster.com/2008/01/07/happy-new-year-quick-re-cap-of-2007/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jay Finishes 3rd NYC Marathon</title>
		<link>http://www.vermonster.com/2007/11/06/jay-finishes-3rd-nyc-marathon/</link>
		<comments>http://www.vermonster.com/2007/11/06/jay-finishes-3rd-nyc-marathon/#comments</comments>
		<pubDate>Tue, 06 Nov 2007 19:30:41 +0000</pubDate>
		<dc:creator>bkaney</dc:creator>
		
		<category><![CDATA[Company]]></category>

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

		<guid isPermaLink="false">http://new.vermonster.com/2007/11/06/jay-finishes-3rd-nyc-marathon/</guid>
		<description><![CDATA[Jay Powers, co-founder of Vermonster LLC finished his 3rd New York City Marathon.  While he was able to beat Katie Holmes, he wasn&#8217;t able to better Lance Armstrong.  His 4:09 time is more than respectable though.  Congratulations!
]]></description>
			<content:encoded><![CDATA[<p>Jay Powers, co-founder of Vermonster LLC finished his 3rd New York City Marathon.  While he was able to beat Katie Holmes, he wasn&#8217;t able to better Lance Armstrong.  His 4:09 time is more than respectable though.  Congratulations!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vermonster.com/2007/11/06/jay-finishes-3rd-nyc-marathon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Double Dose of Technology, Complete with a Mashup</title>
		<link>http://www.vermonster.com/2007/10/24/double-dose-of-technology-complete-with-a-mashup/</link>
		<comments>http://www.vermonster.com/2007/10/24/double-dose-of-technology-complete-with-a-mashup/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 20:08:44 +0000</pubDate>
		<dc:creator>bkaney</dc:creator>
		
		<category><![CDATA[RallyClock]]></category>

		<guid isPermaLink="false">http://new.vermonster.com/2007/10/24/double-dose-of-technology/</guid>
		<description><![CDATA[We just rolled out two interesting and noteworthy articles over at the RallyClock Developers&#8217; Blog; it been a busy Wednesday!
First an informative article on how we used the standard message composing notification feature found in most IM (instant messenger) clients to add critical usability to our jabber bot.  Second, we have an article exploring [...]]]></description>
			<content:encoded><![CDATA[<p>We just rolled out two interesting and noteworthy articles over at the<a href="http://blog.rallyclock.com"> RallyClock Developers&#8217; Blog</a>; it been a busy Wednesday!</p>
<p>First an <a href="http://blog.rallyclock.com/2007/10/23/making-your-im-bot-usable-with-typing-notification/">informative article</a> on how we used the standard message composing notification feature found in most IM (instant messenger) clients to add critical usability to our jabber bot.  Second, we have an article exploring a cool <a href="http://blog.rallyclock.com/2007/10/24/time-tracking-mashup-rallyclock-api-subversion/">mashup with the RallyClock API</a> and how it can be integrated into SVN (subversion) to automatically capture messages to your active timers right as you commit code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vermonster.com/2007/10/24/double-dose-of-technology-complete-with-a-mashup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RallyClock Sponsorship Announcement</title>
		<link>http://www.vermonster.com/2007/10/15/rallyclock-sponsorship-announcement/</link>
		<comments>http://www.vermonster.com/2007/10/15/rallyclock-sponsorship-announcement/#comments</comments>
		<pubDate>Mon, 15 Oct 2007 15:20:10 +0000</pubDate>
		<dc:creator>bkaney</dc:creator>
		
		<category><![CDATA[Company]]></category>

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

		<guid isPermaLink="false">http://new.vermonster.com/2007/10/15/rallyclock-sponsorship-announcement/</guid>
		<description><![CDATA[We are proud to announce that RallyClock is the official sponsor of Jobs.Rubynow.com.  The job site, run by two former Vermonster team members, is the de-facto website for ruby jobs.  We feel this sponsorship exposes RallyClock to a key audience of contractors and employers where time account it critical to their business.
We are [...]]]></description>
			<content:encoded><![CDATA[<p>We are proud to announce that <a href="http://www.rallyclock.com">RallyClock</a> is the official sponsor of <a href="http://jobs.rubynow.com">Jobs.Rubynow.com</a>.  The job site, run by two former Vermonster team members, is the de-facto website for ruby jobs.  We feel this sponsorship exposes RallyClock to a key audience of contractors and employers where time account it critical to their business.</p>
<p>We are really delighted to support the site and their efforts!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vermonster.com/2007/10/15/rallyclock-sponsorship-announcement/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Perl Pipes for Parallel Interprocesses Communication</title>
		<link>http://www.vermonster.com/2007/10/12/using-perl-pipes-for-interprocess-communication/</link>
		<comments>http://www.vermonster.com/2007/10/12/using-perl-pipes-for-interprocess-communication/#comments</comments>
		<pubDate>Fri, 12 Oct 2007 17:27:06 +0000</pubDate>
		<dc:creator>bkaney</dc:creator>
		
		<category><![CDATA[Code]]></category>

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

		<guid isPermaLink="false">http://new.vermonster.com/2007/10/12/using-perl-pipes-for-interprocess-communication/</guid>
		<description><![CDATA[A recent Perl-based project called for some parallel processing.  I naturally turned first to fork, which I have used successfully in the past.  But this time, I needed to share information across the processes - they can&#8217;t just run in their isolated worlds.  To do this, I had some options, including:

IPC::Shareable
subs::parallel
perl threads
simple [...]]]></description>
			<content:encoded><![CDATA[<p>A recent Perl-based project called for some parallel processing.  I naturally turned first to fork, which I have used successfully in the past.  But this time, I needed to share information across the processes - they can&#8217;t just run in their isolated worlds.  To do this, I had some options, including:</p>
<ul>
<li><a href="http://search.cpan.org/perldoc?IPC%3A%3AShareable">IPC::Shareable</a></li>
<li><a href="http://search.cpan.org/perldoc?subs::parallel">subs::parallel</a></li>
<li><a href="http://perldoc.perl.org/threads.html">perl threads</a></li>
<li>simple perl <a href="http://perldoc.perl.org/functions/fork.html">fork</a> and <a href="http://perldoc.perl.org/functions/pipe.html">pipes</a></li>
</ul>
<p>As the title of this article hints, I went with the last one.</p>
<p><span id="more-71"></span></p>
<h3>Try, Try and Try Again</h3>
<p>To preface all of this, my target environment is quite constrained.  It is a hardware appliance, with the day-to-day operations being anything but running my code.  So I didn&#8217;t have the flexibility to install tons of CPAN modules and also couldn&#8217;t tweak the environment (basic out-of-the-box Fedora).  I had to &#8220;just get it done&#8221; with the hand I was dealt.</p>
<p>First, I tried using the IPC::Sharable  module.  But I found that the process I was trying to run was consuming too much memory, especially when a number in parallel.  I kept getting an error &#8220;Could not create semaphore set: No space left on device&#8221;.  I think this had to do with the variable being tied could be a fairly complex object.</p>
<p>The next attempt was subs::parallel.  In theory, this module should have worked great (it is a really nice module).  But my application has a fairly robust ORM (Object Relationship Model) as it follows a MVC pattern, so my code was calling the &#8220;parallelized&#8221; return variable almost immediately following the subs::parallel call.   As the module blocks once this occurs, it was also waiting for the return almost immediately and ended up not being any faster (in fact the overhead was making it a wallclock or two slower).  To use this module, I would have to drastically change the existing (and working) application.  So I kept looking.</p>
<p>I do have threaded perl available, so I thought I would give it a shot.  Every few tests (I am running my own unit tests based on PerlUnit), I was getting core dumps.  Not a good thing.  When I gdb&#8217;d the core dump, I got an invalid format error, so I decided to pass on threads.</p>
<p>This lead me to look at using pipes and simple <code>fork()</code> to communicate from the child processes to the parent.</p>
<h3>Basic Concept</h3>
<p>The general idea is you can use IO pipes for interprocess communications.  That is, much like opening a file handle (which is a form of a pipe) you can open a pipe that connects one handle to another.  For instance, consider this:</p>
<pre><code>
pipe(FROM_SENDER, TO_READER);

# now you can write to the first handle
print TO_READER "Hello";

# and it will be able to be read from the other
my $message = &lt;FROM_SENDER&gt;;
</code></pre>
<p>This is great, but if you combine this with fork(), you will notice it is blocking, which isn&#8217;t all that interesting if you want to launch these processes in parallel.  You can use <a href="www.perl.com/doc/manual/html/lib/IO/Handle.html">IO::Handle</a> to make the pipe non-blocking, but then if two (or more) of the child processes try to write to the pipe at the same time, you can loose messages (yea, I saw this in action).</p>
<p>So to implement a non-blocking, but non-dropping mechanism, the idea it to dynamically create the IO handles.  The implementation I used is borrowed <a href="http://perldoc.perl.org/perlfork.html">from the perl fork documentation</a>, under the <strong>Forking pipe open() not yet implemented</strong> section.</p>
<pre><code>
sub pipe_from_fork ($) {
    my $parent = shift;
    pipe $parent, my $child or die;
    my $pid = fork();
    die "fork() failed: $!" unless defined $pid;
    if ($pid) {
        close $child;
    } else {
        close $parent;
        open(STDOUT, "&gt;&amp;=" . fileno($child)) or die;
    }
    $pid;
}
</code></pre>
<p>Now execute the fork process like so:</p>
<pre><code>
if (pipe_from_fork('BAR')) {
    # parent
    while (&lt;BAR&gt;) { print; }
    close BAR;
} else {
    # child
    print "pipe_from_forkn";
    exit(0);
}
</code></pre>
<p>This allowed me to fork off x-number of processes and make sure the responses are returned without losing any.  This is great, but there was one more issue&#8230;the messages were strings.</p>
<h3>Encoding/Decoding</h3>
<p>I had the ability to fork off processes and read the return, but I could only send back simple strings.  This was not adequate, as my processes mostly returned objects (or arrays or objects).  I decided to use the infamous <a href="search.cpan.org/perldoc/Data::Dumper">Data::Dumper</a> to handle my encoding and decoding.  So in the child section, the modification is something like this:</p>
<pre><code>
use Data::Dumper;

if (pipe_from_fork('BAR')) {
    # parent, read our "string"
    chomp( my $encoded_return = &lt;BAR&gt; );

    # Eval the the string to rebuild
    my $complicated_return = eval($encoded_return);

    close BAR;
} else {
    # child, assume we want to return a complicated thing
    my $complicated_thing = some_thing_that_made_it();

    # Encode it here.
    my $encoded_thing = Data::Dumper-&gt;new( [ $complicated_thing ] );
    $encoded_thing-&gt;Purity(1)-&gt;Terse(1)-&gt;Deepcopy(1)-&gt;Indent(0);

    # Then print, like before.
    print $encoded_thing;

    exit(0);
}
</code></pre>
<h3>Putting it Together</h3>
<p>This all is working fine, but I wanted more general usage.  So I whipped together a quick and dirty perl module with a neat interface.  First the interface looks something like this:</p>
<pre><code>
#!/usr/bin/perl -w

use SimpleParallel;

my $parallel = SimpleParallel-&gt;new;

my ($return_variable1, $return_variable2);

$parallel-&gt;processes($return_variable1, sub { sleep(5); return ["hi", "one"]; });
$parallel-&gt;processes($return_variable2, sub { sleep(5); return ["hi", "two"]; });

$parallel-&gt;execute;

use Data::Dumper;
print "From Process 1n"; print Dumper $return_variable1;
print "n----n";
print "From Process 2n"; print Dumper $return_variable2;
print "n----n";
</code></pre>
<p>The idea being to add processes with return variables (references, bound the each process).  Then when ready, <code>execute</code> them in parallel.  Running this with <code>time</code> show us the process takes roughly 5 seconds (as it should):</p>
<pre><code>
$ time perl ./parallel.pl
From Process 1:
$VAR1 = [
          'hi',
          'one'
        ];

----
From Process 2:
$VAR1 = [
          'hi',
          'two'
        ];

----

real    0m5.042s
user    0m0.036s
sys     0m0.000s
</code></pre>
<p>The entire library, including POD, is only <strong>150</strong> lines of code.  You can download it here: <a href="http://new.vermonster.com/wp-content/uploads/2007/10/simpleparallel.pm" title="simpleparallel.pm">simpleparallel.pm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vermonster.com/2007/10/12/using-perl-pipes-for-interprocess-communication/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RallyClock Fourms and Developers&#8217; Blog Launched</title>
		<link>http://www.vermonster.com/2007/10/05/rallyclock-fourms-and-developers-blog-launched/</link>
		<comments>http://www.vermonster.com/2007/10/05/rallyclock-fourms-and-developers-blog-launched/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 20:16:48 +0000</pubDate>
		<dc:creator>bkaney</dc:creator>
		
		<category><![CDATA[RallyClock]]></category>

		<guid isPermaLink="false">http://new.vermonster.com/2007/10/05/rallyclock-fourms-and-developers-blog-launched/</guid>
		<description><![CDATA[As we continue to work on our time tracking product RallyClock, we are pleased to announce the RallyClock Developers&#8217; Blog and the RallyClock Forums.   The names aren&#8217;t the most dramatic, we could have used &#8220;robots&#8221;, &#8220;rock stars&#8221;, &#8220;pirates&#8221; or &#8220;ninjas&#8221; (or a combination thereof, like &#8220;Robotic Rockstars vs. Pirate Ninjas&#8221;), but decided on [...]]]></description>
			<content:encoded><![CDATA[<p>As we continue to work on our time tracking product <a href="http://www.rallyclock.com">RallyClock</a>, we are pleased to announce the <a href="http://blog.rallyclock.com">RallyClock Developers&#8217; Blog</a> and the <a href="http://forums.rallyclock.com">RallyClock Forums</a>.   The names aren&#8217;t the most dramatic, we could have used &#8220;robots&#8221;, &#8220;rock stars&#8221;, &#8220;pirates&#8221; or &#8220;ninjas&#8221; (or a combination thereof, like &#8220;Robotic Rockstars vs. Pirate Ninjas&#8221;), but decided on more pithy titles - plus they are easier to type.</p>
<p>We have a few new announcements and interesting articles about RallyClock, so stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vermonster.com/2007/10/05/rallyclock-fourms-and-developers-blog-launched/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Say no to OOXML</title>
		<link>http://www.vermonster.com/2007/10/04/say-no-to-ooxml/</link>
		<comments>http://www.vermonster.com/2007/10/04/say-no-to-ooxml/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 16:54:30 +0000</pubDate>
		<dc:creator>bkaney</dc:creator>
		
		<category><![CDATA[Code]]></category>

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

		<guid isPermaLink="false">http://new.vermonster.com/2007/10/04/say-no-to-ooxml/</guid>
		<description><![CDATA[If you have a moment, sign the petition at NoOOMLX.org.  The group highlights some valid arguments, including the fact that the Microsoft-driven format does not even validate as XML.  We really ought to continue to use the existing Open Document Format as seen in many existing applications like OpenOffice, Abiword KWord and GoogleDocs.
]]></description>
			<content:encoded><![CDATA[<p>If you have a moment, <a href="http://www.noooxml.org/petition">sign the petition at NoOOMLX.org</a>.  The group highlights some valid arguments, including the fact that the Microsoft-driven format does not even validate as XML.  We really ought to continue to use the existing <a href="http://en.wikipedia.org/wiki/OpenDocument">Open Document Format</a> as seen in many existing applications like <a href="http://www.openoffice.org">OpenOffice</a>, <a href="http://www.abisouce.com">Abiword</a> <a href="http://www.koffice.org/kword/">KWord</a> and <a href="http://docs.google.com/">GoogleDocs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vermonster.com/2007/10/04/say-no-to-ooxml/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
