David Mertens | 14 Nov 05:52 2013
Picon

Stratopan as a strategy for reproducible code

Hey all -

I wanted to draw everyone's attention to Stratopan.com. It is a new
website/cloud service run by Jeffrey Thalhammer, author of Perl::Critic. It
is a publicly available instance of Pinto, which essentially lets you
create your own mini-CPAN.

This is a big deal for reproducibility. Stratopan lets you build a "stack"
with a specific set of known-working modules. For example, this service
lets you create a stack with the current version of BioPerl and any other
modules that you use in your current research scripts. Stratopan will cache
those versions and hold on to them FOREVER, or until you tell it to upgrade
one or another module. Thus, if you created such a stack today, you could
easily install that stack on a machine two years from now, and any scripts
that you write now will work then.

Obviously, you need to have a local::lib or similar setup so that you can
install the modules from Stratopan, but that's not hard.

For me, one of the major issues with my scientific code is that I
frequently put developing modules to use before they're ready. A prime
example of this is PDL::Graphics::Prima, my plotting library, which has
(not surprisingly) undergone some backwards incompatible changes since I
started working on it back in January, 2011. It's great to really test it
out in live scientific code, but it sucks when I have to go back and clean
up a large collection of scripts when I change the API. If I had Stratopan
back in January 2011, I could have saved multiple versions of my plotting
library, and kept my scripts working without the need to update them.

Hope that helps!
David

--

-- 
 "Debugging is twice as hard as writing the code in the first place.
  Therefore, if you write the code as cleverly as possible, you are,
  by definition, not smart enough to debug it." -- Brian Kernighan

Gmane