On Sun, Dec 12, 2004 at 03:03:44PM +0900, Joel VanderWerf scribed:
> David G. Andersen wrote:
> >
> >  Using Ruby in Scientific Applications
> >   - Numerical applications
> >   - Analysis
> >   - Data Acquisition 
> >   - Control
> >   - Visualization 
> >   - Data archiving and retrieval
> 
>   - Simulation, modeling, random number generation
>   - Interfacing with other tools: gnuplot, Matlab, Excel, R, etc.
>   - Using ruby efficiently: extensions, mmap, narray
>   - Crafting domain-specific sublanguages for scientific apps
>   - Ruby and distributed/parallel processing
>   - Managing legacy C and Fortran code
>   - Ruby in a real-time environment?

Steven Jenkins wrote:

> "Data Acqusition with Linux, Comedi, SWIG, and Ruby."
> [...]  ruby-gsl

Steven's point about SWIG is well integrated into such a book,
and goes hand in hand with Joel's "Interfacing" and "Managing" 
points.

I just looked at ruby-gsl;  hadn't seen it before, but I _like_ it -
thanks, Steven!
Very nice, intuitive, and seems to behave in the way I'd expect
it to for simple things like vector and matrix manipulation.
It has one nice answer to the random number generation point
above, though I suspect there are others.
(Note that FreeBSD's "ruby-gsl" port is actually Ruby/GSL,
not the similarly named "ruby-gsl" project)

There's also the Lapack interface, which I haven't peeked at
lately.

So putting those all together and shaking a bit to get a book
that we'd all really like to have, hopefully. ;-)

   - Numerical applications
     - Variable precision math in Ruby
        * BigDecimal, GMP, ??
     - Simulation, modeling, random number generation
   - Analysis
      - Statistics
        : NArray, GSL, ??
   - Data Acquisition and Control
     - Comedi
     - Dealing with GPIB
   - Visualization and plotting
      - Gnuplot / ploticus / etc.
      - NImage
      - gd
      - Something that differentiates between generating
        images for publication vs. immediate UI images vs.
        dynamic images for the web
   - Data archiving and retrieval
      - Local data
      - Compressed data
      - Databases
   - Interfacing with other tools
      - "Why SWIG is your friend". ;-)
      - Matlab, Excel, R, etc.
      - Managing legacy C and Fortran
   - Optimization and Speed
      - C extensions
      - MMap and other cool tricks
   - Distributed computing and parallel processing
   - Crafting domain-specific sublanguages for scientific apps
   - Ruby in a real-time environment?