[Pipet Devel] executing a network script

Jean-Marc Valin jean-marc.valin at hermes.usherb.ca
Thu May 4 21:11:42 EDT 2000

> > The biggest problem is the selection and submission of non-contiguous
> > sections
> > of a network (e.g., selecting 2 nodes that are separated by one
> unselected
> > node in the middle).  While ctrl-button1 click in the UI will/can
> allow this,
> > we wouldn't want this submitted to be executed.

If we're doing a pull, then only the output node matters. This means that we're
not going to specify a section we want to run, but what output we want. The
nodes that are actually going to run will depend on what needs to be calculated.

> It just seems like that you both have such similar designs, that there
> isn't some kind of meeting place where we can have some code re-use?
> It just seems like the sooner we are able to get Overflow running
> under Piper the way it is now stand-alone, the sooner we can make
> better use of our resources and not have to be coding separate UIs and
> all of that. I'm just trying to think of ways that we can do that
> sooner, rather than later. I was kind of interested to hear
> Jean-Marc's thoughts on this as well, and how he thinks we can
> expedite the process of getting all of our programs together. So I was
> just trying to brainstorm ideas along those lines :-)

OK, first of all, I have to say I don't know anything about Python. I would
rather code the GUI in C++, but if most people want Python, it's OK with me, as
long as you don't expect me to contribute too much. 

As for how to integrate Overflow, here is an idea of the complexity of each
part, in lines of code (this includes white lines and comments)

1- gnome GUI                          : 2500 lines
2- toolkit independent UI stuff       : 2500 lines
3- Non-UI data-flow stuff             : 3000 lines
4- Node implementations               : ~28000 lines

Only 1) depends on gnome/gtk and 2) depends on libXML. All the XML parsing and
the conversion to a "real" runnable network is performed by 2). You cannot
change 3) unless you want to change 4) (and I don't want to!). If I understand
your terminology correctly, 3) (and 4?) is the data-flow layer. I basically see
4 ways to do the integration (number of lines to change/rewrite in parentheses):

A) embed the Overflow GUI in piper (0 lines)
B) use the GUI classes (GUINode, GUILink, ...) in piper (~0-200 lines)
C) scrap the GUI (1), but keep 2) (2500-3000 lines)
D) scrap both 1) and 2) (5000 lines)

I would go for either C or D, that may depend on whether or not we're going to
use the gnome canvas (I use it, and I suggest using it).


Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01 at gel.usherb.ca

More information about the Pipet-Devel mailing list