Possible Ruby-centric NASA SBIR area

I’ve been asked to write a small topic area
for our SBIR (small business innovation research)
program, which is basically a method to fun small
businesses in $70k, $500k, and $2-3M chunks for
promising research topics. SBIR’s premise doesn’t fit
too well with open source, but I thought it would
be worth a try. For more information about SBIRs, see
http://sbir.gsfc.nasa.gov

The following is a selfish, Ruby-centric draft of a
topic I threw together last night. Please pick it apart,
add to it, ignore it, or whatever, but to have an impact
on this go-around, I need your input by tomorrow morning
(Eastern US time).

Title: Tools to Support Agile, Scientific Software Development

The aim of this “software craftsmanship” topic is
to solicit tools that make it easier for software developers
in general, and scientific programmers in particular, to adopt
agile software development practices. Submissions will achieve
this by creating tools that are easier to learn and use than
the current Unix-style tool set, documenting these tools and
the practices they embody, and remaining readily extendable.
All tools should be portable across Mac OS X, Linux, and Microsoft
Windows, come with a complete set of automated unit tests, and
be implemented primarily in, or scriptable with, Ruby.

Examples of desired tools include testing frameworks for
Fortran 95, C, and C++ (unit, regression, performance, and
integration), CASE tools (Lakos analysis, calling trees, object
modeling and design, dependency analysis, cyclomatic complexity),
refactoring tools, API documentation tools (e.g., C++ and
Fortran 95 parsers for RDoc), a Textile-to-PDF converter
including embedded LaTeX mathematics and graphics or similar
way to get from simple markup to a typeset document, domain
specific languages, code release and request administration
systems, distributed continuous integration systems, templating
systems for Fortran 95, and novel systems for monitoring
simulations (e.g., Peep:A Network Auralizer or other ambient
means).

Regards,

In article [email protected],
Bil K. [email protected] wrote:

I’ve been asked to write a small topic area
for our SBIR (small business innovation research)
program, which is basically a method to fun small
businesses in $70k, $500k, and $2-3M chunks for
promising research topics. SBIR’s premise doesn’t fit
too well with open source, but I thought it would
be worth a try. For more information about SBIRs, see
http://sbir.gsfc.nasa.gov

I’m a little bit familiar with SBIRs; I was contracting for a company
last
summer and my position was funded by an SBIR. My impression was that
you had
to be well-connected to get an SBIR :wink:

to solicit tools that make it easier for software developers
Fortran 95, C, and C++ (unit, regression, performance, and
means).
It’d be cool if you can get this. I’m not sure what I’d add. It would
be nice
to have an open source MatLab alternative; it’s a bit worrying that
a proprietary product is becoming essential in a lot of research.

Phil

The aim of this “software craftsmanship” topic is
to solicit tools that make it easier for software developers
in general, and scientific programmers in particular, to adopt
agile software development practices

Add: “and support collaborative web application development.”

By this I mean using a Wiki or Wiki-like platform to quickly develop
collaborative web applications. Examples of existing systems include:
Jotspot (http://www.jotspot.com/) which is Java-based and Trac
(Edgewall Software: Trac) which is Python-based–to name a
couple.

Of course my project, Pandora (http://pandora.rubyveil.com/), is meant
to be such a development platform for Ruby, and I could really use some
funding to get it going… :wink:

Do you have the timeframe for proposal submissions?

Best,

Julian I. Kamil

Phil T. wrote:

I’m a little bit familiar with SBIRs; I was contracting for a company last
summer and my position was funded by an SBIR. My impression was that you had
to be well-connected to get an SBIR :wink:

Here’s your chance to write the connection!

Regards,

[email protected] wrote:

Add: “and support collaborative web application development.”

Done. Thanks.

Do you have the timeframe for proposal submissions?

No, but the NASA SBIR site should: http://sbir.gsfc.nasa.gov

Thanks again,

In [email protected] Bil K. wrote:

I’ve been asked to write a small topic area
for our SBIR (small business innovation research)
program, which is basically a method to fun small
businesses in $70k, $500k, and $2-3M chunks for
promising research topics. SBIR’s premise doesn’t fit
too well with open source, but I thought it would
be worth a try. For more information about SBIRs, see
http://sbir.gsfc.nasa.gov

Is thre any way to produce a Ruby version of SciPy under this funding?
A set of ruby bindings to all the numerical libraries. It is a very
general goal that in turn would allow the development of tools for
specific purposes.

On Wed, 2006-02-15 at 16:03, Bil K. wrote:

Title: Tools to Support Agile, Scientific Software Development

The aim of this “software craftsmanship” topic is
to solicit tools that make it easier for software developers
in general, and scientific programmers in particular, to adopt
agile software development practices. Submissions will achieve

Project management support tools that are directly geared to supporting
Agile methodologies might be very useful. Agile methodologies are
related to Lean practises, and share the underlying process theory, the
Theory Of Constraints, with Lean. The management tools I’ve seen so far
are based on older models.

Agile developers and managers might want to have:

  • A Kanban iteration planning tool, perhaps integrated in an IDE.
  • A Theory Of Constraints based process simulation and visualisation
    tool, for trying out various development strategies, and for
    presenting them to more business oriented stakeholders.
    (Check out
    Kallokain: The Variance Trap, Part 3
    for an example of what such a tool can be used for. The blog entry
    is about a very early prototype though.)
  • A Throughput Accounting based tool to help make the right
    economic decisions and produce the maximum return on investment.

When doing Agile, it is useful to understand how to optimize queue time
and wait time, as well as process time. Most tools today focus on
process time, even though the process time is only a small part (10-30%
or so) of the total time spent in software development projects. Tools
for this could help a bit.

/Henrik


http://kallokain.blogspot.com/ - Blogging from the trenches of software
development
http://www.henrikmartensson.org/ - Reflections on software development
http://testunitxml.rubyforge.org/ - The Test::Unit::XML Home Page
http://declan.rubyforge.org/ - The Declan Home Page

There’s already an open source competitior to matlab: python plus
matplotlib , sometimes known as pylab.

Sigh. It’s really unfortunate that the Ruby/Python contention has
leaked into science. I had thought Python was sufficiently ahead in
terms of available libraries that it wouldn’t come up, but maybe not.
(I would think that f2py alone was decisive.)

However, the issues Bill raises are very much the right ones, and we
should agree that these languages can be used in combination with very
large computing resources to open up new and better ways to do
scientific programming.

Michael Tobis
http://geosci.uchicago.edu/~tobis

There’s already an open source competitior to matlab: python plus
matplotlib , sometimes known as pylab.

Sigh. It’s really unfortunate that the Ruby/Python contention has
leaked into science. I had thought Python was sufficiently ahead in
terms of available libraries that it wouldn’t come up, but maybe not.
(I would think that f2py alone was decisive.)

However, the issues Bill raises are very much the right ones, and we
should agree that these languages can be used in combination with very
large computing resources to open up new and better ways to do
scientific programming.

Michael Tobis
http://geosci.uchicago.edu/~tobis

Robert Love wrote:

Is thre any way to produce a Ruby version of SciPy under this funding?

I don’t see why not.

Regards,

[email protected] wrote:

There’s already an open source competitior to matlab: python plus
matplotlib , sometimes known as pylab.

Sigh. It’s really unfortunate that the Ruby/Python contention has
leaked into science.

As I said, I wrote the SBIR topic for selfish reasons: our team
uses Ruby and we have need for tools I originally outlined. No
contention intended, just bias?

Regards,

[email protected] wrote:

Does Ruby offer you such great advantages over python that you are
willing to sacrifice mature
tools with widespread community involvement for these advantages? And
if so, what are they?

Yes: fun (of all sorts).

How much effort do you already have invested in Ruby? People have
been working hard on scientific python for 10 years (scipy, numpy,
matplotlib,
vtk python interfaces, weave, f2py). In the arena of scientific
computing, my guess
is Ruby is about 3 years behind, maybe more, just in terms of how long
it would take to
produce reasonably full featured, bug-vetted libraries with a broad
user base comparable to what python already has.

Does Ruby offer you such great advantages over python that you are
willing to sacrifice mature
tools with widespread community involvement for these advantages? And
if so, what are they?

JDH

Thanks for the tip – I’ll be sure to give it a try then

JDH

In article [email protected],
Bil K. [email protected] wrote:

Bil,

Maybe I misunderstood your original post in this thread: Are you looking
for
people to submit SBIR applications for funding to develop Ruby
applications
which fall into your list of needed apps?

I don’t understand the SBIR process much, but I’m guessing that you (as
an
‘agent’ in a government agency) are asking for people to submit
proposals for
SBIR funding from your agency - am I right? Can you offer any more
details
about the process?

Phil

[email protected] wrote:
: There’s already an open source competitior to matlab: python plus
: matplotlib , sometimes known as pylab.

with all due respect, aren’t the open source competitors to matlab,
Octave and Scilab? Given that one cannot run .m files in pylab,
shouldn’t it really be considered more an alternative to matlab ?

: Sigh. It’s really unfortunate that the Ruby/Python contention has
: leaked into science. I had thought Python was sufficiently ahead in
: terms of available libraries that it wouldn’t come up, but maybe not.
: (I would think that f2py alone was decisive.)

I don’t think that this is unfortunate. If one is prepared to be open
to other points of view, then it’s a very real and valid discussion,
given
a) the propensity for language invention in the hpc and sci/eng spaces;
and
b) the need to drive rapid applications development in the HPC & Sci/Eng
spaces.

I have a saying: “There are no classic rock and roll songs in Chinese”.
What this means is that despite being the most widely spoken language by
headcount,
the fact that no-one has yet written a good rock and roll song in
chinese shows
that language is hugely important.
This is especially true, imho, for software development.

Having worked with Scipy/Numpy/Numeric etc…, and abandoned them in
favor of Ruby,
it’s my opinion that Python’s advantages in this field are not as
pronounced as
the advocates of those packages would have you believe, and infact in
some cases,
there are some significant issues.

The one important exception: the community of scientific Python
programmers is
much bigger and more vocal and proselytising than the same Ruby
community. And
that means a lot. As does the fact that the Python community as a whole
is far
more driven to fully document their works in english than the Ruby
community is.

: However, the issues Bill raises are very much the right ones, and we
: should agree that these languages can be used in combination with very
: large computing resources to open up new and better ways to do
: scientific programming.

: Michael Tobis
: http://geosci.uchicago.edu/~tobis

And if someone knows (so that I don’t have to delve to deeply into the
sbir site ;)):

Can only US-only projects be funded?

I have a large group of Ruby-knowledgeable students who could take on
a number of porjects within the scope of such an SBIR. And they would
just love to do it for NASA… :slight_smile:

Bill, can you please indicate to this list if/when you actually get an
ok for this?

Thanks,

Robert F.

Phil T. wrote:

Maybe I misunderstood your original post in this thread:
Are you looking for people to submit SBIR applications
for funding to develop Ruby applications which fall into
your list of needed apps?

Yes.

I don’t understand the SBIR process much,

I think only those that have gone through it a few times do.

but I’m guessing that you (as an ‘agent’ in a government
agency) are asking for people to submit proposals for SBIR
funding from your agency - am I right?

More or less, yes. The funding actually comes from NASA’s
SBIR program.

Can you offer any more details about the process?

Details, such as they are, are available from the NASA SBIR
folks, their website is http://sbir.gsfc.nasa.gov

Regards,

Robert F. wrote:

Can only US-only projects be funded?

Yes, I believe that is the case. The program is designed
to help US-based small businesses get their legs.

I have a large group of Ruby-knowledgeable students who could take on
a number of porjects within the scope of such an SBIR. And they would
just love to do it for NASA… :slight_smile:

We’d love to have the work, but paying for it across U.S. borders
would be excruciatingly difficult. We’d be happy to play a
non-paying customer role though… :slight_smile:

Bill, can you please indicate to this list if/when you actually get an
ok for this?

The topic (more or less as posted) went into “the system”.
I’ll see if I can find out what state it is in and report
back…

Regards,

I don’t understand the SBIR process much, but I’m guessing that you
(as an
‘agent’ in a government agency) are asking for people to submit
proposals for
SBIR funding from your agency - am I right? Can you offer any more
details
about the process?

When the solicitation for proposals opens up (in July for the NASA
SBIR topics), you will be able to write a proposal for how you are
able to accomplish what’s needed. Then a committee decides which
proposal wins, and they award you the money.

If you win phase #1, you get $70k and 6? months to do a proof of
concept. After that, you can/are encouraged to write a proposal for
phase #2, which is a longer term (2 year) effort for larger money
(500k). This is about actually building your product. From there,
you can get more money if you show promise for commercializing and
your contracting officer can get the $$.

Having an inside edge on SBIR topics is about the only way to win
one, unfortunately. It’s to your advantage if you know someone on
the inside, but if you don’t - you’re a long shot.

That said, SBIRs are very nice because they encourage
commercialization of your product - and you retain the patents and
control rights. However, there is also a lot of overhead involved.
You have to write constant update reports, sometimes to multiple
people about different things. You can expect to be audited. You’ll
push a lot of paper to a lot of different people.

But don’t let any of that discourage anybody. Getting into SBIRs is
a lot like a startup - you’ll have a few failures at first, but if
you hang on you can reap some great rewards.

I think Bil’s Ruby proposal is wonderful! We’ll definitely plan to
give it a look when it’s formally released.

Caleb