Tim Lahey wrote:
> I ran across this package,
> 
> http://code.google.com/p/ruffus/
> 
> That provides for support for computational
> pipelines in Python. It has some nice features
> for support of a task pipeline and visualization
> of the pipeline using Graphviz.

On a somewhat related, highly speculative note:  It should be possible
to convert the worksheet into a free-form workspace.  The classic
one-column setup works well, but different arrangements could be useful
in some situations.

The browser's cell list is now an array of IDs, but we can also keep
track of cell coordinates (2D or 3D), orientations, input-output
connections (see below), types, etc.  Of course, we should save this
data on the server, too, in order to restore pieces to their places.

A click on the workspace or a toolbar might create a new stem cell [1].
Another click (or a paste event) could convert it to an ordinary input
cell, a text cell, an interactive cell, or something completely different.

In the case of "interacts" [2], each such cell might have a set of
inputs and outputs.  These could be scalars or more intricate Sage
objects, images, sounds, etc.  Nevertheless, a cell's widgets, including
ordinary functions, should be able to read / write the variables in a
standard way.

Efficiently making, maintaining, and displaying the graph of cell
connections probably requires some thought and a lot of work.  It'd be
great to have both plain text and drag-and-drop options [3].

Ideally, we'd also be able to specify the conditions under which a
given cell fires, e.g., when any input is updated, after all inputs are
updated, or manually.  The preparser, special cell variables (e.g.,
_in_X, _out_Y), notebook's callback system, and/or jQuery [4] may
help here.

Not that I'm volunteering, so feel free to pile it on...  Thoughts?

[1] http://groups.google.com/group/sage-devel/msg/1f5658399f500c24

[2]
http://groups.google.com/group/sage-devel/browse_thread/thread/0b91cbc63479555b/f3aa93231beedfa1?#f3aa93231beedfa1

[3] A desktop example is the signals-and-slots mode in Qt Designer
(/usr/bin/designer-qt4 on Fedora Linux):

http://doc.qtsoftware.com/4.5/designer-connection-mode.html

I think VisTrails

http://www.vistrails.org/index.php/Main_Page

also works in this way.

[4] jQuery, or one of it's plug-ins, can handle certain live events:

http://docs.jquery.com/Events/live
http://plugins.jquery.com/project/Listen
http://plugins.jquery.com/project/Intercept
http://plugins.jquery.com/project/livequery


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to