From chapmanb at arches.uga.edu Wed Mar 1 04:24:28 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:17 2006
Subject: [Pipet Devel] we're back
Message-ID: <200003010927.EAA63692@archa10.cc.uga.edu>
> Okay, I guess you're talking about different 'sessions' and not about
> multiple
> fronts tapping into one session. If this is so, perhaps you should
have...
>
> middle/temp/session1/workspace1
> middle/temp/session2/workspace1
> middle/temp/session3/workspace1
Okay, sessions then :) The newest cvs does just this--puts the info
from each front started into a separate session and keeps track of
them separately. When a front shuts down, the middle will
automatically delete the xml associated with the session. When all
fronts shut down, the middle turns itself off. I know that later on
people might want to leave the middle running all of the time, even
without any fronts going (ie. if they wanted to be serving specialty
loci to users at other locations) but for right now I just want to
make it as clean as possible to start up and close Loci.
> My idea for multiple fronts 'listening' or 'tapping' into a single
session,
> allowed one front to control others. If you're talking about
multiple
> sessions, shouldn't each session have its own port?
Why can't all sessions listen on one port? I can distinguish sessions
over the same port based on the the connection, and properly
communicate only with a single connection when multiple connections
are fired up. Is there a performance issue here I should worry about?
As I mentioned before, I've never tried socket programming, so I don't
know about this.
> Okay, so the front remains locked up while waiting for a response.
Right--my idea is that the middle can also return errors to the front,
so this way the front waits until the middle responds positively,
before it goes ahead and visualizes a change in the GUI. Does this
make sense?
>> So I
>> think it might be worthwhile to put this off a bit until things are
>> smoothed out with this communication method.
>
> Okay. But what we're talking about is running the gnome front's GUI
and
> listening routine as separate threads. I think it should be done
this way,
> so that we can have one front manipulated by others.
Okay, if we want to have the front listening on a different thread at
all times
then we'll need to have some kind of login dialog with the middle like
the following:
Front asks to login:
Middle responds:
Then the front will have to listen on this port for info from the
middle. The session name gives the session a unique name so that other
fronts could manipulate the same session. The user name and password
provide protection for the session.
So this could be done, but would require a login type dialog to
begin a front. I think this is kind of overkill right now since we
don't even have other fronts to start up :-) I think this is a good,
and possible, idea, but should wait until things are a little further
along.
> And I think you're talking about multiple sessions with one middle.
But
> which
> would be more complex: one middle running multiple sessions or
multiple
> middles
> with one session each? Multiple middles would give us the problem I
> mentioned
> of the front (not) knowing which middle to choose.
Multiple middles would be a big pain, because we'd have to have them
listen on separate ports to start with, and then would have to have
some file or something where the fronts could find out what middles
are listening on which ports. I'd rather do things the way I described
above, with a login dialog. Then the middle can generate all of the
new ports while running, and pass the info back to the middle. This
way, all fronts start off by talking to the middle on one standard
well-known port, and then can subsequently be assigned specific ports
if necessary. Does this sound snazzy?
Brad
From bizzaro at geoserve.net Wed Mar 1 10:57:45 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] sessions (was: we're back)
References: <200003010927.EAA63692@archa10.cc.uga.edu>
Message-ID: <38BD3DF9.429D6662@geoserve.net>
Brad Chapman wrote:
>
> Okay, sessions then :) The newest cvs does just this--puts the info
> from each front started into a separate session and keeps track of
> them separately. When a front shuts down, the middle will
> automatically delete the xml associated with the session. When all
> fronts shut down, the middle turns itself off.
Great. I like it.
> I know that later on
> people might want to leave the middle running all of the time, even
> without any fronts going (ie. if they wanted to be serving specialty
> loci to users at other locations) but for right now I just want to
> make it as clean as possible to start up and close Loci.
That's right. We need to think of the middle as an Internet daemon.
> Why can't all sessions listen on one port? I can distinguish sessions
> over the same port based on the the connection, and properly
> communicate only with a single connection when multiple connections
> are fired up. Is there a performance issue here I should worry about?
> As I mentioned before, I've never tried socket programming, so I don't
> know about this.
Okay, I guess we're talking about Internet ports here, so it doesn't make sense
to use more than one. My bad. I was just thinking that we certainly want more
than one front-to-middle stream.
> > Okay, so the front remains locked up while waiting for a response.
>
> Right--my idea is that the middle can also return errors to the front,
> so this way the front waits until the middle responds positively,
> before it goes ahead and visualizes a change in the GUI. Does this
> make sense?
Oh yeah.
> Okay, if we want to have the front listening on a different thread at
> all times then we'll need to have some kind of login dialog with the
> middle like the following:
>
> Front asks to login:
>
>
>
> password = 'encrypted' />
>
Session name or number?
>
>
>
> Middle responds:
>
>
>
>
>
>
Very nice.
> Then the front will have to listen on this port for info from the
> middle. The session name gives the session a unique name so that other
> fronts could manipulate the same session. The user name and password
> provide protection for the session.
Excellent. I was thinking that a front could tap into a session by providing
the session number/name on the command line:
./loci-gnome --session=3
(note, I want to change the name of front executables to loci-*)
> So this could be done, but would require a login type dialog to
> begin a front. I think this is kind of overkill right now since we
> don't even have other fronts to start up :-) I think this is a good,
> and possible, idea, but should wait until things are a little further
> along.
Okay, no rush.
> Multiple middles would be a big pain, because we'd have to have them
> listen on separate ports to start with, and then would have to have
> some file or something where the fronts could find out what middles
> are listening on which ports.
We'll go with one middle then.
> I'd rather do things the way I described
> above, with a login dialog. Then the middle can generate all of the
> new ports while running, and pass the info back to the middle. This
> way, all fronts start off by talking to the middle on one standard
> well-known port, and then can subsequently be assigned specific ports
> if necessary. Does this sound snazzy?
Very snazzy. BTW, what port number will we be using? It's fixed, right?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 1 11:47:41 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] config with xml
Message-ID: <38BD49AD.31B0B6A1@geoserve.net>
Locians,
There's an interesting article at arstechnica about Mac OS X using XML for
system configurations (first few pages):
http://www.arstechnica.com/reviews/1q00/macos-x-dp3/macos-x-dp3-1.html
(BTW, the article says a bit about the GUI and using large icons.)
Of course, OS X is UNIX-based, and so this shows how XML can be used with more
traditional UNIX tools.
XML for configuration/preferences is something I'd like for Loci. Gary told me
he'd prefer standard rc files. What do you guys think?
Jeff
From stein at fmnh.org Wed Mar 1 11:49:47 2000
From: stein at fmnh.org (Jennifer Steinbachs)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] sessions (was: we're back)
In-Reply-To: <38BD3DF9.429D6662@geoserve.net>
References: <200003010927.EAA63692@archa10.cc.uga.edu> <38BD3DF9.429D6662@geoserve.net>
Message-ID: <200003011649.KAA21117@mail.fmnh.org>
> > I'd rather do things the way I described
> > above, with a login dialog. Then the middle can
> > generate all of the new ports while running, and
> > pass the info back to the middle. This way, all
> > fronts start off by talking to the middle on one
> > standard well-known port, and then can subsequently
> > be assigned specific ports if necessary. Does this
> > sound snazzy?
>
> Very snazzy. BTW, what port number will we be using?
> It's fixed, right?
Please keep in mind that not everybody has unrestricted
access (bi-directionally) to the outside world. How
will this communication work with firewalls? Not
something you'd necessarily have to deal with in a
typical academic setting, but at my institution we have
serious restrictions on my outside access (e.g. if your
web server is running on port 8080 we cannot access it
without poking a hole in the firewall).
Just stirring the pot a bit :)
-j
------------------------
J. Steinbachs, PhD
Computational Biologist
Dept Botany
The Field Museum
Chicago, IL 60605-2496
312-665-7810
312-665-7158 (fax)
http://cb.fmnh.org
-------------------------
From tim at xoom.com Wed Mar 1 11:52:45 2000
From: tim at xoom.com (Tim Triche)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] config with xml
In-Reply-To: <38BD49AD.31B0B6A1@geoserve.net>; from bizzaro@geoserve.net on Wed, Mar 01, 2000 at 04:47:41PM +0000
References: <38BD49AD.31B0B6A1@geoserve.net>
Message-ID: <20000301085245.B15154@xoom.com>
I think rc files suck. The Windows registry was a step in the right direction
but of course marketing concerns caused its implementation to be suboptimal.
Nonetheless, centralized, standardized configurations are the wave of the future
(and some cynics might add, "and always will be", cf. parallel computing ;-).
--
"Friends help you move. Real friends help you move bodies."
--anonymous Internet hero
From bizzaro at geoserve.net Wed Mar 1 12:19:52 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] sessions (was: we're back)
References: <200003010927.EAA63692@archa10.cc.uga.edu> <38BD3DF9.429D6662@geoserve.net> <200003011649.KAA21117@mail.fmnh.org>
Message-ID: <38BD5138.2373DD28@geoserve.net>
Jennifer Steinbachs wrote:
>
> Please keep in mind that not everybody has unrestricted
> access (bi-directionally) to the outside world. How
> will this communication work with firewalls? Not
> something you'd necessarily have to deal with in a
> typical academic setting, but at my institution we have
> serious restrictions on my outside access (e.g. if your
> web server is running on port 8080 we cannot access it
> without poking a hole in the firewall).
That's a good point. And yeah, we did say that front-to-middle communication
would be _local_. So, why am I talking about Internet ports suddenly? Brad,
can you explain how this front-to-middle communication works? To what extent
does it use sockets and ports?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 1 12:23:49 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] config with xml
References: <38BD49AD.31B0B6A1@geoserve.net> <20000301085245.B15154@xoom.com>
Message-ID: <38BD5225.8981DDF4@geoserve.net>
Tim Triche wrote:
>
> I think rc files suck. The Windows registry was a step in the right direction
> but of course marketing concerns caused its implementation to be suboptimal.
>
> Nonetheless, centralized, standardized configurations are the wave of the future
> (and some cynics might add, "and always will be", cf. parallel computing ;-).
There is a binary 'registry' being developed for gnome ('gconf' I think it's
called). But I want to keep gnome dependence with the gnome front if possible
(e.g., I don't want the web front to need gnome left and right).
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 1 13:15:12 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] locus notes
Message-ID: <38BD5E30.3A1C1861@geoserve.net>
Locians,
The Nautilus file manager allows the user to attach 'notes' to files. Here is
a screenshot:
http://nautilus.eazel.com/screenshots/feb-28-2000/notes.jpg
I think this is along the line of what Brad was doing with 'messages'. Gary
also mentioned to me that the host of a back-end application may want to state
that fact somewhere.
So, how about having a text widget where people can write all sorts of notes,
and have the notes kept as meta-data with the respective locus? Plus, clicking
in an area of a composited GUI will switch notes to those of a 'sub-locus'
(locus contained within a composite).
Cheers.
Jeff
From bizzaro at geoserve.net Wed Mar 1 14:23:33 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] config with xml
References: <38BD49AD.31B0B6A1@geoserve.net>
Message-ID: <38BD6E35.B6849733@geoserve.net>
"J.W. Bizzaro" wrote:
>
> Locians,
>
> There's an interesting article at arstechnica about Mac OS X using XML for
> system configurations (first few pages):
>
> http://www.arstechnica.com/reviews/1q00/macos-x-dp3/macos-x-dp3-1.html
This is an older article, linked to from the above page:
http://www.arstechnica.com/reviews/4q99/macos-x-dp2/macos-x-dp2-7.html
It discusses 'bundles' and filesystem meta-data in Mac OS X.
It's interesting to me, because I'm wondering about how we should 'plug'
back-ends and widgets into Loci. We could spread a plug-in throughout the
directory structure (e.g., placing all icons in an icon directory) or keep all
the parts of a plug-in together (e.g., back-end 'foo' would have its own
directory with _all_ of its components kept within). I'm leaning towards the
latter. Any thoughts?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 1 14:46:18 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] temp files
Message-ID: <38BD738A.4D467E91@geoserve.net>
Brad,
I thought you might find this helpful:
----------------------
Temporary (tmp) files
Most programs need to create temporary files, and this can be done perfectly
safely if a little care and attention is taken. The first thing a program
should do is honor the "TMP_DIR" environment variable. This allows users to
create a ~/tmp_dir directory (or similar) which can be much more protected than
the world accessible /tmp directory. Also if you must create temp files give
them truly random names. Using the process PID or time of day, or other
variables which should not "collide" will not prevent malicious users from
creating many tempfiles in the hopes your program will open one and overwrite
it. Also make sure that the file doesn't exist before creating it, but this can
be circumvented if the filename used is predictable. If you are worried about
the temp files a program may be creating you can use L0pht watch to monitor
directories (such as /tmp) and have the output go to syslog (so you can run
this as an administrator to monitor things).
http://securityportal.com/direct.cgi?/closet/closet20000301.html
----------------------
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From chapmanb at arches.uga.edu Thu Mar 2 14:56:19 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] Fwd: Bioperl: Pise release 5.a
Message-ID: <200003021959.OAA141442@archa12.cc.uga.edu>
Sorry so slow to respond--I just finished exams this week and had a
chance to check Pise out more.
> Pise looks like a good model for us to study when we imeplement
> our own web-based interface to Loci.
I don't know, I wasn't that excited by the web user interface (I
scoped it out with the url that Jennifer send). The thing that I
didn't really like is that:
1. It really hides the command line from the user, so that even if you
used Pise for a while, you would still never really have an idea how
to run the same program on the command line. I think a nice thing
about Loci is that it is kind of a way to teach a user how to work
with the command line.
2. The help information for a program is separated into a big chunk at
the bottom of the page. If you take a look, for instance, at the
advanced FASTA page, there is a whole bunch of info at the bottom,
which seems just about as fun to look at as a man page.
It supposedly has x windows/Tcl interfaces as well, but I didn't see
any screen shots of them (and didn't fire Pise up on my computer).
They also mention a "coversational" interface, which I assume is like
the nli interface that Gary and Jeff are proposing, but didn't see any
more about that either.
> From my cursory rip through
> throught the description, it differs from loci primarily in that the
> data redirection (which is not well defined, so I could be off here),
> seems simplistic. From what I can tell it is not
network-distrituted,
> simply piped.
Right, it seems like they are saying that it is just a simple copy,
and not even really piped (just analagous to pipes).
> This implies that the processing applications reside on
> the same machine. The piping appears step-wise. Consequently the
> communications layer is not abstracted, and thus limited to
command-line
> programs. Loci's strength is in its generalized data-connectivity
> brokering capability,
Of course, implementing that will be not so easy :-0 But it will be
cool :) It seems like Pise is just meant more for users
afraid/unwilling to use the command line, and wouldn't be used by more
advanced users. Hopefully, I think Loci will have enough power that
advanced users will see an advantage to using it (much as many
advanced users see an advantage to using an X windows system over
starting at black and white all day).
> so I don't see Pise as a 'threat' so much as a
> 'resource': Pise is GPL, so we are free to use it and study it, and
It
> does appear to have some very good design points (similar to applab
in
> many respects).
They use XML descriptions of programs to generate the output, which I
think are really worth taking a look at. They've already got a lot of
programs running with this, and it might be worthwhile to just use
their XML to generate our own interfaces (plus better piping),
provided no one finds their XML system too distasteful. I think this
would be a good place to start for this, and then we can think about
how to make Loci a development environment so that you can make these
XML documents in the context of Loci.
Of course, the code is hundreds of lines of undocumented perl.
Fuuuuuuun reading!
Brad
From chapmanb at arches.uga.edu Thu Mar 2 15:13:43 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] sessions (was: we're back)
Message-ID: <200003022016.PAA138680@archa12.cc.uga.edu>
> Jennifer Steinbachs wrote:
>>
>> How will this communication work with firewalls?
Jeff wrote:
> Brad,
> can you explain how this front-to-middle communication works? To
what extent
> does it use sockets and ports?
Thanks for bringing this up, Jennifer! I don't know much about being
behind firewalls (except for the simple firewall I set up for my
computer) but from my understanding loopbacks to the localhost are
normally allowed by the person setting up the firewall. I don't really
know of any security risks invovled with this.
So, right now the only communication is occuring between front and
middle on the same machine. So, the middle start up and binds to
'localhost' on a port specified in the configuration file (right now
it is just a 5 digit port (41877), nice and high). So from my
understanding, this connection is not available to anyone outside of
the local machine.
My very limited understanding of how sockets work come from
reading the "Socket Programming How-To" on the python web site
(http://www.python.org/doc/howto/sockets/sockets.html). Basically, the
middle creates a "server" socket which binds to localhost on the 41877
port, and then listens for incoming connections. The front creates a
"client" socket which sends a message to localhost, 41877 port. The
"server" socket in the middle hears the message, and creates a
"client" socket to handle it, and this is the connection that
transfers the message.
So, the point of all this is that all communication is through a
single local port, and so shouldn't be affected by firewalls. I'd be
interested if you tried to fire behind your firewall, Jennifer, and
see what happens.
Once we get into middle to middle communication, we'll need to
worry about connecting between two computers, in which case firewalls
and security will become an issue. I'm going to argue for using corba
to do this, and not sockets, so maybe security and firewall
compatibility can be one of my arguments. Thanks!
Brad
From chapmanb at arches.uga.edu Thu Mar 2 15:19:30 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] locus notes (fwd)
Message-ID: <200003022022.PAA129016@archa11.cc.uga.edu>
> So, how about having a text widget where people can write all sorts
of notes,
> and have the notes kept as meta-data with the respective locus?
Plus,
> clicking
> in an area of a composited GUI will switch notes to those of a
'sub-locus'
> (locus contained within a composite).
This sounds neat, and would definately be along the lines of what I
was trying to do with the messages--keep the immediate info for a
locus with a locus, instead of putting all info for all loci into one
big file. I think in terms of xml representation, I could just store
the information with a locus inside
tags (or something like this). This could probably happen as
soon as your ready to start implementing this in the GUI, since we
could just define a protocol like:
What is in the note. Maybe we could even have tags or
something here.
I need to work on saving loci so that they can be recalled in another
session before this will be really useful, but we could start on it
now, if you want.
Brad
From chapmanb at arches.uga.edu Thu Mar 2 15:27:25 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] temp files
Message-ID: <200003022030.PAA37240@archa12.cc.uga.edu>
Jeff wrote:
> Brad,
>
> I thought you might find this helpful:
>
> ----------------------
> Temporary (tmp) files
>
> Most programs need to create temporary files, and this can be done
perfectly
> safely if a little care and attention is taken. The first thing a
program
> should do is honor the "TMP_DIR" environment variable. This allows
users to
> create a ~/tmp_dir directory (or similar) which can be much more
protected
> than
> the world accessible /tmp directory.
Okay, so we should stick our temp directory in a
protected/non-accessable location. I think this should be defined in
the config file.
> Also if you must create temp files give
> them truly random names. Using the process PID or time of day, or
other
> variables which should not "collide" will not prevent malicious
users from
> creating many tempfiles in the hopes your program will open one and
overwrite
> it.
Okay, this is something I'm definately not doing. The temp files
describing a front end are very structured (purposely, to make it
easier to read and debug and to make the represenation of the
workspace make sense). I don't think it would be that hard to start
making them random names, we could just define a dictionary that maps
random numbers to actual names:
save_file[234A58B67] = 'workspace1/workspace2/viewer3.xml'
or something like this. But I don't really understand the security
argument here. Why should it matter to have random versus ordered
names?
> Also make sure that the file doesn't exist before creating it,
Right now the way it creates directories and files, files will never
be written over the top of each other.
Do you think this article implies I should change things about the
current storage to make it safer, or am I doing things right? I'm not
positive about the random file stuff.
Brad
From bizzaro at geoserve.net Fri Mar 3 00:12:00 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] temp files
References: <200003022030.PAA37240@archa12.cc.uga.edu>
Message-ID: <38BF49A0.E8ED2B39@geoserve.net>
Brad Chapman wrote:
>
> Okay, so we should stick our temp directory in a
> protected/non-accessable location. I think this should be defined in
> the config file.
I think the article is saying the user should have a $TMP_DIR environment
variable set that gives the location of a temp directory ACCESSIBLE ONLY TO THE
ONE USER. But I can't find a $TMP_DIR variable on my system. We could have
the user define one in their .*shrc file. But heck, why not have...
$USER_HOME/loci/temp/
???
That would limit temp directory access to the user alone.
The problem is crackers/script-kiddies often place evil things in temp
directories that can compromise system security. This has actually been the
cause of many security changes in big apps like apache and sendmail.
> Okay, this is something I'm definately not doing. The temp files
> describing a front end are very structured (purposely, to make it
> easier to read and debug and to make the represenation of the
> workspace make sense). I don't think it would be that hard to start
> making them random names, we could just define a dictionary that maps
> random numbers to actual names:
>
> save_file[234A58B67] = 'workspace1/workspace2/viewer3.xml'
>
> or something like this. But I don't really understand the security
> argument here. Why should it matter to have random versus ordered
> names?
I think what happens is a script-kiddie catches on to the fact that an
application _always_ places a file with a set name in /tmp. For example, if an
application has a file named...
/tmp/temporary.file
a kiddie can put a symlink in its place...
/tmp/temporary.file@
that will cause the application to save things to places even less secure. A
randomly named temp file would prevent this.
(But, I'm not a security guru.)
> > Also make sure that the file doesn't exist before creating it,
>
> Right now the way it creates directories and files, files will never
> be written over the top of each other.
I think this is for the exact same reason as above. The program should check
for the existence of a symlink where a file is to be written.
> Do you think this article implies I should change things about the
> current storage to make it safer, or am I doing things right? I'm not
> positive about the random file stuff.
Well, I believe all the points the article makes are good. But we can worry
about this stuff as Loci gets bigger and more widely used.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 3 00:22:12 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] sessions (was: we're back)
References: <200003022016.PAA138680@archa12.cc.uga.edu>
Message-ID: <38BF4C04.AB4B6573@geoserve.net>
Brad Chapman wrote:
>
> So, the point of all this is that all communication is through a
> single local port, and so shouldn't be affected by firewalls. I'd be
> interested if you tried to fire behind your firewall, Jennifer, and
> see what happens.
For those who have used 'port sniffers', can a loopback like this be detected?
> Once we get into middle to middle communication, we'll need to
> worry about connecting between two computers, in which case firewalls
> and security will become an issue.
As it is for all applications communicating through the Internet.
> I'm going to argue for using corba
> to do this, and not sockets, so maybe security and firewall
> compatibility can be one of my arguments. Thanks!
What makes CORBA more secure and more 'compatible' with firewalls?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 3 00:26:46 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] locus notes (fwd)
References: <200003022022.PAA129016@archa11.cc.uga.edu>
Message-ID: <38BF4D16.AD2CB8C7@geoserve.net>
Brad Chapman wrote:
>
> since we could just define a protocol like:
>
>
>
>
>
> What is in the note. Maybe we could even have tags or
> something here.
>
>
>
This looks nice. And it reminds me that the middle will have to 'approve' or
be notified of any changes to the notes. That's going to be a challenge to
implement in the GUI: Should it be done letter-by-letter (nah), or when the
user exits the notes widget, or via a separate dialog box?
> I need to work on saving loci so that they can be recalled in another
> session before this will be really useful, but we could start on it
> now, if you want.
I'll give it a shot!
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 3 00:32:04 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] locus notes (fwd)
References: <200003022022.PAA129016@archa11.cc.uga.edu>
Message-ID: <38BF4E54.C509A4C1@geoserve.net>
Brad Chapman wrote:
>
> What is in the note. Maybe we could even have tags or
> something here.
Or use HTML tags and an HTML widget!
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 7 02:14:07 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] python cheatsheet
Message-ID: <38C4AC3F.AFA6E4D8@geoserve.net>
For all you guys too timid to dive right into Python, IBM developerWorks has a
little intro:
http://www-4.ibm.com/software/developer/library/cheatsheet3.html
Jeff
From bizzaro at geoserve.net Tue Mar 7 02:43:05 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] TAME
Message-ID: <38C4B309.46475BCA@geoserve.net>
I thought this might be of some interest:
http://www.tameable.com/
It's commercial software, running $15,000 per seat *gag*
Jeff
From bizzaro at geoserve.net Fri Mar 10 00:51:56 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] barCode
Message-ID: <38C88D7C.E98E53E1@geoserve.net>
Greetings all.
I just got back from a conference/shin-dig in Boston, hosted by IBM.
It's called 'barCode', and it's a 'developerWorks' conference they hold
at....bars, thus the name. Well, this was at a very big bar/nightclub
called 'Jillians'.
David Lapointe (from UMass, and on the Loci list) found out about it and
sent me an e-mail. I then sent an e-mail to Rick Ree (Pyhy/Mavric
coordinator from Harvard, also on the Loci list). And, we all met
there, and I got to meet Rick for the first time.
So, why am I bringing this up? Well, the guest speaker at the
conference was Miguel de Icaza. If you don't know he is, I can start by
saying Loci would not be quite the same without him. Miguel is the
founder and project leader of Gnome.
Miguel spoke for nearly an hour under colored lights and in front of a
big-screen TV that sits behind a bar, normally showing hockey games.
Needless to say, it was quite a bit different from the scientific
seminars I am used to. And his speeking style was right for the
atmosphere: Several times he yelled out that people in the audience were
drunk :-)
He, of course, presented Gnome, using some new presentation app that
runs in Gnome. From time-to-time he switched to the desktop and demoed
some features. He got some laughs when Gnumeric (the Gnome spreadsheet
app) crashed. And they often booed when Miguel chose some tacky Gtk
theme.
Besides the chuckles, I did learn a little bit about Bonobo and thought
a bit about how it could be used in Loci. I saw a Bonobo component that
drew vector graphics from an SVG file and did very cool things like
antialiasing and alpha-channel semi-transparencies (while being
DnD'd!). I think this is what we're looking for to do our
bioinformatics viewers, as I reminded David several times during the
talk.
A little while after the presentation (and after some more free drinks,
pizza, and a nifty pen from IBM), David, Rick and I went up to meet
Miguel, who was mobbed by dozens of people. We all got to meet him, and
I got to talk to him about The Open Lab and Loci. In fact, I got to say
quite a bit, and I was surprised that he seemed very interested. One
thing I mentioned was that the name of his company in Boston (Helix
Code) sounds like their involved in bioinformatics. He said that his
girlfriend is a biologist, thus the use of names such as Bonobo and
Evolution (the PIM). After several minutes, I gave him my card (which
has no e-mail address on it, duh), and he asked for my e-mail address.
Shortly after meeting Miguel, the three of us went to grab some more
goodies from IBM. We got a 'squishy alien head', a stainless steel
thermo mug, a coaster, and an even cooler pen. IBM paid for everything:
all sorts of food AND AN OPEN BAR. It didn't cost anything to register
either. They said they'll be holding these conferences once per
quarter. (Do you see what your missing out on Gary?) :-)
Well, it was nice, and it was good to see David and Rick. And I'd like
to see the rest of you guys some day.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From Kenneth_Marx at uml.edu Fri Mar 10 08:30:01 2000
From: Kenneth_Marx at uml.edu (Kenneth A. Marx)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] Re: [tol-advisors] barCode
References: <38C88D7C.E98E53E1@geoserve.net>
Message-ID: <38C8F8D9.467972D5@uml.edu>
Hey Jeff, Dave and Rick,
Good for you! I didn't know you could have that much fun at a seminar.
As an aside, was it explained to the audience what IBM's motive is in
hosting such a conference?
TGIF, Ken Marx
"J.W. Bizzaro" wrote:
>
> Greetings all.
>
> I just got back from a conference/shin-dig in Boston, hosted by IBM.
> It's called 'barCode', and it's a 'developerWorks' conference they hold
> at....bars, thus the name. Well, this was at a very big bar/nightclub
> called 'Jillians'.
>
> David Lapointe (from UMass, and on the Loci list) found out about it and
> sent me an e-mail. I then sent an e-mail to Rick Ree (Pyhy/Mavric
> coordinator from Harvard, also on the Loci list). And, we all met
> there, and I got to meet Rick for the first time.
>
> So, why am I bringing this up? Well, the guest speaker at the
> conference was Miguel de Icaza. If you don't know he is, I can start by
> saying Loci would not be quite the same without him. Miguel is the
> founder and project leader of Gnome.
>
> Miguel spoke for nearly an hour under colored lights and in front of a
> big-screen TV that sits behind a bar, normally showing hockey games.
> Needless to say, it was quite a bit different from the scientific
> seminars I am used to. And his speeking style was right for the
> atmosphere: Several times he yelled out that people in the audience were
> drunk :-)
>
> He, of course, presented Gnome, using some new presentation app that
> runs in Gnome. From time-to-time he switched to the desktop and demoed
> some features. He got some laughs when Gnumeric (the Gnome spreadsheet
> app) crashed. And they often booed when Miguel chose some tacky Gtk
> theme.
>
> Besides the chuckles, I did learn a little bit about Bonobo and thought
> a bit about how it could be used in Loci. I saw a Bonobo component that
> drew vector graphics from an SVG file and did very cool things like
> antialiasing and alpha-channel semi-transparencies (while being
> DnD'd!). I think this is what we're looking for to do our
> bioinformatics viewers, as I reminded David several times during the
> talk.
>
> A little while after the presentation (and after some more free drinks,
> pizza, and a nifty pen from IBM), David, Rick and I went up to meet
> Miguel, who was mobbed by dozens of people. We all got to meet him, and
> I got to talk to him about The Open Lab and Loci. In fact, I got to say
> quite a bit, and I was surprised that he seemed very interested. One
> thing I mentioned was that the name of his company in Boston (Helix
> Code) sounds like their involved in bioinformatics. He said that his
> girlfriend is a biologist, thus the use of names such as Bonobo and
> Evolution (the PIM). After several minutes, I gave him my card (which
> has no e-mail address on it, duh), and he asked for my e-mail address.
>
> Shortly after meeting Miguel, the three of us went to grab some more
> goodies from IBM. We got a 'squishy alien head', a stainless steel
> thermo mug, a coaster, and an even cooler pen. IBM paid for everything:
> all sorts of food AND AN OPEN BAR. It didn't cost anything to register
> either. They said they'll be holding these conferences once per
> quarter. (Do you see what your missing out on Gary?) :-)
>
> Well, it was nice, and it was good to see David and Rick. And I'd like
> to see the rest of you guys some day.
>
> Cheers.
> Jeff
> --
> +----------------------------------+
> | J.W. Bizzaro |
> | |
> | http://bioinformatics.org/~jeff/ |
> | |
> | BIOINFORMATICS.ORG |
> | The Open Lab |
> | |
> | http://bioinformatics.org/ |
> +----------------------------------+
>
> _______________________________________________
> tol-advisors maillist - tol-advisors@bioinformatics.org
> http://bioinformatics.org/mailman/listinfo/tol-advisors
From bizzaro at geoserve.net Fri Mar 10 10:52:27 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:18 2006
Subject: [Pipet Devel] Re: barCode
References: <38C88D7C.E98E53E1@geoserve.net> <38C8F8D9.467972D5@uml.edu>
Message-ID: <38C91A3B.76855D99@geoserve.net>
"Kenneth A. Marx" wrote:
>
> As an aside, was it explained to the audience what IBM's motive is in
> hosting such a conference?
Our impression was that IBM is trying to look 'young and hip' these days.
This was all PR directed at software developers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 10 20:16:15 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] Overflow
Message-ID: <38C99E5F.3FF866B8@geoserve.net>
It looks like we finally have some competition, or at least somebody who
re-invented the Loci wheel using Gnome:
http://freespeech.on.openprojects.net/overflow.html
I'm already trying to contact the authors.
Jeff
From bizzaro at geoserve.net Fri Mar 10 20:47:29 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] Overflow
References: <38C99E5F.3FF866B8@geoserve.net>
Message-ID: <38C9A5B1.4A7D57DB@geoserve.net>
Here you go, Brad. This is a 'network' in Overflow. Does it look perhaps
like a Loci WFD?
--------------------------------------
--------------------------------------
Scary.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 10 21:10:54 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] server down time
Message-ID: <38C9AB2E.5065B30A@geoserve.net>
Greetings.
Due to electrical work being done in the building, the servers will be shut
down for a while on Saturday. We don't know exactly when or for how long,
but it'll probably be sometime during the day for less than an hour.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Sun Mar 12 15:08:40 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] Return of the Servers
Message-ID: <38CBF948.1DD06544@geoserve.net>
A long time ago, in a galaxy far, far away...The Open Lab servers were
halted in anticipation of a power outage that never came. But the Rebel
Alliance brought them back up. Have fun.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Sun Mar 12 20:24:36 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] [Fwd: Overflow and Loci]
Message-ID: <38CC4354.81F00A4E@geoserve.net>
Locians, I've been in contact with the Overflow developers. I forward the
messages to the list and then CC future messages. Jeff
-------------- next part --------------
An embedded message was scrubbed...
From: "J.W. Bizzaro"
Subject: Overflow and Loci
Date: Sat, 11 Mar 2000 01:14:47 +0000
Size: 1928
Url: http://bioinformatics.org/pipermail/pipet-devel/attachments/20000313/343ed4a7/attachment.mht
From bizzaro at geoserve.net Sun Mar 12 20:25:08 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] [Fwd: Overflow and Loci]
Message-ID: <38CC4374.35755C34@geoserve.net>
-------------- next part --------------
An embedded message was scrubbed...
From: Jean-Marc Valin
Subject: Re: Overflow and Loci
Date: Fri, 10 Mar 2000 23:03:33 -0500
Size: 2011
Url: http://bioinformatics.org/pipermail/pipet-devel/attachments/20000313/ae376937/attachment.mht
From bizzaro at geoserve.net Sun Mar 12 20:25:56 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] [Fwd: Overflow and Loci]
Message-ID: <38CC43A4.D6B97592@geoserve.net>
-------------- next part --------------
An embedded message was scrubbed...
From: "J.W. Bizzaro"
Subject: Re: Overflow and Loci
Date: Sun, 12 Mar 2000 06:42:47 +0000
Size: 8152
Url: http://bioinformatics.org/pipermail/pipet-devel/attachments/20000313/3079c38a/attachment.mht
From bizzaro at geoserve.net Sun Mar 12 20:27:03 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] [Fwd: Overflow and Loci]
Message-ID: <38CC43E7.B0F8E577@geoserve.net>
-------------- next part --------------
An embedded message was scrubbed...
From: Jean-Marc Valin
Subject: Re: Overflow and Loci
Date: Sun, 12 Mar 2000 15:34:10 -0500
Size: 3032
Url: http://bioinformatics.org/pipermail/pipet-devel/attachments/20000313/12542ed8/attachment.mht
From bizzaro at geoserve.net Sun Mar 12 20:26:38 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] [Fwd: Overflow and Loci]
Message-ID: <38CC43CE.AACAE0AC@geoserve.net>
-------------- next part --------------
An embedded message was scrubbed...
From: Dominic Letourneau
Subject: Re: Overflow and Loci
Date: Sun, 12 Mar 2000 05:46:02 -0800 (PST)
Size: 4533
Url: http://bioinformatics.org/pipermail/pipet-devel/attachments/20000313/4fcd7660/attachment.mht
From bizzaro at geoserve.net Mon Mar 13 02:00:52 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] The ABCs of XML
Message-ID: <38CC9224.AA21A7B3@geoserve.net>
Brad et al may find interesting what this article says about XML vs. CORBA
for RPC:
http://linuxtoday.com/stories/18230.html
Jeff
From admin at planetX.bastards.nl Mon Mar 13 05:13:01 2000
From: admin at planetX.bastards.nl (jarl van katwijk)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] GMS
Message-ID: <200003131013.LAA06996@planetX.bastards.nl>
Hi Loci people,
I'm developing GMS, a project very similair to Loci (http://sunsite.auc.dk/gms).
I just recenly rewrote the GUI to be an seperate application communicating trough
Corba with the main engine, and the next phase is coding a better GUI.
Now that I seem Loci I'm considering the possibilities of integrating the GUI into
GMS. This will mean I have to port the python code to C.
I want to know whether the Loci GUI is mainly finished, or should I wait till it's
more mature,cq untill all planned features are done?
thnx,
jarl
From bizzaro at geoserve.net Mon Mar 13 06:42:06 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] GMS
References: <200003131013.LAA06996@planetX.bastards.nl>
Message-ID: <38CCD40E.21C2A9EB@geoserve.net>
Hi Jarl! It's good to hear from you. I've been meaning to write to you
since I saw the comment on Gnotices about GMS. We (Loci) are talking with
the Overflow people about a collaboration, and I thought perhaps GMS would
like to join the party.
jarl van katwijk wrote:
>
> I just recenly rewrote the GUI to be an seperate application communicating trough
> Corba with the main engine, and the next phase is coding a better GUI.
> Now that I seem Loci I'm considering the possibilities of integrating the GUI into
> GMS. This will mean I have to port the python code to C.
Hmmm. I'm not sure what you mean by 'integrating the GUI'. Are you
interested in getting GMS to work with Loci's actual GUI, or are you looking
to make something like it in C?
If you are looking to use our GUI with your own C program, Python has
language bindings to C (Python is in fact written in C).
> I want to know whether the Loci GUI is mainly finished, or should I wait till it's
> more mature,cq untill all planned features are done?
The design/plan for the GUI is pretty well thought out. We have only to put
more of our ideas into code. Again, what were you hoping to do?
(BTW, are you subscribed to this list?)
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Mon Mar 13 06:44:47 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:19 2006
Subject: [Pipet Devel] xml error
Message-ID: <38CCD4AF.A0CA2E4@geoserve.net>
Brad,
I'm getting this XML error when trying to 'add' a container to the
workspace:
--------------------------
Fatal error: Couldn't open resource
'././middle/temp/xml/workspace1/container1.xml' at
././middle/temp/xml/workspace1/container1.xml:1:0
--------------------------
It appears the temp directory doesn't exist.
BTW, I just made a bunch of commits, so update your copy.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Mon Mar 13 06:56:46 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] xml error
References: <38CCD4AF.A0CA2E4@geoserve.net>
Message-ID: <38CCD77E.A845C3E1@geoserve.net>
"J.W. Bizzaro" wrote:
>
> --------------------------
> Fatal error: Couldn't open resource
> '././middle/temp/xml/workspace1/container1.xml' at
> ././middle/temp/xml/workspace1/container1.xml:1:0
> --------------------------
>
> It appears the temp directory doesn't exist.
Sorry, that's wrong. The temp directory does exist during runtime.
It appears the middle is trying to find...
temp/xml/workspace1/container1.xml
while the actual locale is...
temp/session1/xml/workspace1/container1.xml
Perhaps an error due to the addition of sessions.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Mon Mar 13 07:22:28 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131013.LAA06996@planetX.bastards.nl>
Message-ID: <38CCDD84.840767F2@geoserve.net>
jarl van katwijk wrote:
>
> I'm developing GMS, a project very similair to Loci (http://sunsite.auc.dk/gms).
Jarl, looking at GMS, it appears you have accomplished much of what we haven't
even touched yet: Developing an API for getting independent programs to talk
nice to each other and the core.
On the other hand, we have been concentrating on developing a nice GUI plus an
API for getting several different GUIs to talk to our core.
Perhaps we can merge projects. Brad (who has been developing our core) would
kill me if we had to scrap Loci's own core, but why don't we take a look at
each other's designs and see where we can meet?
As I mentioned, Python is written in C and has language bindings to it, so we
may be able to make a Python wrapper for your core that will allow us to make
Python interfaces. And not just GUI interfaces: We were planning on making a
natural language interface that will let the user 'talk' to Loci.
A C core would be faster, which is an advantage to us. And Python interfaces
are easier to make than those in C, which would be an advantage to you.
What do you think? Again, Loci has a very well thought out design, but I
think we may be able to reach a middle ground.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Mon Mar 13 09:49:51 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131013.LAA06996@planetX.bastards.nl> <38CCDD84.840767F2@geoserve.net>
Message-ID: <38CD000F.1E2F94F2@geoserve.net>
"J.W. Bizzaro" wrote:
>
> As I mentioned, Python is written in C and has language bindings to it, so we
> may be able to make a Python wrapper for your core that will allow us to make
> Python interfaces.
Oh, I'm forgetting that you're using CORBA. There are ORBit bindings to
Python (2 projects in fact). So, maybe we can handle the GUI part of the
project and you can handle the infrustructure.
Loci of course has some design plans that are very elaborate and which come
from thinking about this type of project as strictly connecting icons together
with lines. But we can work toward those goals as time passes. Right now I
am most anxious about getting some help with the infrastructure and making
something that works.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Mon Mar 13 09:57:36 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] loci] GMS
References: <200003131013.LAA06996@planetX.bastards.nl> <38CCDD84.840767F2@geoserve.net>
Message-ID: <38CD01DF.8B11893@casema.net>
| Hi Jarl! It's good to hear from you. I've been meaning to write to you
| since I saw the comment on Gnotices about GMS. We (Loci) are talking with
| the Overflow people about a collaboration, and I thought perhaps GMS would
| like to join the party.
Hi again,
I've been searching a long time for similair projects and now there're two at once..
nice-n-sweet luxory. I've also checked out UML (mentioned on the news.gnome.org
discussion)
which has several interesting features. I recommend reading this, and in particulair
Booch.
>
> I just recenly rewrote the GUI to be an seperate application communicating trough
> Corba with the main engine, and the next phase is coding a better GUI.
> Now that I seem Loci I'm considering the possibilities of integrating the GUI into
> GMS. This will mean I have to port the python code to C.
| Hmmm. I'm not sure what you mean by 'integrating the GUI'. Are you
| interested in getting GMS to work with Loci's actual GUI, or are you looking
| to make something like it in C?
Yes and no.. a GUI for gms only needs to 'speak' to the CORBA api the 'core' exports
and must offer a corba api to the same core for displaying dialogs etc. (a gms
core-gui
couple has 2 corba communication lines) The speed and portability of C makes it a
good candidate, but probably Python will be good enough. As long as Python has good
gtk- and corba bindings.
> I want to know whether the Loci GUI is mainly finished, or should I wait till it's
> more mature,cq untill all planned features are done?
| The design/plan for the GUI is pretty well thought out. We have only to put
| more of our ideas into code. Again, what were you hoping to do?
I'm hoping it will be easy to rewrite the Loci gui to the gms ADM-DFP communication
api and to replace Loci's Class-system by gms's MO's. As you can see on the gms site
my gui is quite simple, it uses listing instead of a nice canvas window. But you
already got
the graphics and code done, I wanna use that part.
| (BTW, are you subscribed to this list?)
yes :)
| Jarl, looking at GMS, it appears you have accomplished much of what we haven't
| even touched yet: Developing an API for getting independent programs to talk
| nice to each other and the core.
Version 0.4.0pre6 (allmost done) will have the final plugin-registration API. I still
need to spend much more time into the security\authentication code though.
| On the other hand, we have been concentrating on developing a nice GUI plus an
| API for getting several different GUIs to talk to our core.
Hmm.. sounds tempting :)
I didn't got the opportunity to have a detailed look at your sources, will do this
evening.
| Perhaps we can merge projects. Brad (who has been developing our core) would
| kill me if we had to scrap Loci's own core, but why don't we take a look at
| each other's designs and see where we can meet?
It sounds like the logical thing to do, but there seems to be one mayor disign diff.
between
the two projects: the system's objects. Gms uses a 'situation-oriented' object, every
object
stores\processes\filters\etc data, depending on the function\situation of the object.
Loci
seems to use a 'function-orientation' why of implementing objects, a 'special'
store-object,
etc.
Why did you choose this approach? Or am I totally wrong in the way I think Loci
works?
| As I mentioned, Python is written in C and has language bindings to it, so we
| may be able to make a Python wrapper for your core that will allow us to make
| Python interfaces. And not just GUI interfaces: We were planning on making a
| natural language interface that will let the user 'talk' to Loci.
Ic. nice feature. What do you think about my idead to attach a GAP to GMS which is
using
the regulair GUI\client API but is in fact a engine which detects high fitness
structures
and applies those to other instances of gms tunning around the inet?
This would solve the biggest problem that Loci and gms will have once they reach
production
phase, which is that 'regulair' user wont be able to configure the dataflow-diagram,
it would
just be too complicated for them.
| A C core would be faster, which is an advantage to us. And Python interfaces
| are easier to make than those in C, which would be an advantage to you.
| What do you think? Again, Loci has a very well thought out design, but I
| think we may be able to reach a middle ground.
One thing: what are Loci's? Are they binairies, or scripts? GMS uses dynamic loadable
binairies, for speed reasons mainly.
From jarl at casema.net Mon Mar 13 09:59:02 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] loci] GMS
References: <200003131013.LAA06996@planetX.bastards.nl> <38CCDD84.840767F2@geoserve.net>
Message-ID: <38CD0236.D4AF67D6@casema.net>
| Hi Jarl! It's good to hear from you. I've been meaning to write to you
| since I saw the comment on Gnotices about GMS. We (Loci) are talking with
| the Overflow people about a collaboration, and I thought perhaps GMS would
| like to join the party.
Hi again,
I've been searching a long time for similair projects and now there're two at once..
nice-n-sweet luxory. I've also checked out UML (mentioned on the news.gnome.org
discussion)
which has several interesting features. I recommend reading this, and in particulair
Booch.
>
> I just recenly rewrote the GUI to be an seperate application communicating trough
> Corba with the main engine, and the next phase is coding a better GUI.
> Now that I seem Loci I'm considering the possibilities of integrating the GUI into
> GMS. This will mean I have to port the python code to C.
| Hmmm. I'm not sure what you mean by 'integrating the GUI'. Are you
| interested in getting GMS to work with Loci's actual GUI, or are you looking
| to make something like it in C?
Yes and no.. a GUI for gms only needs to 'speak' to the CORBA api the 'core' exports
and must offer a corba api to the same core for displaying dialogs etc. (a gms
core-gui
couple has 2 corba communication lines) The speed and portability of C makes it a
good candidate, but probably Python will be good enough. As long as Python has good
gtk- and corba bindings.
> I want to know whether the Loci GUI is mainly finished, or should I wait till it's
> more mature,cq untill all planned features are done?
| The design/plan for the GUI is pretty well thought out. We have only to put
| more of our ideas into code. Again, what were you hoping to do?
I'm hoping it will be easy to rewrite the Loci gui to the gms ADM-DFP communication
api and to replace Loci's Class-system by gms's MO's. As you can see on the gms site
my gui is quite simple, it uses listing instead of a nice canvas window. But you
already got
the graphics and code done, I wanna use that part.
| (BTW, are you subscribed to this list?)
yes :)
| Jarl, looking at GMS, it appears you have accomplished much of what we haven't
| even touched yet: Developing an API for getting independent programs to talk
| nice to each other and the core.
Version 0.4.0pre6 (allmost done) will have the final plugin-registration API. I still
need to spend much more time into the security\authentication code though.
| On the other hand, we have been concentrating on developing a nice GUI plus an
| API for getting several different GUIs to talk to our core.
Hmm.. sounds tempting :)
I didn't got the opportunity to have a detailed look at your sources, will do this
evening.
| Perhaps we can merge projects. Brad (who has been developing our core) would
| kill me if we had to scrap Loci's own core, but why don't we take a look at
| each other's designs and see where we can meet?
It sounds like the logical thing to do, but there seems to be one mayor disign diff.
between
the two projects: the system's objects. Gms uses a 'situation-oriented' object, every
object
stores\processes\filters\etc data, depending on the function\situation of the object.
Loci
seems to use a 'function-orientation' why of implementing objects, a 'special'
store-object,
etc.
Why did you choose this approach? Or am I totally wrong in the way I think Loci
works?
| As I mentioned, Python is written in C and has language bindings to it, so we
| may be able to make a Python wrapper for your core that will allow us to make
| Python interfaces. And not just GUI interfaces: We were planning on making a
| natural language interface that will let the user 'talk' to Loci.
Ic. nice feature. What do you think about my idead to attach a GAP to GMS which is
using
the regulair GUI\client API but is in fact a engine which detects high fitness
structures
and applies those to other instances of gms tunning around the inet?
This would solve the biggest problem that Loci and gms will have once they reach
production
phase, which is that 'regulair' user wont be able to configure the dataflow-diagram,
it would
just be too complicated for them.
| A C core would be faster, which is an advantage to us. And Python interfaces
| are easier to make than those in C, which would be an advantage to you.
| What do you think? Again, Loci has a very well thought out design, but I
| think we may be able to reach a middle ground.
One thing: what are Loci's? Are they binairies, or scripts? GMS uses dynamic loadable
binairies, for speed reasons mainly.
From chapmanb at arches.uga.edu Mon Mar 13 10:19:29 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
Message-ID: <200003131522.KAA154706@archa11.cc.uga.edu>
>> As I mentioned, Python is written in C and has language bindings to
it, so
> we
>> may be able to make a Python wrapper for your core that will allow
us to
make
>> Python interfaces.
>
> Oh, I'm forgetting that you're using CORBA. There are ORBit
bindings to
> Python (2 projects in fact). So, maybe we can handle the GUI part
of the
> project and you can handle the infrustructure.
I also had good luck making ORBit and Fnorb (an almost all python
ORB implementation) talk to each other (with the stuff I did on the
biopython project), so we shouldn't even have to wait for/develop
python bindings for ORBit. We could start ASAP, provided Jarl is
interested in trying to combine with us. From my quick glance at the
GMS code, it looks like we both have a lot to offer each other, and I
would definately be for merging the projects, if possible.
Hopefully we will be able to find a compromise that lets Jarl keep
creative freedom over the goals of GMS, and lets Loci take care of
its objectives. I think we are too close in design goals to not try
working together for a better overall final product.
Brad
From chapmanb at arches.uga.edu Mon Mar 13 10:46:36 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] Loci code
Message-ID: <200003131549.KAA88902@archa12.cc.uga.edu>
Hey Jarl;
I just read your message and your mention of taking a look at the
code. You might want to wait for a couple of days because we are in
the middle of a major rewrite (we are separating the gui from the rest
of the code) which is nearly done, but is not reflected very well in
the snapshot. Hopefully we can then get a new snapshot you can take a
look at that will give you a better estimation of the design of Loci.
Brad
From jarl at casema.net Mon Mar 13 11:10:23 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131522.KAA154706@archa11.cc.uga.edu>
Message-ID: <38CD12EF.733DA69C@casema.net>
> >
> > Oh, I'm forgetting that you're using CORBA. There are ORBit
> bindings to
> > Python (2 projects in fact). So, maybe we can handle the GUI part
> of the
> > project and you can handle the infrustructure.
>
> I also had good luck making ORBit and Fnorb (an almost all python
> ORB implementation) talk to each other (with the stuff I did on the
> biopython project), so we shouldn't even have to wait for/develop
> python bindings for ORBit. We could start ASAP, provided Jarl is
> interested in trying to combine with us. From my quick glance at the
> GMS code, it looks like we both have a lot to offer each other, and I
> would definately be for merging the projects, if possible.
> Hopefully we will be able to find a compromise that lets Jarl keep
> creative freedom over the goals of GMS, and lets Loci take care of
> its objectives. I think we are too close in design goals to not try
> working together for a better overall final product.
>
Sounds promising.. I'll try to understand the Loci sourcecode this
evening,
after which we (I?) can try some kinda merge 'pilot' to get a clear
picture
about the problems of a loci-gms marriage. I've been doing professional
porting last 2 years.. so I'll be able to see any problem quite quickly,
though
I've never used Python myself ;)
bye,
jarl
From jarl at casema.net Mon Mar 13 11:12:21 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] Loci code
References: <200003131549.KAA88902@archa12.cc.uga.edu>
Message-ID: <38CD1365.2E5C5240@casema.net>
Brad Chapman wrote:
> Hey Jarl;
> I just read your message and your mention of taking a look at the
> code. You might want to wait for a couple of days because we are in
> the middle of a major rewrite (we are separating the gui from the rest
> of the code) which is nearly done, but is not reflected very well in
> the snapshot. Hopefully we can then get a new snapshot you can take a
> look at that will give you a better estimation of the design of Loci.
>
> Brad
>
IC. This is good news, GMS is currently in the same phase, soon we'll
have
both projects with seperate GUI's and Core's.
From bizzaro at geoserve.net Mon Mar 13 14:07:52 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131522.KAA154706@archa11.cc.uga.edu> <38CD12EF.733DA69C@casema.net>
Message-ID: <38CD3C88.B7A277ED@geoserve.net>
Jarl van Katwijk wrote:
>
> Sounds promising.. I'll try to understand the Loci sourcecode this
> evening, after which we (I?) can try some kinda merge 'pilot' to
> get a clear picture about the problems of a loci-gms marriage. I've
> been doing professional porting last 2 years.. so I'll be able to
> see any problem quite quickly,
Jarl, right now Loci uses a data stream and XML tags to send messages between
GUI and core (an XML RPC of a sort). This is my own personal design decision,
and it is very much incompatible with CORBA. But, we have really only begun
to implement this API. As Brad mentioned, we are trying to separate GUI from
core. This is the immediate result of developing a functional API and is an
indication that we aren't married to it.
In short, I talked to Brad, and we're both willing to switch to whatever CORBA
interface GMS requires.
> though I've never used Python myself ;)
Once you try it, you'll like it. It's a very well designed language, as I'm
sure you have heard.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Mon Mar 13 14:54:19 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131013.LAA06996@planetX.bastards.nl> <38CCDD84.840767F2@geoserve.net> <38CD01DF.8B11893@casema.net>
Message-ID: <38CD476B.BFC13AAE@geoserve.net>
Jarl van Katwijk wrote:
>
> I've been searching a long time for similair projects and now there're two at once..
> nice-n-sweet luxory.
Yes. We should both be in contact with the Overflow developers, as they are
willing to collaborate in certain areas.
> I'm hoping it will be easy to rewrite the Loci gui to the gms ADM-DFP communication
> api and to replace Loci's Class-system by gms's MO's. As you can see on the gms site
> my gui is quite simple, it uses listing instead of a nice canvas window. But you
> already got the graphics and code done, I wanna use that part.
There are many features that a Loci-like GUI can bring to the project,
features that go well beyond messaging. If you look through our mailing list
archives:
http://bioinformatics.org/pipermail/pipet-devel/
>from the last few months, you will see some discussion of these. One
interesting idea is to use graphical pipes to 'construct a command-line'
statement. Another is to build a filesystem browser by wrapping some UNIX
utilities.
> | On the other hand, we have been concentrating on developing a nice GUI plus an
> | API for getting several different GUIs to talk to our core.
> Hmm.. sounds tempting :)
> I didn't got the opportunity to have a detailed look at your sources, will do this
> evening.
Again, this has to do with data streaming.
> It sounds like the logical thing to do, but there seems to be one mayor disign diff.
> between the two projects: the system's objects. Gms uses a 'situation-oriented'
> object, every object stores\processes\filters\etc data, depending on the
> function\situation of the object. Loci seems to use a 'function-orientation' why of
> implementing objects, a 'special' store-object, etc. Why did you choose this
> approach? Or am I totally wrong in the way I think Loci works?
I'm not so sure there is a difference. You're saying that GMS will _either_
store, process, or filter data, depending on the situation, correct? But does
each object have _all_ of these capabilities?
With Loci, we were trying to classify objects according to function:
* Executables process data
* Files store data
* Directories store files and executables
* Viewers/visualizers display data
* Converters/filters change data format or protocol
* Flow controllers...control data flow
But I wasn't considering the real needs of the core when defining these
things. Remember, we haven't even looked into what GMS has already
accomplished. I suppose it may be that each of these has storage
requirements, etc. that may not be apparent to me.
Loci was being built from the GUI on back. I think, as a result, we have come
up with some good ideas. GMS seems to have been built with more emphasis on
the infrastructure. Again, our projects are very complementary.
> Ic. nice feature. What do you think about my idead to attach a GAP to GMS which is
> using the regulair GUI\client API but is in fact a engine which detects high
> fitness structures and applies those to other instances of gms tunning around the
> inet? This would solve the biggest problem that Loci and gms will have once they
> reach production phase, which is that 'regulair' user wont be able to configure
> the dataflow-diagram, it would just be too complicated for them.
I want to look into this and get Brad's opinion, since I'm not entirely sure
what you're talking about. We have looked into issues of node configuration
with the realization that some 'programs' or constructs built for this system
will be complex. I think Loci solves much of this problem by saving
constructs, what we call 'Work Flow Diagrams', as XML. In fact, we are using
XML as a descriptive meta-data for all of our nodes. This allows Loci to
combine and recombine nodes and save the constructs. Have you seen some of
our discussion threads about this?
> One thing: what are Loci's? Are they binairies, or scripts? GMS uses dynamic loadable
> binairies, for speed reasons mainly.
Well, I suppose you're asking about the wrappers and not the programs. Again,
we haven't come up with a standard API for doing this. What we have done uses
some Python and some XML. You're absolutely right that C is faster, but
running programs across the Internet tends to take away any advantage that may
give.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Mon Mar 13 14:59:52 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131522.KAA154706@archa11.cc.uga.edu>
Message-ID: <38CD48B8.3F261420@geoserve.net>
Brad Chapman wrote:
>
> Hopefully we will be able to find a compromise that lets Jarl keep
> creative freedom over the goals of GMS, and lets Loci take care of
> its objectives. I think we are too close in design goals to not try
> working together for a better overall final product.
Once again, there are many, many, many ideas we have that came from years of
thought and discussion. I don't want to throw any of that out but see how we
can implement them in a Loci/GMS system. We need to have some serious
discussions with Jarl, Jean-Marc and Dominic about all of these ideas.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Mon Mar 13 15:06:38 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131522.KAA154706@archa11.cc.uga.edu> <38CD48B8.3F261420@geoserve.net>
Message-ID: <38CD4A4E.D85CBD1A@casema.net>
> >
> > Hopefully we will be able to find a compromise that lets Jarl keep
> > creative freedom over the goals of GMS, and lets Loci take care of
> > its objectives. I think we are too close in design goals to not try
> > working together for a better overall final product.
>
> Once again, there are many, many, many ideas we have that came from years of
> thought and discussion. I don't want to throw any of that out but see how we
> can implement them in a Loci/GMS system.
Ofcourse, the result should only get better out of a merge.
> We need to have some serious
> discussions with Jarl, Jean-Marc and Dominic about all of these ideas.
>
As I mentioned earlier: the first subject of discussion should be the differance
between the classes\objects 'filosophy' of both systems.. I think your choose
to implement different types based upon functionality isn't the way it should be
done. I'm supporting the 'one global do-everything object".
I'm very curious why Loci classes are implemented the way they are...
bye,
jarl
From bizzaro at geoserve.net Mon Mar 13 15:23:22 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131522.KAA154706@archa11.cc.uga.edu> <38CD48B8.3F261420@geoserve.net> <38CD4A4E.D85CBD1A@casema.net>
Message-ID: <38CD4E3A.5738D670@geoserve.net>
jarl van katwijk wrote:
>
> As I mentioned earlier: the first subject of discussion should be the differance
> between the classes\objects 'filosophy' of both systems.. I think your choose
> to implement different types based upon functionality isn't the way it should be
> done. I'm supporting the 'one global do-everything object".
>
> I'm very curious why Loci classes are implemented the way they are...
Perhaps you can give us a synopsis/summary of the GMS object philosophy. It
would then be easier for me to point out differences, because right now I'm
not so sure how GMS is different.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Mon Mar 13 15:23:36 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131013.LAA06996@planetX.bastards.nl> <38CCDD84.840767F2@geoserve.net> <38CD01DF.8B11893@casema.net> <38CD476B.BFC13AAE@geoserve.net>
Message-ID: <38CD4E48.F4139653@casema.net>
>
> Yes. We should both be in contact with the Overflow developers, as they are
> willing to collaborate in certain areas.
Sure, they seem to have done some work for high performance processing, something I like
to have a good look at.
I also liked seeing they are doing a speech recognision system.. I've already implemented
festival (speech synthesis), and was looking at IBM's viavoice, but an open source speech
recognision system is much better.
>
>
> > I'm hoping it will be easy to rewrite the Loci gui to the gms ADM-DFP communication
> > api and to replace Loci's Class-system by gms's MO's. As you can see on the gms site
> > my gui is quite simple, it uses listing instead of a nice canvas window. But you
> > already got the graphics and code done, I wanna use that part.
>
> There are many features that a Loci-like GUI can bring to the project,
> features that go well beyond messaging. If you look through our mailing list
> archives:
>
> http://bioinformatics.org/pipermail/pipet-devel/
>
> from the last few months, you will see some discussion of these. One
> interesting idea is to use graphical pipes to 'construct a command-line'
> statement. Another is to build a filesystem browser by wrapping some UNIX
> utilities.
>
I've downloaded the complete archive yesterday.. will read them
>
> > | On the other hand, we have been concentrating on developing a nice GUI plus an
> > | API for getting several different GUIs to talk to our core.
> > Hmm.. sounds tempting :)
> > I didn't got the opportunity to have a detailed look at your sources, will do this
> > evening.
>
> Again, this has to do with data streaming.
>
> > It sounds like the logical thing to do, but there seems to be one mayor disign diff.
> > between the two projects: the system's objects. Gms uses a 'situation-oriented'
> > object, every object stores\processes\filters\etc data, depending on the
> > function\situation of the object. Loci seems to use a 'function-orientation' why of
> > implementing objects, a 'special' store-object, etc. Why did you choose this
> > approach? Or am I totally wrong in the way I think Loci works?
>
> I'm not so sure there is a difference. You're saying that GMS will _either_
> store, process, or filter data, depending on the situation, correct? But does
> each object have _all_ of these capabilities?
Yes, look at the messaging_mobject_structs.h file. Every object has a 'procedure' that can
mutate the data, it has a history-file is which data is stored (upto 32 entries in memory,
beyond this number on disk), etc. Look for yourself :)
>
>
> With Loci, we were trying to classify objects according to function:
>
> * Executables process data
> * Files store data
> * Directories store files and executables
> * Viewers/visualizers display data
> * Converters/filters change data format or protocol
> * Flow controllers...control data flow
>
> But I wasn't considering the real needs of the core when defining these
> things. Remember, we haven't even looked into what GMS has already
> accomplished. I suppose it may be that each of these has storage
> requirements, etc. that may not be apparent to me.
Yes, I have these 'types':
Sensors: objects that gather datastreams from the outside world into the pipeline
Collectors: objects that gather datastream outof the pipeline
Filters: objects that have no special situation, they are suppost to prosess
data, filter, route, etc.
Visuals: object that output datastreams from the system, display it, etc.
> > Ic. nice feature. What do you think about my idead to attach a GAP to GMS which is
> > using the regulair GUI\client API but is in fact a engine which detects high
> > fitness structures and applies those to other instances of gms tunning around the
> > inet? This would solve the biggest problem that Loci and gms will have once they
> > reach production phase, which is that 'regulair' user wont be able to configure
> > the dataflow-diagram, it would just be too complicated for them.
>
> I want to look into this and get Brad's opinion, since I'm not entirely sure
> what you're talking about. We have looked into issues of node configuration
> with the realization that some 'programs' or constructs built for this system
> will be complex. I think Loci solves much of this problem by saving
> constructs, what we call 'Work Flow Diagrams', as XML. In fact, we are using
> XML as a descriptive meta-data for all of our nodes. This allows Loci to
> combine and recombine nodes and save the constructs. Have you seen some of
> our discussion threads about this?
Not yet, but I'm sure noirmal desktop users do not want to program\configure their system.
They exspect the OS to 'know' what to do with data(-streams). But again: I will read the
mailing archive :)
>
> > One thing: what are Loci's? Are they binairies, or scripts? GMS uses dynamic loadable
> > binairies, for speed reasons mainly.
>
> Well, I suppose you're asking about the wrappers and not the programs. Again,
> we haven't come up with a standard API for doing this. What we have done uses
> some Python and some XML. You're absolutely right that C is faster, but
> running programs across the Internet tends to take away any advantage that may
> give.
The plugins are loaded locally, communication between different instances of gms will take
place tru a sensor\visual pair. But having some scripting\XML API will surely be usefull
somehow.
bye,
jarl
From jarl at casema.net Mon Mar 13 15:27:50 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131522.KAA154706@archa11.cc.uga.edu> <38CD12EF.733DA69C@casema.net> <38CD3C88.B7A277ED@geoserve.net>
Message-ID: <38CD4F46.9D652E9F@casema.net>
>
>
> Jarl, right now Loci uses a data stream and XML tags to send messages between
> GUI and core (an XML RPC of a sort). This is my own personal design decision,
> and it is very much incompatible with CORBA. But, we have really only begun
> to implement this API. As Brad mentioned, we are trying to separate GUI from
> core. This is the immediate result of developing a functional API and is an
> indication that we aren't married to it.
>
> In short, I talked to Brad, and we're both willing to switch to whatever CORBA
> interface GMS requires.
Don't rush :)
After you've looked at the gms api you'll notice it isn't complete. There many
features I hadn;t made my mind up about, i'm only hoping Loci can fill in thesse
gaps.
From jarl at casema.net Mon Mar 13 15:44:34 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] GMS
References: <200003131522.KAA154706@archa11.cc.uga.edu> <38CD48B8.3F261420@geoserve.net> <38CD4A4E.D85CBD1A@casema.net> <38CD4E3A.5738D670@geoserve.net>
Message-ID: <38CD5332.75EC8614@casema.net>
> >
> > As I mentioned earlier: the first subject of discussion should be the differance
> > between the classes\objects 'filosophy' of both systems.. I think your choose
> > to implement different types based upon functionality isn't the way it should be
> > done. I'm supporting the 'one global do-everything object".
> >
> > I'm very curious why Loci classes are implemented the way they are...
>
> Perhaps you can give us a synopsis/summary of the GMS object philosophy. It
> would then be easier for me to point out differences, because right now I'm
> not so sure how GMS is different.
>
(Please first do a 'lpr messaging_mobject_structs.h' and have a look at the
srtuctures...)
Every MO has the same structure, features, fields and capabilities. This is done
because I want to have high flexibility, stability (no need for different processing
handlers), extendability (missing features can be added 'easely'), and analizability
(the GAP core will requier a single type based database structure).
This setup also makes it possible to realise a setup like the one Loci can offer,
simply by limiting MO's in their functionality.
From justin at ukans.edu Mon Mar 13 21:14:00 2000
From: justin at ukans.edu (Justin Bradford)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] orbit/python bindings (was Re: [Pipet Devel] GMS)
In-Reply-To: <38CD000F.1E2F94F2@geoserve.net>
Message-ID:
On Mon, 13 Mar 2000, J.W. Bizzaro wrote:
> Oh, I'm forgetting that you're using CORBA. There are ORBit bindings to
> Python (2 projects in fact). So, maybe we can handle the GUI part of the
> project and you can handle the infrustructure.
Let's be honest. There are two codebases for Python bindings to ORBit, but
really only one (active) project: orbit-python
I've been talking with Jason Tackaberry (the guy working on orbit-python)
and he plans to continue active development and maintainence of his
project beyond his class project (where orbit-python originated).
He supports dynamically loaded IDLs, already, and plans to implement
support for the Interface Repository. These were, by far, the most
commonly requested new features for PyORBit. PyORBit has an IDL compiler
which generates a Python module for a specifc IDL. This likely has
performance benefits over the dynamic method, but it's a lot more
cumbersome.
So I recommend that loci uses orbit-python. When I do get a little more
free time, I'd rather work on loci than the bindings, anyway.
Justin
From bizzaro at geoserve.net Mon Mar 13 21:30:11 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:20 2006
Subject: [Pipet Devel] orbit/python bindings (was Re: [Pipet Devel] GMS)
References:
Message-ID: <38CDA433.84FBE98B@geoserve.net>
Justin Bradford wrote:
>
> So I recommend that loci uses orbit-python. When I do get a little more
> free time, I'd rather work on loci than the bindings, anyway.
Hey Justin! Thanks for the tip.
BTW, do you know of anyone working on Python bindings to Bonobo? I saw Miguel
de Icaza speek last week and give a demo of Bonobo. He showed an 'SVG Bonobo
component'. I think this would be great to use for visuals, but we need the
Python bindings to do it.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Mon Mar 13 21:47:12 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] [Fwd: Overflow/Loci/GMS collaboration]
Message-ID: <38CDA830.17908993@geoserve.net>
>From Jean-Marc...
-------------- next part --------------
An embedded message was scrubbed...
From: Jean-Marc Valin
Subject: Re: Overflow/Loci/GMS collaboration
Date: Mon, 13 Mar 2000 15:43:34 -0500
Size: 5025
Url: http://bioinformatics.org/pipermail/pipet-devel/attachments/20000314/b30d2585/attachment.mht
From bizzaro at geoserve.net Mon Mar 13 21:51:52 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] GMS
References: <200003131522.KAA154706@archa11.cc.uga.edu> <38CD48B8.3F261420@geoserve.net> <38CD4A4E.D85CBD1A@casema.net> <38CD4E3A.5738D670@geoserve.net> <38CD5332.75EC8614@casema.net>
Message-ID: <38CDA948.420012DE@geoserve.net>
jarl van katwijk wrote:
>
> (Please first do a 'lpr messaging_mobject_structs.h' and have a look at the
> srtuctures...)
I'll save everyone else the trouble and attach the file.
Jeff
-------------- next part --------------
/*
* Messaging Object
* this is the structure in which data resides inside the
* messaging system, NO other structure will be used
*
* begin : 19-6-1999, BastardAI
* 8-7-1999, Note Java-varinaming style
*
*/
#ifndef MOSTRUCT
#define MOSTRUCT
#include
#include
#include "messaging_mobject_constants.h"
typedef struct _messaging_data_object messaging_data_object;
typedef struct _messaging_object messaging_object;
typedef struct _messaging_relation messaging_relation;
struct _messaging_data_object {
gint name; /* runtime name\number\key\id */
gchar *rawdata; /* raw data */
gint rawdataLen; /* length of rawdata memory block */
GString *String; /* string data representation */
/* TODO: String -> non-pointer */
gint Integer; /* Integer data representation */
gint Percentage; /* Percentage data representation */
gboolean Boolean; /* Boolean data representation */
/* NOTE: The unique data type equals the rawdata */
};
struct _messaging_relation {
messaging_object *MO; /* Other MO */
rType_t rType; /* Relation description */
};
struct _messaging_object {
gint name; /* runtime name\number\key\id */
messaging_data_object *MDO; /* data block of current MO */
gint dataSequence; /* followup number of data block ,
N = first; N--; 0 = last */
GString *dataDescription; /* Description of data block */
gboolean dataPassedOver; /* db internal detection dead ends */
gint dataBlocked; /* current amount of cached data */
messaging_data_object *dataBlockedList[32];/* list of blocked data chunks */
GString *historyFilename; /* Filename of .. */
GIOChannel *historyIO; /* .. logfile after dataBlockedList */
GString *dname; /* displayed name */
GString *dDescription; /* displayed description */
moType_t moType; /* messaging_object type */
gint currentRelations; /* N of current relations */
messaging_relation *relation[256]; /* other MObjects to which current
one has some sort of relation to.
TODO: N=256=fixed, hmmm, a llist should replace ?? */
GString *allowedFilter; /* This string must be matched by
offered data in order to accept it */
gint (*procedure)(messaging_object *MO);
/* operation on data by current mobject */
statusType_t status; /* status */
gpointer configInit; /* initialize configuration of MO */
gpointer configRuntime; /* runtime configuration of MO */
gboolean UIsetup; /* FALSE until fully setup, see NOTE1 below */
//GtkWidget* visualPlug; /* Socket that holds the visualPanel, also NOTE2 */
GtkWidget* (*visualPlug_buildProcedure)(messaging_object *MO,gint XID); /* builds visual UI */
GtkWidget* (*configPlug_buildProcedure)(messaging_object *MO,gint XID); /* builds config UI */
//GtkWidget* configPlug; /* Holds the gtkplug widget of the config panel */
gint (*init)(messaging_object *MO); /* initialize code */
gint (*destruct)(messaging_object *MO); /* destroy code */
};
/* NOTE1 : plugins can be registerd to a ADM, the uisetup field is true after:
1- the mo is registered to the dfp
2- if moType==VisualMO, the mo visualSocket must be registered to the ADM
(= being != NULL)
Registering to a ADM is not needed for a MO to be operational, but as long as
UIsetup == FALSE the MO cannot be manually configured and cannot output information.
This is only very important to VisualMO's :) */
/* NOTE2 : These sockets are pointers to widgets OUTSIDE the DFP\Plugin data block. These
are ONLY used by the ADM, which requests the values and uses it locally. The GtkWidget
wont be a GtkSocket, but the GUI structure that contains the socket */
#endif
From bizzaro at geoserve.net Mon Mar 13 22:08:10 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Overflow/Messaging/Loci alliance mailing list
Message-ID: <38CDAD1A.78B3BC52@geoserve.net>
Jean-Marc and I agree that there should be a separate mailing list to discuss
the collaboration between our three projects. I can set that up here at The
Open Lab. I can provide any service in fact: CVS, Web, FTP, etc.
The only problem is, what do we call the list? :-) The question really is,
what do we call the collaboration? Overflow/Messaging/Loci is rather long.
'OML' is rather meaningless.
How about 'Data' or 'Datum'. Each project could then use the word as a
prefix, like...
Data-Overflow
Data-Messaging
Data-Loci
?
Any other suggestions?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Mon Mar 13 22:46:00 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca>
Message-ID: <38CDB5F8.90F6A49@geoserve.net>
Jean-Marc Valin wrote:
>
> There's another option that might be worth considering: "plugging" the GMS (or
> Loci) core on top of the Overflow core. I don't think it would be that hard,
> since we already have a node that can exec an executable and return it's stdout.
That's along the line of what GMS has accomplished and Loci has been trying to
accomplish. This is something we'll need to discuss since we have 3 ideas
about how this can be done.
But if Overflow were to be a node in GMS, Overflow would have to handle input
from and output to the outside world. I imagine Overflow might need a special
node for doing that. An idea that we had for Loci, was that unconnected lines
on a workspace would represent data that would flow to and from the outside.
And since Loci was going to nest workspace in a workspace in a workspace,
etc., and each nested workspace is itself a node, unconnected lines would mean
data flows to a parent. I'd like to see us do that in our collaboration.
> A nice feature we have (I didn't see it in Loci/GMS, but maybe it's there too)
> is "subnets" and "iterators", which allow the C equivalent of functions
> (reusable in any "program") and loops. For example, this allows me "for each
> file in a list", "for each 10 ms frame in the file", to calculate a
> powerspectrum.
Loci was going to (again, much of the design hasn't been implemented)
represent connected nodes as linked XML. The linked XML would then be parsed
by an interpreter, which would allow for data flow controls (loops, etc.) to
be inserted. The only thing we haven't figured out is how to determine the
conditions for flow control (e.g., what data is used with an if-then
control?). Remember, Loci wanted to be able to deal with any type of data.
> Another consideration, besides the GUI and the core, is the object system. In
> Overflow, all nodes return a pointer (reference counted) to an Object, which is
> the base class for all other types (Int, String, Vector, ...). ?ll these types
> can be saved/parsed to file. Do you have something similar in Loci, or are you
> using files without caring for the content of the file? (or something else)
Loci wasn't going to care about the content of the file. We were going to use
XML meta-data to accompany each node, and that could be saved to a file. I'd
like to hear what Jarl has to say about this and how GMS does it.
> As for the GUI, I don't think it's a priority for now... we might end up
> rewriting one that best handles the new core (if we merge the 3 projects). Or we
> can always keep 3 different GUIs that use the same core differently...
Well, I okayed this with our one other dedicated coder (Brad), and we want
Loci to provide a consistent (and very cool, I might add) GUI across the
projects. So, we'll back off of the infrastucture coding and dedicate
ourselves to user interface and general design issues.
> Last thing, let's see how much time we have. For the next year, I'm gonna code a
> lot for Overflow, since I use it for my master (in speech processing). What
> about you and the GMS guys?
Oh, I just got my Master's and won't be back in school for the Ph.D. program
until September. So, I have lots of time for the next 6 months. And, if I
may speak for Brad, he wants to use such an application for his thesis work,
so he's very anxious to keep things moving. From Loci's point-of-view,
merging or collaborating with GMS and Overflow could take away a year or more
of development time (Plus, otherwise, all 3 projects would have a great deal
of redundency between them).
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Mon Mar 13 23:23:35 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net>
Message-ID: <38CDBEC7.6C48A3C7@hermes.usherb.ca>
> That's along the line of what GMS has accomplished and Loci has been trying to
> accomplish. This is something we'll need to discuss since we have 3 ideas
> about how this can be done.
>
> But if Overflow were to be a node in GMS, Overflow would have to handle input
> from and output to the outside world. I imagine Overflow might need a special
> node for doing that. An idea that we had for Loci, was that unconnected lines
> on a workspace would represent data that would flow to and from the outside.
> And since Loci was going to nest workspace in a workspace in a workspace,
> etc., and each nested workspace is itself a node, unconnected lines would mean
> data flows to a parent. I'd like to see us do that in our collaboration.
The reason I was suggesting the Overflow core is that we already handle IO with
files and pipes, so Overflow nodes can also be executables (it's tested and it
works). From what I know now, I see two options:
1) Wrap all Overflow as a Loki/GMS node
2) Use Overflow's core and implement the missing functionnalities.
I'd personnaly prefer 2) but the main question is whether the design we have can
handle the new features from Loci/GMS. I think it is general enough but again,
you might prove me wrong. Can you try find out things in Loci you don't think
Overflow can do, and I'll try to see whether that's the case. As for 1) I'm sure
you can already do it with what you have. Simply edit an Overflow document that
takes its inputs from a file and sends its output to another file (or stdout)
and you're done.
I forgot... another thing we have in Overflow that's essential (well, for what I
do with it) is the ability to "automatically" cache the results that will be
reused in another iteration of a loop or by another node, so nothing gets
computed twice.
I don't know whether that was your original goal, but what we're about to do by
merging the 3 proejcts is this: a graphical shell (we could call it vsh, as in
visual shell). Though with Overflow, it would also be a scientific application
(the original Overflow goal was to be a "visual Matlab").
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Tue Mar 14 01:16:27 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net> <38CDBEC7.6C48A3C7@hermes.usherb.ca>
Message-ID: <38CDD93B.762E508F@geoserve.net>
Jean-Marc Valin wrote:
>
> The reason I was suggesting the Overflow core is that we already handle IO with
> files and pipes, so Overflow nodes can also be executables (it's tested and it
> works). From what I know now, I see two options:
> 1) Wrap all Overflow as a Loki/GMS node
> 2) Use Overflow's core and implement the missing functionnalities.
If we chose 2), what would we use GMS's core for? I'd like to hear Jarl's
thoughts on Overflow's core. GMS may provide the missing functionality for
Overflow, and merging C and C++ shouldn't be all THAT difficult. I was
thinking about 1), but sure, we should consider 2) as well.
> I'd personnaly prefer 2) but the main question is whether the design we have can
> handle the new features from Loci/GMS. I think it is general enough but again,
> you might prove me wrong. Can you try find out things in Loci you don't think
> Overflow can do, and I'll try to see whether that's the case.
Okay, here's one: Overflow runs from a batch file created by the GUI, right?
Loci's design (and I think GMS's too) lets the core work while the user
continues to operate the GUI. This is necessary for Internet-distributed
nodes running on large datasets, because there can be a very long delay before
anything is returned.
So, Loci would allow the user to execute a node and THEN start adding
connections...or even change connections at a later time. Loci does this by
making a 'dynamic batch file', which really has to be a database (since we are
using XML, we were going to use an XML database).
How does Overflow start an executable as a node? You have to feed it a
command-line statement, right? I mentioned already that I have a neat way to
generate a command-line statement by connecting nodes :-) GMS/Jarl seems to
have developed a good system for wrapping executables. Have you seen it?
That's one way I think GMS complements Overflow, another is GMS's use of
CORBA.
I like how Overflow uses XML. Looking at some of your XML files, it seems we
were thinking along the same line. For example, here is a Loci XML script
that tells the core what connections to make ('front' is the GUI and 'middle'
is the core):
----------------------------------------------------
----------------------------------------------------
And then the core/middle uses that to modify the dynamic batch file or
database. Here's the 'document' node:
----------------------------------------------------
file_select
----------------------------------------------------
and here is the 'viewer' node:
----------------------------------------------------
text_box
----------------------------------------------------
I think there's a lot we can collaborate on regarding XML.
> As for 1) I'm sure
> you can already do it with what you have. Simply edit an Overflow document that
> takes its inputs from a file and sends its output to another file (or stdout)
> and you're done.
I guess what we end up doing depends upon how much you and Dominic want to
change in Overflow. As for 1), this requires the least amount of work for you
guys. But if you're willing to take on new features and paradigms, I'm
thrilled to hear it :-)
> I forgot... another thing we have in Overflow that's essential (well, for what I
> do with it) is the ability to "automatically" cache the results that will be
> reused in another iteration of a loop or by another node, so nothing gets
> computed twice.
I haven't even thought about that, since we haven't developed any flow control
nodes for Loci. Loci does, however, always keep reference to the location of
a block of data (often kept as 'document' nodes) so we probably wouldn't have
thrown that stuff away.
Speaking of 'references', an important consideration we made when designing
Loci is that it's important not to transfer everything everytime. To solve
this, we keep a URI to programs, etc. and an XML REPRESENTATION of these
things. In most cases, only the representation needs to be transfered to the
local computer.
> I don't know whether that was your original goal, but what we're about to do by
> merging the 3 proejcts is this: a graphical shell (we could call it vsh, as in
> visual shell). Though with Overflow, it would also be a scientific application
> (the original Overflow goal was to be a "visual Matlab").
I like the sound of that. You know, Loci uses icons to represent nodes, and
some of the icons (will) look like those seen on a GUI desktop: folders,
trash, documents, etc. And we're following the Xerox/Apple model in many
cases: Drag-and-drop a node from a folder onto the desktop, double-click on an
icon to open a windowlet (little window that stays with the icon and in Loci),
etc. PLUS WE HAVE A PLAN FOR GRAPHICAL THEMES: The user can choose desktop
colors (and wallpaper when the canvas gets that item), icon styles, symbol
(goes under the icon to represent node class) styles that can be
mixed-and-matched with icons, plus Gtk themes that can be applied to Loci
widgets alone. The way I planned it, Loci COULD substitute for a user's
desktop.
As for a scientific application, Brad, myself and many others involved with
Loci are computational biologists who hope to use this for scientific
research. Hmmmm....There really are many, many more ideas that we've had, but
we'll get to those in time :-)
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From gvd at redpoll.pharmacy.ualberta.ca Tue Mar 14 01:27:54 2000
From: gvd at redpoll.pharmacy.ualberta.ca (Gary Van Domselaar)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Overflow/Messaging/Loci alliance mailing list
References: <38CDAD1A.78B3BC52@geoserve.net>
Message-ID: <38CDDBEA.566BEB9F@redpoll.pharmacy.ualberta.ca>
"J.W. Bizzaro" wrote:
>
> Jean-Marc and I agree that there should be a separate mailing list to discuss
> the collaboration between our three projects. I can set that up here at The
> Open Lab. I can provide any service in fact: CVS, Web, FTP, etc.
>
> The only problem is, what do we call the list? :-) The question really is,
> what do we call the collaboration? Overflow/Messaging/Loci is rather long.
> 'OML' is rather meaningless.
>
> How about 'Data' or 'Datum'. Each project could then use the word as a
> prefix, like...
>
> Data-Overflow
> Data-Messaging
> Data-Loci
>
> ?
>
> Any other suggestions?
How about 'The Data Pipe Alliance'? Sounds professional and cool.
Whatever you decide I can set up on the forthcoming development
environment for bioinformatics.org.
Regards,
g.
--
Gary Van Domselaar
gary@bioinformatics.org
http://www.bioinformatics.org/~gary
----------------------------------------------------
bioinformatics.org: The Open Lab
http://www.bioinformatics.org/
From bizzaro at geoserve.net Tue Mar 14 02:06:42 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net> <38CDBEC7.6C48A3C7@hermes.usherb.ca>
Message-ID: <38CDE502.BB358A2E@geoserve.net>
Jean-Marc Valin wrote:
>
> (we could call it vsh, as in visual shell).
It took me a while to find it, but VSH is an ancient file manager for UNIX:
http://www.cs.indiana.edu/hyplan/kinzler/home/doc/vsh.txt
It was originally written in 1983 (!), ported to Linux in 1992, and not
touched since 1994. It's small, but I couldn't get it to compile.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Tue Mar 14 02:02:55 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net>
<38CDBEC7.6C48A3C7@hermes.usherb.ca> <38CDD93B.762E508F@geoserve.net>
Message-ID: <38CDE41F.5A263F64@hermes.usherb.ca>
"J.W. Bizzaro" a ?crit :
> > 1) Wrap all Overflow as a Loki/GMS node
> > 2) Use Overflow's core and implement the missing functionnalities.
>
> If we chose 2), what would we use GMS's core for? I'd like to hear Jarl's
> thoughts on Overflow's core. GMS may provide the missing functionality for
> Overflow, and merging C and C++ shouldn't be all THAT difficult. I was
> thinking about 1), but sure, we should consider 2) as well.
OK, let's talk about 2) (I consider 1 to be trivial). All our nodes are classes
and the code that's ran is in the getOutput method. Maybe it's possible to call
the GMS functions from there. Again, the main reason I'd like 2) is speed: not
having to call an executable for a sum, logical and, even an FFT.
> Okay, here's one: Overflow runs from a batch file created by the GUI, right?
No (well you can do it, but you don't have to). When you use vflow to run the
"program", vflow starts another thread, without needing to write XML to disk.
You can modify the program while it's running, but it won't affect it until you
restart it. I think it would be technically feasable to have the modifications
take effect right now, by having a special node that "encapsulates" a Network
(we already have what it takes to do that). That is, in Overflow a Network (set
of connected nodes) is a subclass of the Node class (and thus can be used as a
simple node).
> Loci's design (and I think GMS's too) lets the core work while the user
> continues to operate the GUI. This is necessary for Internet-distributed
> nodes running on large datasets, because there can be a very long delay before
> anything is returned.
> So, Loci would allow the user to execute a node and THEN start adding
> connections...or even change connections at a later time. Loci does this by
> making a 'dynamic batch file', which really has to be a database (since we are
> using XML, we were going to use an XML database).
I'm not sure I understand what you mean here?
> How does Overflow start an executable as a node? You have to feed it a
> command-line statement, right? I mentioned already that I have a neat way to
> generate a command-line statement by connecting nodes :-) GMS/Jarl seems to
> have developed a good system for wrapping executables. Have you seen it?
> That's one way I think GMS complements Overflow, another is GMS's use of
> CORBA.
You can have a set of nodes that generate a command line in Overflow, then feed
that command-line (string) to the "Exec" node.
> I like how Overflow uses XML. Looking at some of your XML files, it seems we
> were thinking along the same line. For example, here is a Loci XML script
> that tells the core what connections to make ('front' is the GUI and 'middle'
> is the core):
Is the "program" in Loci stored as a script? The way it works in Overflow, is
that the XML is simply storing a set of objects: Networks, Nodes and Links. It
stores how the nodes are connected together (XML was just a convenient way to
serialize our objects). Another thing you need to know about Overflow. It works
using a "pull" on the nodes. That is, you first ask the last node for its
output. Then this node asks for the value of each of its input nodes. These
nodes do the same until everything is calculated. If, for some reason a value is
unused, it is not calculated.
> I guess what we end up doing depends upon how much you and Dominic want to
> change in Overflow. As for 1), this requires the least amount of work for you
> guys. But if you're willing to take on new features and paradigms, I'm
> thrilled to hear it :-)
Dominic has a couple things he wants in Overflow (or anything it becomes):
Asynchronus events, multi-thread stuff (partially implemented), ... (Dominic,
anything I forgot?)
> I like the sound of that. You know, Loci uses icons to represent nodes, and
> some of the icons (will) look like those seen on a GUI desktop: folders,
> trash, documents, etc. And we're following the Xerox/Apple model in many
> cases: Drag-and-drop a node from a folder onto the desktop, double-click on an
> icon to open a windowlet (little window that stays with the icon and in Loci),
> etc. PLUS WE HAVE A PLAN FOR GRAPHICAL THEMES: The user can choose desktop
> colors (and wallpaper when the canvas gets that item), icon styles, symbol
> (goes under the icon to represent node class) styles that can be
> mixed-and-matched with icons, plus Gtk themes that can be applied to Loci
> widgets alone. The way I planned it, Loci COULD substitute for a user's
> desktop.
Sounds cool! I'm not really a GUI guy. The vflow GUI is about the best I can do
(I actually learnind GTK/GNOME while writing it).
> As for a scientific application, Brad, myself and many others involved with
> Loci are computational biologists who hope to use this for scientific
> research. Hmmmm....There really are many, many more ideas that we've had, but
> we'll get to those in time :-)
I use Overflow for speech processing/recognition and Dominic uses it for image
processing and robot behaviours. I'll probably also write a real-time music
effect processor... when I have time.
Regards,
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jarl at casema.net Tue Mar 14 02:17:44 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] orbit/python bindings (was Re: [Pipet Devel] GMS)
References: <38CDA433.84FBE98B@geoserve.net>
Message-ID: <38CDE797.DAF42FEB@casema.net>
"J.W. Bizzaro" wrote:
> Justin Bradford wrote:
> >
> > So I recommend that loci uses orbit-python. When I do get a little more
> > free time, I'd rather work on loci than the bindings, anyway.
>
> Hey Justin! Thanks for the tip.
>
> BTW, do you know of anyone working on Python bindings to Bonobo? I saw Miguel
> de Icaza speek last week and give a demo of Bonobo. He showed an 'SVG Bonobo
> component'. I think this would be great to use for visuals, but we need the
> Python bindings to do it.
Bonobo is a docked gtk widget that has a Corba api to import & export datashunks,
they surtainly
are valueble as visuals.
From gvd at redpoll.pharmacy.ualberta.ca Tue Mar 14 02:22:51 2000
From: gvd at redpoll.pharmacy.ualberta.ca (Gary Van Domselaar)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] GMS
References: <200003131522.KAA154706@archa11.cc.uga.edu> <38CD48B8.3F261420@geoserve.net> <38CD4A4E.D85CBD1A@casema.net> <38CD4E3A.5738D670@geoserve.net>
Message-ID: <38CDE8CB.B9C37585@redpoll.pharmacy.ualberta.ca>
"J.W. Bizzaro" wrote:
>
> jarl van katwijk wrote:
> >
> > As I mentioned earlier: the first subject of discussion should be the differance
> > between the classes\objects 'filosophy' of both systems.. I think your choose
> > to implement different types based upon functionality isn't the way it should be
> > done. I'm supporting the 'one global do-everything object".
> >
> > I'm very curious why Loci classes are implemented the way they are...
Jarl,
Loci's philosophy follows that of the unix philosophy: one function, one
application. Sophisticated, distributed data processing is accomplished
by pipelining these 'simple' applications toghether. The
'all-inclusive' approach that GMS takes for brokering datastreams is
also valid. One consideration for Loci, however, is that it is intended
ultimately to act as a graphical scripting language for distributed data
brokering. The processing applications exist already; Loci wraps these
applications, and adds 'extras' to the workpath (like data format
conversion utilities) in order for the data to stream properly between
different applications. Other 'elemental loci' include data storage
utilities, which can be customized to store an incoming data stream
based on user defined schemas, possibly so that they can process it
further later using non Loci-wrapped processing applications, or perhaps
to view the data with their favorite viewing application. In our world
of computational biology, this is a requirement, so modularity and
simplicity are a big part of the Loci philosophy.
An additional consideration arises from the following scenario: a simple
workflow diagram can be encapsulated into a 'node' which is itself
capable of being inserted into another workpath, and so on, ad
infinitum. An apparently simple workpath may be in reality composed of
multiply nested workpaths and can in principle be quite complex. In
order to minimize bloat, our thinking was to minimize each type of
elementary node to its basic functionality.
IMHO, I don't think there is a 'right' or 'wrong' way to design the
elementary objects. This is all good food for thought, and I suggest we
(Loci, GMS, and Overflow) create a discussion forum where we can have
open discussions on the best way to implement this core functionality.
The Locians are a very open-minded group; thats one of the reasons why
we discussed our project for so long before committing to writing code.
Lucky that we did, since we have so recently made contacts with such
useful potential allies!
I am currently working on creating a web-based open source development
environment for our organization: bionformatics.org. It is based on the
sourceforge development environment (http://sourceforge.net). It is a
sophisticated and very user-friendly environment intended to foster
discussions and collaborations of the nature in which we are currently
engaged. I can set up a forum for you, Jean-Marc (canadian, yaay;-) and
the locians to hash out the details of our architectures, design goals,
and hopefully generate a powerful collaboration for creating the
sophisticated data processsing environment that we are all so passionate
about.
>
> Perhaps you can give us a synopsis/summary of the GMS object philosophy. It
> would then be easier for me to point out differences, because right now I'm
> not so sure how GMS is different.
I can see from the dia flowchart on your homepage that you have a well
thought out architecture for your core operation, but some of the
acronyms are a little too obscure for me. If you could provide a couple
of paragraphs describing the operation of your 'core' for us, that too
would be greatly appreciated.
Regards,
g.
--
Gary Van Domselaar
gary@bioinformatics.org
http://www.bioinformatics.org/~gary
----------------------------------------------------
bioinformatics.org: The Open Lab
http://www.bioinformatics.org/
From jarl at casema.net Tue Mar 14 02:35:25 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] [Fwd: Overflow/Loci/GMS collaboration]
References: <38CDA830.17908993@geoserve.net>
Message-ID: <38CDEBBD.A6B4BD94@casema.net>
>
> There's another option that might be worth considering: "plugging" the GMS (or
> Loci) core on top of the Overflow core. I don't think it would be that hard,
> since we already have a node that can exec an executable and return it's stdout.
> Using sockets/corba might not be that hard. The advantage is that you could have
> a complex processing without too much overhead.
>
Maybe Overflow-subnets can be wrapped to become an element inside loic\gms?
>
> A nice feature we have (I didn't see it in Loci/GMS, but maybe it's there too)
> is "subnets" and "iterators", which allow the C equivalent of functions
> (reusable in any "program") and loops. For example, this allows me "for each
> file in a list", "for each 10 ms frame in the file", to calculate a
> powerspectrum.
It's on my TODO :)
From bizzaro at geoserve.net Tue Mar 14 02:50:08 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Messaging/Loci alliance mailing list
References: <38CDAD1A.78B3BC52@geoserve.net> <38CDEC78.499D54E2@casema.net>
Message-ID: <38CDEF30.2A1CBBA1@geoserve.net>
BTW,
Jean-Marc Valin and Dominic Letourneau
are not on the Loci list, so e-mail should be addressed to
them as well.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 14 02:52:24 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] [Fwd: Overflow/Loci/GMS collaboration]
References: <38CDA830.17908993@geoserve.net> <38CDEBBD.A6B4BD94@casema.net>
Message-ID: <38CDEFB8.8912EA27@geoserve.net>
jarl van katwijk wrote:
>
> > A nice feature we have (I didn't see it in Loci/GMS, but maybe it's there too)
> > is "subnets" and "iterators", which allow the C equivalent of functions
> > (reusable in any "program") and loops. For example, this allows me "for each
> > file in a list", "for each 10 ms frame in the file", to calculate a
> > powerspectrum.
>
> It's on my TODO :)
You see, GMS and Overflow do complement each other ;-)
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 14 02:51:17 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net>
Message-ID: <38CDEF75.475FF3DC@casema.net>
> >
> > There's another option that might be worth considering: "plugging" the GMS (or
> > Loci) core on top of the Overflow core. I don't think it would be that hard,
> > since we already have a node that can exec an executable and return it's stdout.
>
> That's along the line of what GMS has accomplished and Loci has been trying to
> accomplish. This is something we'll need to discuss since we have 3 ideas
> about how this can be done.
Gms does not 'wrap' external applications, it rather attaches them. Writting a
wrapper-plugins is perfectly possible though.
>
>
> But if Overflow were to be a node in GMS, Overflow would have to handle input
> from and output to the outside world. I imagine Overflow might need a special
> node for doing that.
Not needed, an Overflow sub-net can 'accept' any data-description out of the pipeline
that it wants. The exsisting & 'to be coded' sensors will take care of the gathering
of data
and the visual will export the dataflows. In the GMS design dataflows MUST pass a
sensor-pipeline-visual path becouse of security\accessability.
> An idea that we had for Loci, was that unconnected lines
> on a workspace would represent data that would flow to and from the outside.
> And since Loci was going to nest workspace in a workspace in a workspace,
> etc., and each nested workspace is itself a node, unconnected lines would mean
> data flows to a parent. I'd like to see us do that in our collaboration.
Unconnected lines? Like 'deadend dataflows'?
>
> Loci wasn't going to care about the content of the file. We were going to use
> XML meta-data to accompany each node, and that could be saved to a file. I'd
> like to hear what Jarl has to say about this and how GMS does it.
Likewise, gms has data in 5 types availieble to every node\object.
(Raw\string\integer\
percentage\boolean). Historic data is cached\stored on disk.
> > As for the GUI, I don't think it's a priority for now... we might end up
> > rewriting one that best handles the new core (if we merge the 3 projects). Or we
> > can always keep 3 different GUIs that use the same core differently...
>
> Well, I okayed this with our one other dedicated coder (Brad), and we want
> Loci to provide a consistent (and very cool, I might add) GUI across the
> projects. So, we'll back off of the infrastucture coding and dedicate
> ourselves to user interface and general design issues.
Maybe the person that coded the core of Loci is interested switching from python to
C?
>
> > Last thing, let's see how much time we have. For the next year, I'm gonna code a
> > lot for Overflow, since I use it for my master (in speech processing). What
> > about you and the GMS guys?
I'm always working on gms.. only recently I started a new project (professional)
which will cool down coding in the midweeks :) Weekend are still dedicated to gms..
From bizzaro at geoserve.net Tue Mar 14 03:22:31 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net> <38CDEF75.475FF3DC@casema.net>
Message-ID: <38CDF6C7.53C8B4C8@geoserve.net>
jarl van katwijk wrote:
>
> Gms does not 'wrap' external applications, it rather attaches them. Writting a
> wrapper-plugins is perfectly possible though.
I stand corrected.
> > An idea that we had for Loci, was that unconnected lines
> > on a workspace would represent data that would flow to and from the outside.
> > And since Loci was going to nest workspace in a workspace in a workspace,
> > etc., and each nested workspace is itself a node, unconnected lines would mean
> > data flows to a parent. I'd like to see us do that in our collaboration.
>
> Unconnected lines? Like 'deadend dataflows'?
What Loci would do in such a case is try to send the data to a parent node or
network, instead of just killing the dataflow. We were going to define a
'dead-end' node for when the dataflow needs to be stopped. Actually the
reverse is just as valid: unconnected lines stop the dataflow and special
nodes can send data to parents. I just chose the former approach because
unconnected lines in a nested workspace can be mapped directly onto
unconnected lines on the parent node, which I think is more intuitive. You
can see this in the following screenshot:
http://bioinformatics.org/loci/documentation/screenshots/latest.gif
The red (unconnected) dots in the nested workspace (lower left) are mapped
onto the parent node (labeled 'composite') and appear as green (connected)
dots.
> Likewise, gms has data in 5 types availieble to every node\object.
> (Raw\string\integer\
> percentage\boolean). Historic data is cached\stored on disk.
Are you using XML? What do you think about using it?
> Maybe the person that coded the core of Loci is interested switching from python to
> C?
Are you saying you want the GUI in C, or that you want Brad to help with the
core?
It's amusing that all 3 projects independently decided to separate the GUI
from the core. But if we are to keep the GUI separate, does it really matter
what language the GUI is written in, or is this a personal preference?
I know it seems awkward to have 3 languages. But I guess we'll have to see to
what extent our projects will be merged. If we're looking at a single
distribution, and Overflow and GMS agree on either C or C++, then we can
consider C or C++ for the GUI. But if our projects become separate
distributions (as with Gnome) that communicate through CORBA, language
shouldn't matter.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 14 08:55:45 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net> <38CDEF75.475FF3DC@casema.net> <38CDF6C7.53C8B4C8@geoserve.net>
Message-ID: <38CE44E1.344F3315@casema.net>
> > Unconnected lines? Like 'deadend dataflows'?
>
> What Loci would do in such a case is try to send the data to a parent node or
> network, instead of just killing the dataflow. We were going to define a
> 'dead-end' node for when the dataflow needs to be stopped. Actually the
> reverse is just as valid: unconnected lines stop the dataflow and special
> nodes can send data to parents. I just chose the former approach because
> unconnected lines in a nested workspace can be mapped directly onto
> unconnected lines on the parent node, which I think is more intuitive. You
> can see this in the following screenshot:
>
> http://bioinformatics.org/loci/documentation/screenshots/latest.gif
>
> The red (unconnected) dots in the nested workspace (lower left) are mapped
> onto the parent node (labeled 'composite') and appear as green (connected)
> dots.
Ic, gms is still very simple about connectivity logic, is this area loci is much more
mature.
>
>
> > Likewise, gms has data in 5 types availieble to every node\object.
> > (Raw\string\integer\
> > percentage\boolean). Historic data is cached\stored on disk.
>
> Are you using XML? What do you think about using it?
Good Thing, I like using standards anyway, and XML seems to be a good candidate for
data-encapsulation. I did not study it yet.
Yesterday evening I did read the Loci, the Overflow and some other projects
documentation b.t.w.
>
>
> > Maybe the person that coded the core of Loci is interested switching from python to
> > C?
>
> Are you saying you want the GUI in C, or that you want Brad to help with the
> core?
the 2nd, coding the core on my own wont go quickly enough.
>
> It's amusing that all 3 projects independently decided to separate the GUI
> from the core. But if we are to keep the GUI separate, does it really matter
> what language the GUI is written in, or is this a personal preference?
You're correct. As long as corba is used to combine all parts it's better to chose a
language for every part. Pythons can be better for the GUI, C is best for the core and
C++ can be used for a 'detail level'.
>
> I know it seems awkward to have 3 languages. But I guess we'll have to see to
> what extent our projects will be merged. If we're looking at a single
> distribution, and Overflow and GMS agree on either C or C++, then we can
> consider C or C++ for the GUI. But if our projects become separate
> distributions (as with Gnome) that communicate through CORBA, language
> shouldn't matter.
Yep :)
From bizzaro at geoserve.net Tue Mar 14 09:26:53 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net>
<38CDBEC7.6C48A3C7@hermes.usherb.ca> <38CDD93B.762E508F@geoserve.net> <38CDE41F.5A263F64@hermes.usherb.ca>
Message-ID: <38CE4C2D.62A696DB@geoserve.net>
Jean-Marc Valin wrote:
>
> > > 1) Wrap all Overflow as a Loki/GMS node
> > > 2) Use Overflow's core and implement the missing functionnalities.
>
> OK, let's talk about 2) (I consider 1 to be trivial). All our nodes are classes
> and the code that's ran is in the getOutput method. Maybe it's possible to call
> the GMS functions from there. Again, the main reason I'd like 2) is speed: not
> having to call an executable for a sum, logical and, even an FFT.
The big problem I see with approach 2) is that Overflow has no knowledge of
where it is in a physical network, where other instances of Overflow might be,
what nodes are available at what location, how to request a particular remote
node, and how to send data between two remote instances of Overflow without it
first coming back to the local instance. These are all problems Loci was
designed to deal with. But if you're talking about Overflow being the real
core, as core it would have to deal with these problems.
So, I don't think plugging GMS into Overflow's port will make Overflow/GMS a
distributed system. As an example, let's say we have computers A and B. A is
the local computer run by the user, and B is a remote computer. Both A and B
have copies of Overflow/GMS, except computer B has a node that computer A does
not have. Now tell me, how will Overflow/GMS on A know (1) where computer B
is, (2) what nodes are on B and (3) how to request access to the node?
Alright, let's make the problem a little more complicated. We have 3
computers: A, B and C. A is again local while B and C are separate remote
computers. Now, the user on computer A wants to pipe data from a node on A,
to a node on B, and then directly to a node on C. How does (4) Overflow/GMS
on B know to send the data to C and not back to A?
The only way I see to address these problems, and what Loci was proposing to
do, is create a directory service and a meta-data transfer system.
In Loci, each instance of Loci's core is identical to the next, regardless of
location. And each has the ability to contact another with a request. If,
for example, a node exists on computer B that the user wants (access to), Loci
on A would ask Loci on B for it. And the system is very much seamless and
symmetric: If a node exists on computer A that the user wants, Loci on A (same
computer) ASKS ITSELF FOR THE NODE.
And if the user wants to connect a node on B to a node on C, Loci on A sends B
the request with meta-data saying to contact C when done. Next, B contacts C,
and then C contacts A that the connection was made.
> > So, Loci would allow the user to execute a node and THEN start adding
> > connections...or even change connections at a later time. Loci does this by
> > making a 'dynamic batch file', which really has to be a database (since we are
> > using XML, we were going to use an XML database).
>
> I'm not sure I understand what you mean here?
I mean that all of the information for each node (including meta-data) and all
of the connections made between nodes, are repesented as XML. BUT, to make
parsing and editing this XML structure easier, we put the information into a
database. The information is actually transformed from XML into a form better
suited for the database, and then when retrieved, the information is put back
into XML, which is better suited for transfer and storage.
> You can have a set of nodes that generate a command line in Overflow, then feed
> that command-line (string) to the "Exec" node.
Great. That's pretty much what we were trying to do, but we have some rather
interesting rules for construction that I'll have to pass on to you.
> Is the "program" in Loci stored as a script?
What are you calling 'program'? If you mean the network to be ran (or
workpath to be followed in Loci-speak), then yes, it's stored as a script...in
a database.
> The way it works in Overflow, is
> that the XML is simply storing a set of objects: Networks, Nodes and Links.
Exactly the same as Loci!
> It
> stores how the nodes are connected together (XML was just a convenient way to
> serialize our objects).
Right. Except, for doing dynamic editing and parsing, we need to take the
data out of XML and put it into a database.
> Another thing you need to know about Overflow. It works
> using a "pull" on the nodes. That is, you first ask the last node for its
> output. Then this node asks for the value of each of its input nodes. These
> nodes do the same until everything is calculated. If, for some reason a value is
> unused, it is not calculated.
Excellent! This is exactly how we planned on 'running' a network.
> Dominic has a couple things he wants in Overflow (or anything it becomes):
> Asynchronus events, multi-thread stuff (partially implemented), ... (Dominic,
> anything I forgot?)
Great.
> Sounds cool! I'm not really a GUI guy. The vflow GUI is about the best I can do
> (I actually learnind GTK/GNOME while writing it).
I think I am a GUI guy afterall. I tend to need to see the results of my
work.
> I use Overflow for speech processing/recognition and Dominic uses it for image
> processing and robot behaviours. I'll probably also write a real-time music
> effect processor... when I have time.
Oh cool, a couple of AI/robotics guys. I think our needs are indeed very
similar.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 14 09:36:08 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net> <38CDEF75.475FF3DC@casema.net> <38CDF6C7.53C8B4C8@geoserve.net> <38CE44E1.344F3315@casema.net>
Message-ID: <38CE4E58.167D9030@geoserve.net>
Jarl van Katwijk wrote:
>
> Ic, gms is still very simple about connectivity logic, is this area loci is much more
> mature.
It's not that we have all this programmed. If we did, we'd be nearly done.
It's just that we've been talking about this stuff for more than a year now
:-)
> Good Thing, I like using standards anyway, and XML seems to be a good candidate for
> data-encapsulation.
That's good to hear, since Loci and Overflow have invested heavily in XML.
> the 2nd, coding the core on my own wont go quickly enough.
I wouldn't say that we're expecting you to code the core on your own ;-)
> You're correct. As long as corba is used to combine all parts it's better to chose a
> language for every part. Pythons can be better for the GUI, C is best for the core and
> C++ can be used for a 'detail level'.
I don't know what the core will look like in the end. It seems all 3 projects
have something to contribute to it. But it only makes sense to have the core
in one language.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 14 09:32:18 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:21 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net> <38CDBEC7.6C48A3C7@hermes.usherb.ca> <38CDD93B.762E508F@geoserve.net>
Message-ID: <38CE4D72.1A3F9C5B@casema.net>
> >
> > The reason I was suggesting the Overflow core is that we already handle IO with
> > files and pipes, so Overflow nodes can also be executables (it's tested and it
> > works). From what I know now, I see two options:
> > 1) Wrap all Overflow as a Loki/GMS node
> > 2) Use Overflow's core and implement the missing functionnalities.
>
> If we chose 2), what would we use GMS's core for? I'd like to hear Jarl's
> thoughts on Overflow's core. GMS may provide the missing functionality for
> Overflow, and merging C and C++ shouldn't be all THAT difficult. I was
> thinking about 1), but sure, we should consider 2) as well.
I read the Overflow documentation, and I'm not very enthousiastic about it. I think
it's structures are to small, it's more suiteble for realtime processing as it is for
application intergration. Using the Overflow core will requere a lot of
configurartion before it can do something usefull, even when on got a lot 'subnets'.
Also its components wont be manageble, they will be in the system in too great
numbers for a security\authentication system to handle. 2ndly, as I memtioned before
in some emails, I think nodes of different 'types' wont be as powerfull as a general
object type, even when this general type has more cpu\memory overhead. Modern C
programming libraries, like Glib, will greatly remove this overhead anyway. And 3thly
I dont really like the way Overflow enforces high speed and high configuarability;
these features should mainly remain inside the wrapped applications themselfs. GMS
(and also Loci) want to accomplish 'Application Intergration", they dont want to be
"Doing the work themselfs".
Having the structures of Overflow inside nodes does make sense, this way it offers a
methode for writing nodes\plugins in a 'scripting' language. 4thly the gms core is
gonna be very fast: too, it already executes binairy code instead of some form of
scripting and I'm gonnan optimize the dataflow prosessor a lot. So there's no need
to chose the "overflow way' for speed reasons.
Dont take me wrong, there's surtainly a lot that the 'overflow-way' can do, but I
think it's not a good base for application intergration.
> > I forgot... another thing we have in Overflow that's essential (well, for what I
> > do with it) is the ability to "automatically" cache the results that will be
> > reused in another iteration of a loop or by another node, so nothing gets
> > computed twice.
>
> I haven't even thought about that, since we haven't developed any flow control
> nodes for Loci. Loci does, however, always keep reference to the location of
> a block of data (often kept as 'document' nodes) so we probably wouldn't have
> thrown that stuff away.
>
GMS also does keep track of histori data. Calculation results reusage is a nice
idea..
From bizzaro at geoserve.net Tue Mar 14 09:55:42 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net> <38CDBEC7.6C48A3C7@hermes.usherb.ca> <38CDD93B.762E508F@geoserve.net> <38CE4D72.1A3F9C5B@casema.net>
Message-ID: <38CE52EE.B242E31A@geoserve.net>
Jarl van Katwijk wrote:
>
> it's structures are to small, it's more suiteble for realtime processing as it is for
> application intergration.
But that's exactly why we're combining efforts: Overflow does something Loci
and GMS don't, and visa versa. Overflow is not an application integration
environment, but Loci and GMS can't provide such low-level building blocks for
high-speed graphical application development.
> Using the Overflow core will requere a lot of
> configurartion before it can do something usefull, even when on got a lot 'subnets'.
> Also its components wont be manageble, they will be in the system in too great
> numbers for a security\authentication system to handle.
I don't know. If Overflow nodes are connected locally, do they need security
authentication???
> 2ndly, as I memtioned before
> in some emails, I think nodes of different 'types' wont be as powerfull as a general
> object type, even when this general type has more cpu\memory overhead. Modern C
> programming libraries, like Glib, will greatly remove this overhead anyway.
Okay, you have a valid point. I'm willing to have it your way.
> And 3thly
> I dont really like the way Overflow enforces high speed and high configuarability;
> these features should mainly remain inside the wrapped applications themselfs.
Right, well Overflow is for application development; Loci and GMS are for
application integration. We can have both worlds, can't we?
> 4thly the gms core is
> gonna be very fast: too, it already executes binairy code instead of some form of
> scripting and I'm gonnan optimize the dataflow prosessor a lot. So there's no need
> to chose the "overflow way' for speed reasons.
Then I invite Jean-Marc and Dominic to take a look at what GMS has to offer.
> Dont take me wrong, there's surtainly a lot that the 'overflow-way' can do, but I
> think it's not a good base for application intergration.
Again, I think we can do both.
> GMS also does keep track of histori data. Calculation results reusage is a nice
> idea..
That's good. Loci was going to keep track of every step in network
construction, simply by the fact that the XML command stream could be saved.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 14 10:10:23 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Overflow/Messaging/Loci alliance mailing list
References: <38CDAD1A.78B3BC52@geoserve.net> <38CDDBEA.566BEB9F@redpoll.pharmacy.ualberta.ca>
Message-ID: <38CE565F.FFC31F55@geoserve.net>
Gary Van Domselaar wrote:
>
> How about 'The Data Pipe Alliance'? Sounds professional and cool.
> Whatever you decide I can set up on the forthcoming development
> environment for bioinformatics.org.
How about gNodes ?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 14 10:31:50 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net> <38CDBEC7.6C48A3C7@hermes.usherb.ca> <38CDD93B.762E508F@geoserve.net> <38CE4D72.1A3F9C5B@casema.net> <38CE52EE.B242E31A@geoserve.net>
Message-ID: <38CE5B66.14F14EE4@casema.net>
> >
> > it's structures are to small, it's more suiteble for realtime processing as it is for
> > application intergration.
>
> But that's exactly why we're combining efforts: Overflow does something Loci
> and GMS don't, and visa versa. Overflow is not an application integration
> environment, but Loci and GMS can't provide such low-level building blocks for
> high-speed graphical application development.
>
GMS can provide this kinda lowlevel building blocks, but they wont be used i
>
> > Using the Overflow core will requere a lot of
> > configurartion before it can do something usefull, even when on got a lot 'subnets'.
> > Also its components wont be manageble, they will be in the system in too great
> > numbers for a security\authentication system to handle.
>
> I don't know. If Overflow nodes are connected locally, do they need security
> authentication???
Yes. Every time a node is created OR a relation betweem them is created, I want to have
some
sort of authetication takeing place. I'm thinking about manual OK-ing a node once to make
it
loadable for the system, and calculating a CRC to authenticate. Overflow has a fixed
number of
static nodes, so securing node-creating will be much easier.
But the real problem comes for the authentication of relations between nodes. It wont be
possible
to allow a relation between (overflow type) node A en node B, because it cant be determind
what
the chain-of-nodes ending into node A will do. In gms authentication between a Collector
and a
Visual will be implemented, and there wont be taken heed of the filters in between. All
collectors
and visuals are crc-unique, so the relation between them can be authenticated. Not having
such
a system will lead to unacceptable exploiting.
The security system I've in mind is taking much more into account, but relation-creation
is by far
the most important part.
>
> > And 3thly
> > I dont really like the way Overflow enforces high speed and high configuarability;
> > these features should mainly remain inside the wrapped applications themselfs.
>
> Right, well Overflow is for application development; Loci and GMS are for
> application integration. We can have both worlds, can't we?
Yes. But not 100% of both :)
bye,
jarl
From jarl at casema.net Tue Mar 14 10:34:21 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Overflow/Messaging/Loci alliance mailing list
References: <38CDAD1A.78B3BC52@geoserve.net> <38CDDBEA.566BEB9F@redpoll.pharmacy.ualberta.ca> <38CE565F.FFC31F55@geoserve.net>
Message-ID: <38CE5BFD.92A90DD5@casema.net>
"J.W. Bizzaro" wrote:
> Gary Van Domselaar wrote:
> >
> > How about 'The Data Pipe Alliance'? Sounds professional and cool.
> > Whatever you decide I can set up on the forthcoming development
> > environment for bioinformatics.org.
>
> How about gNodes ?
>
Or simply Gnu Application Intergration (GAI)?
(Based upon the name 'Enterprise Application Intergration')
From bizzaro at geoserve.net Tue Mar 14 10:51:13 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Overflow/Messaging/Loci alliance mailing list
References: <38CDAD1A.78B3BC52@geoserve.net> <38CDDBEA.566BEB9F@redpoll.pharmacy.ualberta.ca> <38CE565F.FFC31F55@geoserve.net> <38CE5BFD.92A90DD5@casema.net>
Message-ID: <38CE5FF1.AE10258A@geoserve.net>
Jarl van Katwijk wrote:
>
> Or simply Gnu Application Intergration (GAI)?
But that would be pronounced 'GAY' :-P
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From gvd at redpoll.pharmacy.ualberta.ca Tue Mar 14 10:51:35 2000
From: gvd at redpoll.pharmacy.ualberta.ca (Gary Van Domselaar)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net> <38CDEF75.475FF3DC@casema.net> <38CDF6C7.53C8B4C8@geoserve.net>
Message-ID: <38CE6006.AACD05A1@redpoll.pharmacy.ualberta.ca>
> It's amusing that all 3 projects independently decided to separate the GUI
> from the core. But if we are to keep the GUI separate, does it really matter
> what language the GUI is written in, or is this a personal preference?
considering that the GUI is used to visually construct data workpaths,
speed is not an issue, and that most user feedback requests are for
interface modifications, I suggest we stick with Python, considering it
is such an excellent rapid prototyping language, and very easy to pick
up.
>
> I know it seems awkward to have 3 languages. But I guess we'll have to see to
> what extent our projects will be merged. If we're looking at a single
> distribution, and Overflow and GMS agree on either C or C++, then we can
> consider C or C++ for the GUI. But if our projects become separate
> distributions (as with Gnome) that communicate through CORBA, language
> shouldn't matter.
I can see why we would want to use CORBA's IIOP to communicate between
'cores' in a network distributed environment, and also to control
wrapped applications, which likely are also distributed, but if the core
and GUI reside on the same box, is there a need to communicate to the
GUI through CORBA? Loci and Overflow have already developed an XML
protocol for core<-->GUI communication. Is there a better argument for
switching to CORBA?
regards,
g.
--
Gary Van Domselaar
gary@bioinformatics.org
http://www.bioinformatics.org/~gary
----------------------------------------------------
bioinformatics.org: The Open Lab
http://www.bioinformatics.org/
From jarl at casema.net Tue Mar 14 10:57:48 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Overflow/Messaging/Loci alliance mailing list
References: <38CDAD1A.78B3BC52@geoserve.net> <38CDDBEA.566BEB9F@redpoll.pharmacy.ualberta.ca> <38CE565F.FFC31F55@geoserve.net> <38CE5BFD.92A90DD5@casema.net> <38CE5FF1.AE10258A@geoserve.net>
Message-ID: <38CE617C.F47DBC5B@casema.net>
"J.W. Bizzaro" wrote:
> Jarl van Katwijk wrote:
> >
> > Or simply Gnu Application Intergration (GAI)?
>
> But that would be pronounced 'GAY' :-P
>
Hehe.. not good :)
I'm Dutch, so I didn't notice this 'problem'.
From gvd at redpoll.pharmacy.ualberta.ca Tue Mar 14 11:10:19 2000
From: gvd at redpoll.pharmacy.ualberta.ca (Gary Van Domselaar)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Overflow/Messaging/Loci alliance mailing list
References: <38CDAD1A.78B3BC52@geoserve.net> <38CDDBEA.566BEB9F@redpoll.pharmacy.ualberta.ca> <38CE565F.FFC31F55@geoserve.net> <38CE5BFD.92A90DD5@casema.net> <38CE5FF1.AE10258A@geoserve.net>
Message-ID: <38CE646B.8E1D946C@redpoll.pharmacy.ualberta.ca>
"J.W. Bizzaro" wrote:
>
> Jarl van Katwijk wrote:
> >
> > Or simply Gnu Application Intergration (GAI)?
>
> But that would be pronounced 'GAY' :-P
Its a little ambiguously (gay ;-). bonobo is associated with
application integration (as in component software integration). We are
dealing with data connectivity brokering, so perhaps to keep some kind
of data reference in the title? Petty bickering I know, but first
impressions are lasting ones!
regards.
g.
--
Gary Van Domselaar
gary@bioinformatics.org
http://www.bioinformatics.org/~gary
----------------------------------------------------
bioinformatics.org: The Open Lab
http://www.bioinformatics.org/
From chapmanb at arches.uga.edu Tue Mar 14 11:48:02 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Code updates
Message-ID: <200003141651.LAA83906@archa11.cc.uga.edu>
Hey everyone;
Just wanted to let everyone know that I just made a huge cvs
commit, and now the front and middle are officially separated! Yay!
All communication between them is now going through sockets, and I
should have restored all of the functionality that we had previously,
with a few exceptions:
1. My "wrapping"/connection code isn't currently compatible with the
structure of everything, so it isn't used right now. It probably won't
be very useful in the future either, with GMS and Overflow and all so
it'll probably be out for a while, if not permanently.
2. The database connectivity stuff only half works because of some
issues I'm having with sockets (more on this below). You can only
connect to a gadfly db, and can't view the contents of tables.
If anything else generates errors, please post on it. I've fixed the
error Jeff noticed with containers (thanks for this!), and so
everything except for what I've mentioned _should_ work right.
I also added a doc directory which has the communication protocols
I'm using kind of outlined.
Maybe if Jeff is feeling like he has free time, and the code seems
okay, he might be able to develop a new snapshot from this, so people
can check it out:) If you are taking a look at the code, the parts to
look at are basically divided as following:
front/gnome/library and subdirectories: The code for the gnome/gtk
based front end.
middle/library/modules/xml: This is all of the code for the current
middle/core. Basically it contains code to create a server to
communicate with the front via XML through sockets, code to create
XML descriptions of the workspace (which can be seen in middle/temp
when the Loci program is running), and code for dealing with the
filesystem and databases.
middle/library/modules/wrap: The old barely started "wrapping"
and "connectivity" code. This isn't currently used, so it can be
ignored.
There is tons o' commenting, but if stuff isn't clear, please feel
free to post. Any comments/criticism are highly encouraged. I
apologize, I'm having trouble getting any of the docstring processing
programs to work without complaining, so there isn't any nice api
documentation like there should be.
Okay, the rest of this has to do with problems I'm having with the
socket connection between the front and back. Basically, I'm having 3
issues:
1. Speed: Both the database and filesystem container views come up
*really* slowly. This is due (I think) to all the extra dom/xml
generation, and also the lag time waiting for the front.
2. Password passing: I've been passing around passwords for databases
in an encrypted format (using the rotor module in the standard
distribution). When encrypted, a password is a jumble of random
characters. The problem I'm having is in passing these through the
socket. When the server receieves a message, it receieves it in small
pieces of strings, and then adds them up (until it gets a newline, the
end of message signal). The problem is that python doesn't like to add
the weird characters generated in the encryption, and so complains
when it tries to add these.
3. Data passing: One thing which we haven't talked about, although I
should have thought of it before, is how to pass a large amount of
"unstructured info" between the front and the middle. For instance,
how should I pass back the columns and row information for a database?
If I format this as XML, this will take impossibly forever for
large tables (which I have quite a few of in my databases), but I
can't think of another way way to pass info cleanly and reusably.
Does anyone have any thoughts on fixes for these problems?
Suggestions? Am I misssing something simple?
Thanks for reading!
Brad
From chapmanb at arches.uga.edu Tue Mar 14 11:59:04 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
Message-ID: <200003141702.MAA110152@archa12.cc.uga.edu>
Hey all;
Thanks for the interesting discussions on collaborations. I'm very
excited to see this happening. I'll let you all do the decision making
for most of the design issues, since you've all got lots of excellent
design ideas and I'm basically just a coding monkey :-)
I'd be more than happy to help in any way I can, which includes
both doing GUI/front end stuff in python and helping with the GMS
stuff in C. I'll probably be pretty sad in C at first, since I only
have C++ experience, and all I know about C is from staring at other
people's code, but I'm willing to work on it :) I'll be spending some
time looking at both GMS and Overflow code over the next few days and
trying to think of how we can integrate stuff with maximum reuse of
existing code (definately a worthy goal). We have lots of choices
for integrating the three languages, and hopefully we can do it
cleanly.
Anyways, that's my short 2 cents....
Brad
From jean-marc.valin at hermes.usherb.ca Tue Mar 14 13:20:29 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: [Fwd: [Pipet Devel] Re: Overflow/Loci/GMS collaboration]
References: <38CE50AC.EC48D4A@geoserve.net>
Message-ID: <38CE82ED.39CCB98@hermes.usherb.ca>
> I read the Overflow documentation, and I'm not very enthousiastic about it. I think
Unfortunatly, the doc is not totally up-to-date and mostly does not reflect wat
*could* be done with Overflow.
> it's structures are to small, it's more suiteble for realtime processing as it is for
> application intergration. Using the Overflow core will requere a lot of
> configurartion before it can do something usefull, even when on got a lot 'subnets'.
> Also its components wont be manageble, they will be in the system in too great
> numbers for a security\authentication system to handle. 2ndly, as I memtioned before
> in some emails, I think nodes of different 'types' wont be as powerfull as a general
> object type, even when this general type has more cpu\memory overhead. Modern C
Don't confuse node types and data types. Node types just means what the node
does (FFT, OR, IF, exec, ...). You need them (Though if you want to run an app,
you can use the "Exec" node). As for the data types, they all derive from a base
object class, so every node have Objects as inputs and outputs. We use real-time
type identification in nodes to make sure that the inputs are the right type
(eg. the FFT node expects its input to be a vector, otherwise it'll throw an
exception). Out Object type is very similar to Glib's Object, except that we use
some C++ features to do the reference counting and casting automatically
(instead of gtk_object_ref or GTK_OBJECT()).
> programming libraries, like Glib, will greatly remove this overhead anyway. And 3thly
> I dont really like the way Overflow enforces high speed and high configuarability;
> these features should mainly remain inside the wrapped applications themselfs. GMS
> (and also Loci) want to accomplish 'Application Intergration", they dont want to be
> "Doing the work themselfs".
> Having the structures of Overflow inside nodes does make sense, this way it offers a
> methode for writing nodes\plugins in a 'scripting' language. 4thly the gms core is
> gonna be very fast: too, it already executes binairy code instead of some form of
> scripting and I'm gonnan optimize the dataflow prosessor a lot. So there's no need
> to chose the "overflow way' for speed reasons.
When I say fast, I mean that Overflow is capable of running ~50,000 simple nodes
per second - and that's barely enough for what I do (we're working on making it
faster). Just a fork or opening a socket is orders of magnitude too slow.
Also considering remote execution, it's a nice thing to have, but it's not
something you're going to use all the time. I wonder what a simple RSH node (~15
minutes to code) in Overflow could do...
As for the name, vsh (although it exists - but dead) would be nice... Besides
that, the reason we chose Overflow is that ObjectFlow, gFlow, VisualFlow, ...
were all taken.
Jean-Marc
From bizzaro at geoserve.net Tue Mar 14 16:56:26 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Overflow/Messaging/Loci alliance mailing list
References: <38CDAD1A.78B3BC52@geoserve.net> <38CDDBEA.566BEB9F@redpoll.pharmacy.ualberta.ca> <38CE565F.FFC31F55@geoserve.net> <38CE5BFD.92A90DD5@casema.net> <38CE5FF1.AE10258A@geoserve.net> <38CE646B.8E1D946C@redpoll.pharmacy.ualberta.ca>
Message-ID: <38CEB58A.A051F122@geoserve.net>
Gary Van Domselaar wrote:
>
> Its a little ambiguously (gay ;-). bonobo is associated with
> application integration (as in component software integration). We are
> dealing with data connectivity brokering, so perhaps to keep some kind
> of data reference in the title? Petty bickering I know, but first
> impressions are lasting ones!
Then how about...
Application Integration and Development Environment
AIDE
?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 14 17:11:36 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: [Fwd: [Pipet Devel] Re: Overflow/Loci/GMS collaboration]
References: <38CE50AC.EC48D4A@geoserve.net> <38CE82ED.39CCB98@hermes.usherb.ca>
Message-ID: <38CEB918.BA6C03DA@geoserve.net>
Jean-Marc Valin wrote:
>
> Also considering remote execution, it's a nice thing to have, but it's not
> something you're going to use all the time.
You might not need remote execution for AI/robotics, but it is critical for
computational biology.
I think rather than some sort of homogenization of our projects, we'd be
better off distinguishing application integration and application
development. GMS/Loci can handle the first, and Overflow can handle the
second. This is item 1) from before, which you said is trivial. But
considering issues of authentication/security that Jarl brought up, issues of
Internet-awareness that I brought up, and issues of speed/performance that you
brought up, it may be an insurmountable task trying to get Overflow to do all
of this. In any case, making Overflow's core 'the' core would leave very
little left of the GMS project...and I think that's why Jarl is feeling a bit
jilted.
> As for the name, vsh (although it exists - but dead) would be nice... Besides
> that, the reason we chose Overflow is that ObjectFlow, gFlow, VisualFlow, ...
> were all taken.
We could use...
GNU VSH
like 'New VSH'.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 14 17:11:57 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <200003141702.MAA110152@archa12.cc.uga.edu>
Message-ID: <38CEB92D.8172D2A3@casema.net>
>
> I'd be more than happy to help in any way I can, which includes
> both doing GUI/front end stuff in python and helping with the GMS
> stuff in C. I'll probably be pretty sad in C at first, since I only
> have C++ experience, and all I know about C is from staring at other
> people's code, but I'm willing to work on it :)
Good attitude, and C isn't hard. I've commented the gms code heavily, but
feel free to ask, it's gonna be hard to get the global picture I guess.
bye,
jarl
From jarl at casema.net Tue Mar 14 17:32:47 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Overflow/Loci/GMS collaboration
References: <38CE50AC.EC48D4A@geoserve.net> <38CE82ED.39CCB98@hermes.usherb.ca>
Message-ID: <38CEBE0F.2A6CF97E@casema.net>
> Unfortunatly, the doc is not totally up-to-date and mostly does not reflect wat
> *could* be done with Overflow.
I know, I've some Cellulair Automata knowledge and overflow seems to be based upon these.
A program based upon the Turing set, iterations and selection can do everything. Wether
this building blocks are fitted for a production environment is something else. I'm not
denying Overflow's way of implementing nodes, but I'm pointing at things outside a
scientific setup. A desktop system must be secure and stable too.
The only limitation I'm proposing is: Only use subnets, do not use seperate Overflow
nodes.
The overhead this will give is very slim, only 4 dataflow processing cicles. (Sensoring,
piping, subnet-execution and visualising), and believe me: the DFP is gonna be very fast,
I'll write it in assembler I that's what is takes to please you :-)
The wrapping will mostly take place at the authentication moment, which is gonna be once
at load time for a node. After registration nodes are trusted and will be executed without
delay.
>
> Don't confuse node types and data types. Node types just means what the node
> does (FFT, OR, IF, exec, ...). You need them (Though if you want to run an app,
> you can use the "Exec" node). As for the data types, they all derive from a base
> object class, so every node have Objects as inputs and outputs. We use real-time
> type identification in nodes to make sure that the inputs are the right type
> (eg. the FFT node expects its input to be a vector, otherwise it'll throw an
> exception). Out Object type is very similar to Glib's Object, except that we use
> some C++ features to do the reference counting and casting automatically
> (instead of gtk_object_ref or GTK_OBJECT()).
I see. It's probably best that I firstly have a detailed look at the overflow code before
I'll have anymore comments on it.
> When I say fast, I mean that Overflow is capable of running ~50,000 simple nodes
> per second - and that's barely enough for what I do (we're working on making it
> faster). Just a fork or opening a socket is orders of magnitude too slow.
If I may ask: where do you need it for?
maybe it's just too much out of reach to combine with gms's objectives after all :(
bye,
jarl
From bizzaro at geoserve.net Tue Mar 14 17:48:26 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <200003141702.MAA110152@archa12.cc.uga.edu> <38CEB92D.8172D2A3@casema.net>
Message-ID: <38CEC1BA.6DC78FF6@geoserve.net>
jarl van katwijk wrote:
>
> >
> > I'd be more than happy to help in any way I can, which includes
> > both doing GUI/front end stuff in python and helping with the GMS
> > stuff in C. I'll probably be pretty sad in C at first, since I only
> > have C++ experience, and all I know about C is from staring at other
> > people's code, but I'm willing to work on it :)
>
> Good attitude, and C isn't hard. I've commented the gms code heavily, but
> feel free to ask, it's gonna be hard to get the global picture I guess.
Brad, providing we all agree that the core will be based on GMS and coded in
C, you will want to give GMS much of the functionality we designed for Loci:
* XML command stream between GUI (front) and core (middle) ??? (unless we
use CORBA)
* Network (workflow diagram) script construction (in XML database?)
* Network script manipulation
* Directory services (like DNS - know what is where)
* Request/comply and send/receive communication between cores
We would need to integrate this with what GMS already has (if it does not
already have some of these). Some of the plugin and security/authentication
issues are things Loci has not considered.
If we agreed on this, I'd be happy. And I think if Overflow needs little work
to be integrated into this system, perhaps there are some GMS/Loci problems
Jean-Marc and Dominic could address and solve through contributed code.
Overflow is probably the most advanced (computer science-wise) of the systems,
so there is much that can be gleaned and used in a GMS-based core. And
sharing technologies would help to tightly integrate our projects.
Thoughts?
Jarl, if Overflow were to be used as a node in a GMS/Loci core, would that
solve the authentication/security issues for you?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 14 17:54:20 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: [Fwd: [Pipet Devel] Re: Overflow/Loci/GMS collaboration]
References: <38CE50AC.EC48D4A@geoserve.net> <38CE82ED.39CCB98@hermes.usherb.ca> <38CEB918.BA6C03DA@geoserve.net>
Message-ID: <38CEC31B.B2BEEA04@casema.net>
"J.W. Bizzaro" wrote:
> Jean-Marc Valin wrote:
> >
> > Also considering remote execution, it's a nice thing to have, but it's not
> > something you're going to use all the time.
>
> You might not need remote execution for AI/robotics, but it is critical for
> computational biology.
>
> I think rather than some sort of homogenization of our projects, we'd be
> better off distinguishing application integration and application
> development. GMS/Loci can handle the first, and Overflow can handle the
> second. This is item 1) from before, which you said is trivial. But
> considering issues of authentication/security that Jarl brought up, issues of
> Internet-awareness that I brought up, and issues of speed/performance that you
> brought up, it may be an insurmountable task trying to get Overflow to do all
> of this. In any case, making Overflow's core 'the' core would leave very
> little left of the GMS project...and I think that's why Jarl is feeling a bit
> jilted.
>
hehe, just a little bit :) But mostly I'm defending my idears..
Also when the Overflow project aint going to collaborate, I'll still watch them
very regulairly and I surtainly will think a lot more about how to do wrapping of
sub nets of overflow-type nodes inside a gms\loci node. Because it add new
features without breaking the security \ locationing \ etc.
From bizzaro at geoserve.net Tue Mar 14 18:01:40 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Overflow/Loci/GMS collaboration
References: <38CE50AC.EC48D4A@geoserve.net> <38CE82ED.39CCB98@hermes.usherb.ca> <38CEBE0F.2A6CF97E@casema.net>
Message-ID: <38CEC4D4.3C05BC0C@geoserve.net>
jarl van katwijk wrote:
>
> If I may ask: where do you need it for?
> maybe it's just too much out of reach to combine with gms's objectives after all :(
We have to start thinking of Overflow and GMS/Loci as two different
applications that can be used together. Overflow is for APPLICATION
DEVELOPMENT and GMS/Loci are for APPLICATION INTEGRATION.
And if we look at Overflow as being an APPLICATION too, we can run Overflow
WITHIN GMS/Loci.
I think we could consider any unspecified application running under GMS/Loci
as a blank slate for an Overflow application to be developed. Imagine
Overflow running in a windowlet within GMS/Loci, as depicted in this
screenshot:
http://bioinformatics.org/loci/documentation/screenshots/latest.gif
We can make the workspaces look and work almost exactly alike so that you
wouldn't know Overflow is a separate application! I can do that!
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 14 18:09:55 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: [Fwd: [Pipet Devel] Re: Overflow/Loci/GMS collaboration]
References: <38CE50AC.EC48D4A@geoserve.net> <38CE82ED.39CCB98@hermes.usherb.ca> <38CEB918.BA6C03DA@geoserve.net> <38CEC31B.B2BEEA04@casema.net>
Message-ID: <38CEC6C3.4EE64EED@geoserve.net>
jarl van katwijk wrote:
>
> hehe, just a little bit :) But mostly I'm defending my idears..
> Also when the Overflow project aint going to collaborate, I'll still watch them
> very regulairly and I surtainly will think a lot more about how to do wrapping of
> sub nets of overflow-type nodes inside a gms\loci node. Because it add new
> features without breaking the security \ locationing \ etc.
I don't believe Jean-Marc wants to bulldoze your code and ideas. I think he
just saw Overflow has possibly being able to handle the role of application
integrator. Again, we should consider GMS and Overflow as separate
applications, but applications that share a lot of technology. You even
admitted that there are some Overflow features that you like and would want to
have for GMS.
Is there anything wrong with the idea that Overflow and GMS can run together
yet be perfectly usable without each other?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 14 18:12:17 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <200003141702.MAA110152@archa12.cc.uga.edu> <38CEB92D.8172D2A3@casema.net> <38CEC1BA.6DC78FF6@geoserve.net>
Message-ID: <38CEC751.63959AA1@casema.net>
>
> Brad, providing we all agree that the core will be based on GMS and coded in
> C, you will want to give GMS much of the functionality we designed for Loci:
>
> * XML command stream between GUI (front) and core (middle) ??? (unless we
> use CORBA)
Use corba to transport the XML data? This supports having multiple 'clients'
attached to the core (DFP, or dataflow prosessor) even remotely across a network.
I suggest that communication between cores takes place by extending the pipeline
functionality by a sharing ability.
All other points are already started or are fine to me. XML is the mayor item gms
is missing.
> If we agreed on this, I'd be happy. And I think if Overflow needs little work
> to be integrated into this system, perhaps there are some GMS/Loci problems
> Jean-Marc and Dominic could address and solve through contributed code.
> Overflow is probably the most advanced (computer science-wise) of the systems,
> so there is much that can be gleaned and used in a GMS-based core. And
> sharing technologies would help to tightly integrate our projects.
Agree completely.
But first everybody should have a good look at each others code\situation. I
might be better to do some more work seperately before any intergration attempt
is done.
I want to complete verson 0.4.0 which will take about 1-2 weeks.
bye,
jarl
From jarl at casema.net Tue Mar 14 18:16:46 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Overflow/Loci/GMS collaboration
References: <38CE50AC.EC48D4A@geoserve.net> <38CE82ED.39CCB98@hermes.usherb.ca> <38CEBE0F.2A6CF97E@casema.net> <38CEC4D4.3C05BC0C@geoserve.net>
Message-ID: <38CEC85E.7C216F92@casema.net>
> >
> > If I may ask: where do you need it for?
> > maybe it's just too much out of reach to combine with gms's objectives after all :(
>
> We have to start thinking of Overflow and GMS/Loci as two different
> applications that can be used together. Overflow is for APPLICATION
> DEVELOPMENT and GMS/Loci are for APPLICATION INTEGRATION.
>
got your point
>
> We can make the workspaces look and work almost exactly alike so that you
> wouldn't know Overflow is a separate application! I can do that!
>
ok
I could technically solve this by dynamically loading a overflow binairy into the
'procedure' space of a messaging-object.
From bizzaro at geoserve.net Tue Mar 14 18:23:01 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net>
<38CDBEC7.6C48A3C7@hermes.usherb.ca> <38CDD93B.762E508F@geoserve.net> <38CDE41F.5A263F64@hermes.usherb.ca>
Message-ID: <38CEC9D5.1F43ED68@geoserve.net>
Jean-Marc Valin wrote:
>
> > > 1) Wrap all Overflow as a Loki/GMS node
> > > 2) Use Overflow's core and implement the missing functionnalities.
>
> OK, let's talk about 2) (I consider 1 to be trivial).
I think you would be surprised that if we consider 1), many interoperability
issues will arise.
Plus, I don't think Jarl is willing to even consider 2) :-)
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From chapmanb at arches.uga.edu Tue Mar 14 18:19:09 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
In-Reply-To: <38CEC1BA.6DC78FF6@geoserve.net>
Message-ID:
> jarl van katwijk wrote:
> > Good attitude, and C isn't hard. I've commented the gms code heavily, but
> > feel free to ask, it's gonna be hard to get the global picture I guess.
It took me a while to get the hang of Loci's big picture, so I expect I'll
have similar issues with GMS (and Overflow) but it'll come eventually! I'm
really excited to try a lot of the things your propose, especially the
neural net/genetic algorithm idea for generating a best overall flow path
though a diagram. Very cool.
J.W. Bizzaro wrote:
> Brad, providing we all agree that the core will be based on GMS and coded in
> C, you will want to give GMS much of the functionality we designed for Loci:
>
> * XML command stream between GUI (front) and core (middle) ??? (unless we
> use CORBA)
> * Network (workflow diagram) script construction (in XML database?)
> * Network script manipulation
> * Directory services (like DNS - know what is where)
> * Request/comply and send/receive communication between cores
What I'd like to think about doing is keeping the small middle that we
already have in python, and then building the core off of this using
CORBA. Some of the reasons I would like to try this are:
1. Reuse of code: I'm not too pumped to be reprogramming the same stuff in
C (Python to C converters excluded).
2. Ease of building fronts: While the GMS core has a better suited design
for implementing data connectivity etc, it's CORBA idl is huge, and would
(IMHO) discourage people from developing fronts because they would need to
implement a large interface. This may also be a problem if we need to
adjust the middle, as the prospect of breaking a whole bunch of fronts is
really messy. While I think it will be a challenge to map the "simple"
streaming XML dialog communication between the front to the middle that we
currently have to GMS's messaging object based core, I hope it might be
possible. In addition, if we are going to be using XML, python has *a lot*
of great tools for working with it, and so we might be able to use tools
from both python and C for the core. How does this sound? Possible? Am I
smoking crack?
Brad
From jarl at casema.net Tue Mar 14 18:24:08 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CD4D12.874E3807@geoserve.net> <38CD52F6.7462D936@hermes.usherb.ca> <38CDB5F8.90F6A49@geoserve.net>
<38CDBEC7.6C48A3C7@hermes.usherb.ca> <38CDD93B.762E508F@geoserve.net> <38CDE41F.5A263F64@hermes.usherb.ca> <38CEC9D5.1F43ED68@geoserve.net>
Message-ID: <38CECA18.A0AD9671@casema.net>
>
> Plus, I don't think Jarl is willing to even consider 2) :-)
also 2) will cost me a lot more time :)
From chapmanb at arches.uga.edu Tue Mar 14 18:27:28 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: [Fwd: [Pipet Devel] Re: Overflow/Loci/GMS collaboration]
In-Reply-To: <38CEC31B.B2BEEA04@casema.net>
Message-ID:
On Tue, 14 Mar 2000, jarl van katwijk wrote:
> hehe, just a little bit :) But mostly I'm defending my idears..
> Also when the Overflow project aint going to collaborate, I'll still watch them
> very regulairly and I surtainly will think a lot more about how to do wrapping of
> sub nets of overflow-type nodes inside a gms\loci node. Because it add new
> features without breaking the security \ locationing \ etc.
I would personally really like to see Overflow, GMS and Loci all coming
together. For my personal use, I would really be interested in having a
mechanism for wrapping "smaller" objects than just programs. While you may
not often want to pipe these small objects over internet connections, you
may way to combine a whole bunch of local small objects, and pipe the
output to another object on a different machine. This is where a
combination of all three programs really makes a lot of sense to me.
For those on the list interested in bioinformatics stuff, I'm
specifically thinking of the bioperl/biojava/biopython projects which have
a combined idl specifying a general set of functions for all three
projects. Wrapping these functions seems like something Overflow is
ideally suited to do, while GMS and Loci don't address such small data
structures.
For such a powerful system as we all are proposing, we really need
to include both small and large structures, or I think we'll be sorry
later. Another 2 cents.
Brad
From bizzaro at geoserve.net Tue Mar 14 18:58:41 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:22 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <200003141702.MAA110152@archa12.cc.uga.edu> <38CEB92D.8172D2A3@casema.net> <38CEC1BA.6DC78FF6@geoserve.net> <38CEC751.63959AA1@casema.net>
Message-ID: <38CED231.65D65D23@geoserve.net>
jarl van katwijk wrote:
>
> Use corba to transport the XML data?
We could, but Brad has some good points about continuing the use of Loci's
command stream for core-to-GUI communication. This API allows...
* Fronts to be made in any language, without the use of an IDL
* Multiple fronts to read and respond to the core SIMULTANEOUSLY
* The command stream to be saved and then recalled at a later time
(and have an 'instant-replay' feature!)
* The front(s) and core to be separated via simple Internet socket
And I don't think GMS's API for core-to-GUI communication will have to be
changed. Brad can probably plug Loci's mechanism for core-to-front
communication directly into GMS. We'll see.
> This supports having multiple 'clients'
> attached to the core (DFP, or dataflow prosessor) even remotely across a network.
Can one client replicate the actions of another client that is operated by the
user? For example, the user connects 2 lines in one client and a second
client does the same exact thing ON ITS OWN.
You see, this is important to Loci, because we want to have a console-based
client that can control the GUI client. Fo instance, the user could type...
"connect node 3728 to node 4578"
And the GUI would do it. Better yet, with speech recognition (maybe Jean-Marc
can help with this), a user (perhaps a blind user) can speak...
"connect node 3728 to node 4578"
And the GUI would do it! How does this sound to you?
> I suggest that communication between cores takes place by extending the pipeline
> functionality by a sharing ability.
Hmmm. I like the idea in Loci of self-referencing (recursive) cores. Could
we do that?
> All other points are already started or are fine to me. XML is the mayor item gms
> is missing.
Well, you're lucky to have Brad help then. He's a whiz when it comes to XML.
BTW, Overflow and Loci take VERY similar approaches to the use of XML. It
would be nice if we all standardized...maybe even just for the sake of
neatness and comprehension.
> But first everybody should have a good look at each others code\situation. I
> might be better to do some more work seperately before any intergration attempt
> is done. I want to complete verson 0.4.0 which will take about 1-2 weeks.
Yeah, I think we need some time to look at each other's ideas, plus a
cooling-down period :-) I want to re-package and post some of Loci's more
important ideas in that time too.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 14 19:08:28 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Re: [Fwd: [Pipet Devel] Re: Overflow/Loci/GMS collaboration]
References:
Message-ID: <38CED47C.9A897FCC@geoserve.net>
Brad Chapman wrote:
>
> I would personally really like to see Overflow, GMS and Loci all coming
> together. For my personal use, I would really be interested in having a
> mechanism for wrapping "smaller" objects than just programs. While you may
> not often want to pipe these small objects over internet connections, you
> may way to combine a whole bunch of local small objects, and pipe the
> output to another object on a different machine.
Yes! This is exactly what we could do by making Overflow an APPLICATION
DEVELOPMENT NODE! Overflow even has a nice way to generate command-lines for
those 'unspecified' or 'unknown' applications that we come across (we can use
Overflow to give us simple connectivity).
Or, hey, how about this: The plugin/wrapper needed to run a specific
application under GMS can be constructed or specified using Overflow?!
> This is where a
> combination of all three programs really makes a lot of sense to me.
> For those on the list interested in bioinformatics stuff, I'm
> specifically thinking of the bioperl/biojava/biopython projects which have
> a combined idl specifying a general set of functions for all three
> projects. Wrapping these functions seems like something Overflow is
> ideally suited to do, while GMS and Loci don't address such small data
> structures.
Right!
> For such a powerful system as we all are proposing, we really need
> to include both small and large structures, or I think we'll be sorry
> later. Another 2 cents.
Exactly! Gee I really like this kid :-)
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 14 19:13:20 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References:
Message-ID: <38CED5A0.EC51982B@geoserve.net>
Brad Chapman wrote:
>
> What I'd like to think about doing is keeping the small middle that we
> already have in python, and then building the core off of this using
> CORBA. Some of the reasons I would like to try this are:
>
> 1. Reuse of code: I'm not too pumped to be reprogramming the same stuff in
> C (Python to C converters excluded).
For now. We'll have to see how much Jarl likes or dislikes a heterogeneous
programming environment.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 14 19:16:44 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Re: [Fwd: [Pipet Devel] Re: Overflow/Loci/GMS collaboration]
References: <38CED47C.9A897FCC@geoserve.net>
Message-ID: <38CED66C.5CBBFE41@geoserve.net>
"J.W. Bizzaro" wrote:
>
> Or, hey, how about this: The plugin/wrapper needed to run a specific
> application under GMS can be constructed or specified using Overflow?!
Then every node would run through Overflow. GMS could provide the
authentication/security before handing the dataflow to Overflow. And we
wouldn't get a performance hit, because Overflow is so fast.
How does this sound?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 14 19:31:10 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Re: [Fwd: [Pipet Devel] Re: Overflow/Loci/GMS collaboration]
References: <38CED47C.9A897FCC@geoserve.net> <38CED66C.5CBBFE41@geoserve.net>
Message-ID: <38CED9CE.89AFED83@geoserve.net>
"J.W. Bizzaro" wrote:
>
> Then every node would run through Overflow. GMS could provide the
> authentication/security before handing the dataflow to Overflow. And we
> wouldn't get a performance hit, because Overflow is so fast.
>From a Loci GUI point of view, every GMS-node would contain a minimum of 1
Overflow-node. If no interface/widget is specified by the system, the
GMS-node's windowlet would contain an Overflow-workspace with exactly 1
Overflow-node.
If an interface/widget is specified (via GLADE XML or Bonobo), the
Overflow-workspace can be 'replaced' by that interface/widget. This is a Loci
GUI idea we've had for a while: The user can switch back and forth between
workspace and interface/widget. And the heirarchy of nodes in a network
determines the placement of widgets in the interface. This may be hard to
grasp, so I'll post some more about it later.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 14 20:59:33 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Re: [Fwd: [Pipet Devel] Re: Overflow/Loci/GMS collaboration]
References: <38CED47C.9A897FCC@geoserve.net> <38CED66C.5CBBFE41@geoserve.net> <38CED9CE.89AFED83@geoserve.net>
Message-ID: <38CEEE85.B27E2EA@geoserve.net>
"J.W. Bizzaro" wrote:
>
> If no interface/widget is specified by the system, the
> GMS-node's windowlet would contain an Overflow-workspace with exactly 1
> Overflow-node.
Let me reword that:
If a GMS-node does NOT represent an existing application, the GMS-node's
windowlet would contain an empty Overflow-workspace.
If a GMS-node DOES represent an existing application, the GMS-node's windowlet
would contain an Overflow-workspace with a network of Overflow-nodes visible.
If an interface/widget is NOT specified by the network of Overflow-nodes, the
GMS-node's windowlet would contain an Overflow-workspace with a network of
Overflow-nodes visible.
If an interface/widget IS specified by the network of Overflow-nodes, the
GMS-node's windowlet would show that interface/widget (and be able to switch
between network and interface/widget views).
...
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Wed Mar 15 02:39:13 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Overflow/Loci/GMS
References: <200003141702.MAA110152@archa12.cc.uga.edu> <38CEB92D.8172D2A3@casema.net> <38CEC1BA.6DC78FF6@geoserve.net> <38CEC751.63959AA1@casema.net> <38CED231.65D65D23@geoserve.net>
Message-ID: <38CF3E20.5723B348@casema.net>
>
> > This supports having multiple 'clients'
> > attached to the core (DFP, or dataflow prosessor) even remotely across a network.
>
> Can one client replicate the actions of another client that is operated by the
> user? For example, the user connects 2 lines in one client and a second
> client does the same exact thing ON ITS OWN.
>
Race exceptions, they should be handled. Also when some day there's support added for
shareing between instances.
> can help with this), a user (perhaps a blind user) can speak...
>
> "connect node 3728 to node 4578"
>
> And the GUI would do it! How does this sound to you?
Very very nice :)
>
> Hmmm. I like the idea in Loci of self-referencing (recursive) cores. Could
> we do that?
Self referencing nodes?
From jarl at casema.net Wed Mar 15 02:42:47 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CED5A0.EC51982B@geoserve.net>
Message-ID: <38CF3EF7.99F72734@casema.net>
> > What I'd like to think about doing is keeping the small middle that we
> > already have in python, and then building the core off of this using
> > CORBA. Some of the reasons I would like to try this are:
> >
> > 1. Reuse of code: I'm not too pumped to be reprogramming the same stuff in
> > C (Python to C converters excluded).
>
> For now. We'll have to see how much Jarl likes or dislikes a heterogeneous
> programming environment.
>
That's depending on the technical possibilities mostly. I'll try to get
familiair with python-C hooks, I cant judge the possibilities right now. Anyone
knows more about this?
From bizzaro at geoserve.net Wed Mar 15 06:44:00 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38CED5A0.EC51982B@geoserve.net> <38CF3EF7.99F72734@casema.net>
Message-ID: <38CF7780.83623634@geoserve.net>
jarl van katwijk wrote:
>
> > > What I'd like to think about doing is keeping the small middle that we
> > > already have in python, and then building the core off of this using
> > > CORBA. Some of the reasons I would like to try this are:
[...]
> That's depending on the technical possibilities mostly. I'll try to get
> familiair with python-C hooks, I cant judge the possibilities right now. Anyone
> knows more about this?
In any case, what we need to do is have Overflow and GMS use THE SAME
core-to-GUI API. Or at least something very similar. That just makes it
easier for people working on the GUI, since we really need 2 GUIs that work
alike: one for Overflow and one for GMS. This should be one 'point of
agreement'. We need to make a whole list of these.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jturner at raba.com Wed Mar 15 07:34:04 2000
From: jturner at raba.com (Jeff Turner)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] orbit/python bindings (was Re: [Pipet Devel] GMS)
Message-ID: <38CF833B.8E8D50E1@raba.com>
> ...
> BTW, do you know of anyone working on Python bindings to Bonobo? I
saw Miguel
> de Icaza speek last week and give a demo of Bonobo. He showed an 'SVG
Bonobo
> component'. I think this would be great to use for visuals, but we
need the
> Python bindings to do it.
> ...
the following message came across the bonobo mailing list yesterday,
and shows how you can use omniORBPy and a cvs version of bonobo to
script gnumeric (the gnome spreadsheet)
------- Forwarded Message
Date: Tue, 14 Mar 2000 21:10:46 +0100
From: Jon K Hellan
To: gnome-components-list@gnome.org
Subject: Scripting with Python and omniORB
Hi,
I've made some experiments with Gnome CORBA objects and omniORB for
Python. omniORB is fast, even with Python, as you kan see in a
separate article.
omniidl is the idl compiler of omniORB. To compile Gnome IDL and
produce Python stubs and skeletons, you need the following flags:
omniidl -bpython -Wbinline
I used the latest omniORBpy with the official omniORB 2.8.0
release. According to the announcement, omniORB 3.0 should now also
work.
You need the latest Bonobo from CVS: We used some constructs which
weren't standard, and omniORB is strict about checking. The IDL in CVS
is now compatible with omniORB.
The Gnorba authentication mechanism isn't portable, so in order to
experiment with a "foreign" ORB, you have to disable authentication. I
hacked gnome_ORBit_request_validate in gnome-libs/libgnorba/orbitgtk.c
to always return ORBIT_MESSAGE_ALLOW_ALL. This is something you only
want to do behind a firewall where you can trust everybody.
Here's a small script to walk the naming tree, and a script to
exercise Gnumeric. You have to write the IOR of the gnome name service
to /tmp/naming.ref before trying these scripts. And you must change
the file name given to factory.read() in the Gnumeric script.
Jon K??re
- --
- --
#!/usr/bin/env python
# nsbrowse.py
#
# Author: Jon K Hellan
#
# Do what you wish with this script. No warranties - if it breaks, you
get
# keep both pieces.
"""Script to walk the naming tree of a CORBA name service.
Uses omniORBpy. Can locate the Gnome Name Service."""
# Standard/built-in modules.
import sys
# omniORB modules.
from omniORB import CORBA
import CosNaming
## gnames find the Gnome Name Service in the same way as gnome apps do.
#try:
# import gnames
#except:
# print """Did not find the "gnames" extension module.
#Use orb.resolve_initial_references or read the IOR from a file."""
def name_to_string(name):
"""Convert CosNaming Name to a list of (id, kind) tuples."""
res = []
for i in range(len(name)):
binding_name = name[i]
res = res + [(binding_name.id, binding_name.kind)]
return `res`
def walk(sofar, nameservice, visitor):
"""Walk the naming tree. Call visitor at object nodes."""
(bl, bi) = nameservice.list(10000)
print "%d bindings at naming context %s" % (len(bl),
name_to_string(sofar))
print "binding iterator: " + `bi`
for i in range(len(bl)):
binding = bl[i]
try:
obj = nameservice.resolve(binding.binding_name)
except CosNaming.NamingContext.NotFound:
print "Could not find %s" % name_to_string(sofar
+
binding.binding_name)
continue
if binding.binding_type is CosNaming.ncontext:
walk(sofar + binding.binding_name, obj, visitor)
else:
visitor(sofar, binding, obj)
def walk_print(nameservice):
"""Walk the naming tree. Print object nodes."""
def printit(sofar, binding, obj):
"""Print object node."""
print name_to_string(sofar + binding.binding_name)
print obj
walk([], nameservice, printit)
# Initialise the ORB.
orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID)
# Locate the name service.
# This is how it's supposed to work:
#nameservice=orb.resolve_initial_references("NameService")
# This is the last resort - have the name server write IOR to file.
ior = open("/tmp/naming.ref").read()
# This works with the Gnome name service and the 'gnames' extension
module.
#ior = gnames.get_ior()
nameservice = orb.string_to_object(ior)
# Breaks with normal libgnorba:
walk_print(nameservice)
- --
#!/usr/bin/env python
# gntest.py
#
# Author: Jon K Hellan
#
# Do what you wish with this script. No warranties - if it breaks, you
get
# keep both pieces.
"""Script to explore the CORBA interface of Gnumeric.
Uses omniORBpy.
Gnome uses an authentication mechanism for CORBA interactions which only
works with the ORBit ORB. To use other ORBs, you have to disable
authentication. Change gnome_ORBit_request_validate in
gnome-libs/libgnorba/orbitgtk.c to always return
ORBIT_MESSAGE_ALLOW_ALL.
Needless to say, you should only do this if trust *everybody* who can
access your system.
"""
# Standard/built-in modules.
import sys
# omniORB modules.
from omniORB import CORBA
import CosNaming
import GNOME
## gnames find the Gnome Name Service in the same way as gnome apps do.
#try:
# import gnames
#except:
# print """Did not find the "gnames" extension module.
#Use orb.resolve_initial_references or read the IOR from a file."""
def name_to_string(name):
"""Convert CosNaming Name to a list of (id, kind) tuples."""
res = []
for i in range(len(name)):
binding_name = name[i]
res = res + [(binding_name.id, binding_name.kind)]
return `res`
# Initialise the ORB.
orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID)
# Locate the name service.
# This is how it's supposed to work:
#nameservice=orb.resolve_initial_references("NameService")
# This is the last resort - have the name server write IOR to file.
ior = open("/tmp/naming.ref").read()
## This works with the Gnome name service and the 'gnames' extension
module.
#ior = gnames.get_ior()
nameservice = orb.string_to_object(ior)
def resolve_goad_object(nameservice, id):
"""Resolve a name with the standard Gnome prefix."""
nc = CosNaming.NameComponent
prefix = [nc('GNOME', 'subcontext'), nc('Servers', 'subcontext')]
name = prefix + [nc(id, 'object')]
return nameservice.resolve(name)
# Breaks with normal libgnorba:
#walk_print(nameservice)
try:
factory = resolve_goad_object(nameservice,
'GOADID:GNOME:Gnumeric:WorkbookFactory:1.0')
except CosNaming.NamingContext.NotFound:
print 'Gnumeric not found'
sys.exit()
#Other exceptions ...
if not factory._is_a('IDL:GNOME/Gnumeric/WorkbookFactory:1.0'):
raise 'This is not a Gnumeric WorkbookFactory'
newbook = factory.read("/home/jk/tmp/test.gnumeric")
sc=newbook.sheet_current()
sc.cursor_set(4, 4, 1, 1, 5, 5)
sc.make_cell_visible(4, 500)
sc.cursor_move(3, 500)
sc.cursor_move(1, 1)
sc.make_cell_visible(1, 1)
sc.make_cell_visible(0, 0)
v=GNOME.Gnumeric.Value(GNOME.Gnumeric.VALUE_FLOAT, 1)
sc.cell_set_value(1, 1, v)
v=GNOME.Gnumeric.Value(GNOME.Gnumeric.VALUE_BOOLEAN, 1)
sc.cell_set_value(1, 3, v)
v=GNOME.Gnumeric.Value(GNOME.Gnumeric.VALUE_FLOAT, 3.1415926)
sc.cell_set_value(1, 4, v)
- --
FAQ: Frequently-Asked Questions at http://www.gnome.org/gnomefaq
To unsubscribe: mail gnome-components-list-request@gnome.org
with
"unsubscribe" as the Subject.
------- End of Forwarded Message
From bizzaro at geoserve.net Wed Mar 15 07:50:09 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
Message-ID: <38CF8701.B8729187@geoserve.net>
Greetings.
I thought we should try to come to an agreement about a name for the
collaborative project, and then get a mailing list set up ASAP.
Jean-Marc suggested the name VSH or 'Visual Shell'. I was able find a very
old and now dead file manager for UNIX that went by the same name. But
Jean-Marc says that does not matter to him.
Personally, I like the name, because I always thought of Loci as a graphical
(GSH is taken) or visual shell. (I still love the name Loci, but we're no
more than 1/3rd the collaborative now and we have to make compromises.) But I
think we should, at least in announcements and descriptions, say that this is
'the new VSH'. That may pique people's curiousity too.
So, we're missing the vote of the remaining 1/3rd of the collaborative: Jarl.
I'd also like to get opinions from famous Locians like Gary, Brad, Justin,
David, Tim, Humberto, Jennifer, Alan, etc. (Loci has 40 people on the mailing
list, BTW, which is something I am proud of, but perhaps attributable to Loci
having a list for more than a year.)
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From dlapointe at mediaone.net Wed Mar 15 07:49:13 2000
From: dlapointe at mediaone.net (David Lapointe)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
In-Reply-To: <38CF8701.B8729187@geoserve.net>
References: <38CF8701.B8729187@geoserve.net>
Message-ID: <00031507501000.00538@gnomen>
How about Visgnu?
--
.david
David Lapointe
If you are not confused
you're not paying attention. -- Will Durst
From jarl at casema.net Wed Mar 15 08:06:39 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
References: <38CF8701.B8729187@geoserve.net>
Message-ID: <38CF8ADF.737FC1EF@casema.net>
"J.W. Bizzaro" wrote:
> Greetings.
>
> I thought we should try to come to an agreement about a name for the
> collaborative project, and then get a mailing list set up ASAP.
>
> Jean-Marc suggested the name VSH or 'Visual Shell'. I was able find a very
> old and now dead file manager for UNIX that went by the same name. But
> Jean-Marc says that does not matter to him.
>
> Personally, I like the name, because I always thought of Loci as a graphical
> (GSH is taken) or visual shell. (I still love the name Loci, but we're no
> more than 1/3rd the collaborative now and we have to make compromises.) But I
> think we should, at least in announcements and descriptions, say that this is
> 'the new VSH'. That may pique people's curiousity too.
>
> So, we're missing the vote of the remaining 1/3rd of the collaborative: Jarl.
VSH is nice, but I would like to see 'it' running without being noticed too..
just doing it's work. I like to have a 'A' added, Automation.
Or does VASH again has some unwanted side effects like 'GIA' ? :)
From chapmanb at arches.uga.edu Wed Mar 15 10:43:00 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
Message-ID: <200003151545.KAA125764@archa12.cc.uga.edu>
Jarl wrote:
> That's depending on the technical possibilities mostly. I'll try to
get
> familiair with python-C hooks, I cant judge the possibilities right
now.
> Anyone
> knows more about this?
When I was proposing this, I was thinking of the small middle which we
currently have talking to Overflow and GMS through corba (ie. GMS
could keep the same structure it currently has, but would talk to the
middle that we currently have instead of directly to the front.
Of course, it would also be possible to wrap the C and C++ classes
so they can be called from python. There is a tutorial about this on
the python documentation web site (http://www.python.org/doc/) called
"Extending and Embedding." The C API which is used to connect outside
classes with the python core code is also documented there ("Python/C
API"). There are also C++ classes that sit on top of these C classes
which make wrapping C++ possible.
There is also a tool to do these wrappings semi-automatically
called SWIG (http://www.swig.org/). I've heard both good and bad
things about this, but it is also a possibility is we use the method
of directly embedding the C/C++ classes to be callable from a python
middle.
Brad
From bizzaro at geoserve.net Wed Mar 15 23:59:46 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
Message-ID: <38D06A42.75098B53@geoserve.net>
Brad Chapman wrote:
>
> When I was proposing this, I was thinking of the small middle which we
> currently have talking to Overflow and GMS through corba (ie. GMS
> could keep the same structure it currently has, but would talk to the
> middle that we currently have instead of directly to the front.
When you think about it, EVERYTHING must be passed through GMS first. Since
Overflow will be (if Jean-Marc agrees) a node in GMS, the GUI must talk only
to GMS. GMS would then talk to Overflow. The GUI simply cannot bypass GMS
and talk to Overflow.
I know I said we need to make 2 GUIs. We still do, but (and this is a Loci
design) the Overflow GUI is only a REPRESENTATION of Overflow. Remember that
we'll use XML to REPRESENT the actual applications being integrated. So, the
Overflow GUI will puke out XML.
It would probably be best then to make GMS communicate directly with Overflow,
either via the API GMS uses for all applications or via special API. Any
ideas?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 16 00:26:47 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Introduction to the GConf library
Message-ID: <38D07097.D8BA61EE@geoserve.net>
http://developer.gnome.org/feature/current/index.html
Jeff
From bizzaro at geoserve.net Thu Mar 16 00:32:59 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net>
Message-ID: <38D0720B.8CE08448@geoserve.net>
Jarl van Katwijk wrote:
>
> VSH is nice, but I would like to see 'it' running without being noticed too..
> just doing it's work.
That's a good point. Much of the collaborative will be non-graphical, so is
it really accurate calling it a 'visual shell'? What do you think, Jean-Marc?
> I like to have a 'A' added, Automation.
Visual Automation SHell?
> Or does VASH again has some unwanted side effects like 'GIA' ? :)
You mean like 'GAI'? I don't see anything wrong.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 16 00:45:42 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net>
Message-ID: <38D07506.F7CA4E00@geoserve.net>
How about...
Iconic
or
Iconic Shell
or
Glyph
or
Glyphic
or
Glyphic Shell
?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 16 00:49:39 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net> <38D07506.F7CA4E00@geoserve.net>
Message-ID: <38D075F3.6BA13F10@geoserve.net>
Or how about...
RAIDE
Rapid Application Integration and Development Environment
?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 16 00:54:09 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net> <38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net>
Message-ID: <38D07701.56BB0AEA@geoserve.net>
Or...
Gadget
?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Thu Mar 16 02:27:14 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Re: Overflow/Loci/GMS collaboration
References: <38D06A42.75098B53@geoserve.net>
Message-ID: <38D08CD2.F90F58A6@casema.net>
>
> It would probably be best then to make GMS communicate directly with Overflow,
> either via the API GMS uses for all applications or via special API. Any
> ideas?
>
Hi,
I dont know if that was already clear, but gms nodes have this pointer :
gint (*procedure)(messaging_object *MO);
Normally this procedure does 1) take care of the processing ability of the node
or 2) it wraps an external application.
2) will kill the speed Overflow introduces, but 1) can be done, we could load
overflow as a dynamic library (every application
can be turned into such easaly) and have the 'procedure pointer calling a 'entry'
function in Overflow. By 'entry' I main a function
that does NOT initialise but only executes a subnet. This way the wrapping has
very little overhead.
Futhermore there can be made an api which lets the GUI interact directly with
this subnet in order to have the full power of the small\detailed nodes Overflow
has.
bye,
jarl
From jarl at casema.net Thu Mar 16 02:29:14 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Introduction to the GConf library
References: <38D07097.D8BA61EE@geoserve.net>
Message-ID: <38D08D4A.ABCBEFF3@casema.net>
> http://developer.gnome.org/feature/current/index.html
>
>
Very interesting.. the 'wrapping of external application'
code should definitly make somehow use of Gconf.
From jarl at casema.net Thu Mar 16 02:30:28 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net>
Message-ID: <38D08D94.EFD4A342@casema.net>
> That's a good point. Much of the collaborative will be non-graphical, so is
> it really accurate calling it a 'visual shell'? What do you think, Jean-Marc?
>
> > I like to have a 'A' added, Automation.
>
> Visual Automation SHell?
Everyone pleased by VASH? I am...
From jarl at casema.net Thu Mar 16 02:32:01 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net> <38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net>
Message-ID: <38D08DF1.61849A22@casema.net>
>
> RAIDE
>
> Rapid Application Integration and Development Environment
>
Even better as vash..
I vote for RAIDE
bye,
jarl
From jarl at casema.net Thu Mar 16 03:04:56 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Scheme
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net> <38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D08DF1.61849A22@casema.net>
Message-ID: <38D095A8.75805508@casema.net>
I tried to collect all proposals made..
maybe it's best we edit this dia document to keep everybody
informed about the idears?
(dia : http://www.lysator.liu.se/~alla/dia/)
bye,
jarl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lociGMSoverflow.dia
Type: application/octet-stream
Size: 1224 bytes
Desc: not available
Url : http://bioinformatics.org/pipermail/pipet-devel/attachments/20000316/c44da45e/lociGMSoverflow.obj
From jarl at casema.net Thu Mar 16 08:59:15 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] Good info source
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net> <38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D08DF1.61849A22@casema.net>
Message-ID: <38D0E8B3.F2086912@casema.net>
check this site : http://www.fipa.org
From bizzaro at geoserve.net Thu Mar 16 10:07:43 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net> <38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net>
Message-ID: <38D0F8BF.46D5C167@geoserve.net>
"J.W. Bizzaro" wrote:
>
> RAIDE
>
> Rapid Application Integration and Development Environment
Blockaide
Block-aide
Block Application Integration and Development Environment
?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Thu Mar 16 12:17:40 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:23 2006
Subject: [Pipet Devel] vsh?
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net>
<38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D07701.56BB0AEA@geoserve.net>
Message-ID: <38D11734.C4E93A4E@hermes.usherb.ca>
Hi,
I still think there's nothing that keeps Overflow from doing distributed stuff,
and I think I've found a way to do it (simply by creating two new node types).
Now the problem is that I've never used sockets before. Is anyone interested in
helping out. This would actually serve two goals at once: See it we can get
networking in Overflow, and have someone in Loci (or GMS) to get some
"experience" with Overflow. Anyone interrested?
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Thu Mar 16 12:36:35 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Scheme
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net> <38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D08DF1.61849A22@casema.net> <38D095A8.75805508@casema.net>
Message-ID: <38D11BA3.821D885D@geoserve.net>
jarl van katwijk wrote:
>
> I tried to collect all proposals made..
I converted it png, so you won't need Dia. Attached.
Jeff
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lociGMSoverflow.png
Type: image/png
Size: 46605 bytes
Desc: not available
Url : http://bioinformatics.org/pipermail/pipet-devel/attachments/20000316/af1e8cc5/lociGMSoverflow.png
From bizzaro at geoserve.net Thu Mar 16 12:47:46 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] vsh? (resent)
Message-ID: <38D11E42.C0147D88@geoserve.net>
"J.W. Bizzaro" wrote:
>
> RAIDE
>
> Rapid Application Integration and Development Environment
Blockaide
Block-aide
Block Application Integration and Development Environment
?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 16 12:53:13 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] which handles distribution (was: vsh?)
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net>
<38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D07701.56BB0AEA@geoserve.net> <38D11734.C4E93A4E@hermes.usherb.ca>
Message-ID: <38D11F89.870A2578@geoserve.net>
Jean-Marc Valin wrote:
>
> I still think there's nothing that keeps Overflow from doing distributed stuff,
> and I think I've found a way to do it (simply by creating two new node types).
> Now the problem is that I've never used sockets before. Is anyone interested in
> helping out. This would actually serve two goals at once: See it we can get
> networking in Overflow, and have someone in Loci (or GMS) to get some
> "experience" with Overflow. Anyone interrested?
This is a VERY important question:
If Overflow handles application distribution and integration,
what will happen to GMS and all of its code??? This is what
GMS is designed to do.
We CANNOT thow GMS away. Jarl simply wouldn't collaborate if we did.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 16 13:03:27 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net>
<38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D07701.56BB0AEA@geoserve.net> <38D11734.C4E93A4E@hermes.usherb.ca> <38D11F89.870A2578@geoserve.net>
Message-ID: <38D121EF.C063F057@geoserve.net>
"J.W. Bizzaro" wrote:
>
> We CANNOT thow GMS away. Jarl simply wouldn't collaborate if we did.
No one is questioning if Overflow is capable of distributing applications.
The issue is much more political than technical.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Thu Mar 16 13:03:02 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net>
<38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D07701.56BB0AEA@geoserve.net>
<38D11734.C4E93A4E@hermes.usherb.ca> <38D11F89.870A2578@geoserve.net>
Message-ID: <38D121D6.576BCCB2@hermes.usherb.ca>
> > I still think there's nothing that keeps Overflow from doing distributed stuff,
> > and I think I've found a way to do it (simply by creating two new node types).
> > Now the problem is that I've never used sockets before. Is anyone interested in
> > helping out. This would actually serve two goals at once: See it we can get
> > networking in Overflow, and have someone in Loci (or GMS) to get some
> > "experience" with Overflow. Anyone interrested?
>
> This is a VERY important question:
>
> If Overflow handles application distribution and integration,
> what will happen to GMS and all of its code??? This is what
> GMS is designed to do.
>
> We CANNOT thow GMS away. Jarl simply wouldn't collaborate if we did.
>
I'm not talking about throwing GMS away... I'm just saying that we could
probably paste the GMS code into Overflow nodes and have all the GMS
functionnality into Overflow. So far, I haven't found anything that can't be
inserted into an Overflow node (GMS might prove me wrong, but I don't think).
The suggestion of writing network code was more as a proof of concept... I don't
want to rewrite all GMS.
As for the name... why not dfsh (data-flow shell) or fsh (flow shell)? I think
RAIDE sounds a bit more like RAID... plus "raide" means "stiff" in french.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jean-marc.valin at hermes.usherb.ca Thu Mar 16 13:05:35 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net>
<38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D07701.56BB0AEA@geoserve.net>
<38D11734.C4E93A4E@hermes.usherb.ca> <38D11F89.870A2578@geoserve.net> <38D121EF.C063F057@geoserve.net>
Message-ID: <38D1226F.A35AE74E@hermes.usherb.ca>
> > We CANNOT thow GMS away. Jarl simply wouldn't collaborate if we did.
>
> No one is questioning if Overflow is capable of distributing applications.
> The issue is much more political than technical.
My argument is not that much that I want Overflow to "take over everything", but
the fact that I think it would work better if we can have only one application,
instead of one for complex stuff and one for fast stuff. ...and I think it would
be feasable in Overflow.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jarl at casema.net Thu Mar 16 13:14:48 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] which handles distribution (was: vsh?)
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net>
<38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D07701.56BB0AEA@geoserve.net> <38D11734.C4E93A4E@hermes.usherb.ca> <38D11F89.870A2578@geoserve.net>
Message-ID: <38D12498.BFCA5EB3@casema.net>
"J.W. Bizzaro" wrote:
> Jean-Marc Valin wrote:
> >
> > I still think there's nothing that keeps Overflow from doing distributed stuff,
> > and I think I've found a way to do it (simply by creating two new node types).
> > Now the problem is that I've never used sockets before. Is anyone interested in
> > helping out. This would actually serve two goals at once: See it we can get
> > networking in Overflow, and have someone in Loci (or GMS) to get some
> > "experience" with Overflow. Anyone interrested?
>
> This is a VERY important question:
>
> If Overflow handles application distribution and integration,
> what will happen to GMS and all of its code??? This is what
> GMS is designed to do.
>
> We CANNOT thow GMS away. Jarl simply wouldn't collaborate if we did.
>
We do not have to intergrate the projects now.. we can wait, learn, try & test...
I'm gonna do what I scretched in the diagram, if it isn't the way other project(s)
want it to be done, that's fine to me. I'll still be here anyway :)
And so I'm be collaborating by discussion anyhow.. it's only about the coding.
bye,
jarl
From jarl at casema.net Thu Mar 16 13:18:12 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net>
<38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D07701.56BB0AEA@geoserve.net>
<38D11734.C4E93A4E@hermes.usherb.ca> <38D11F89.870A2578@geoserve.net> <38D121EF.C063F057@geoserve.net> <38D1226F.A35AE74E@hermes.usherb.ca>
Message-ID: <38D12564.B6A7BDD1@casema.net>
> > > We CANNOT thow GMS away. Jarl simply wouldn't collaborate if we did.
> >
> > No one is questioning if Overflow is capable of distributing applications.
> > The issue is much more political than technical.
>
> My argument is not that much that I want Overflow to "take over everything", but
> the fact that I think it would work better if we can have only one application,
> instead of one for complex stuff and one for fast stuff. ...and I think it would
> be feasable in Overflow.
>
Why not (I thing it's what Jeff said before) : come to a common GUI-core API, so
Overflow and GMS will continue, and user can deside which core fullfills their
needs?
Or will this GUI be impossible to build?
From bizzaro at geoserve.net Thu Mar 16 13:25:43 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <38CF8701.B8729187@geoserve.net> <38CF8ADF.737FC1EF@casema.net> <38D0720B.8CE08448@geoserve.net>
<38D07506.F7CA4E00@geoserve.net> <38D075F3.6BA13F10@geoserve.net> <38D07701.56BB0AEA@geoserve.net>
<38D11734.C4E93A4E@hermes.usherb.ca> <38D11F89.870A2578@geoserve.net> <38D121D6.576BCCB2@hermes.usherb.ca>
Message-ID: <38D12727.79E5C582@geoserve.net>
Jean-Marc Valin wrote:
>
> I'm not talking about throwing GMS away... I'm just saying that we could
> probably paste the GMS code into Overflow nodes and have all the GMS
> functionnality into Overflow. So far, I haven't found anything that can't be
> inserted into an Overflow node (GMS might prove me wrong, but I don't think).
> The suggestion of writing network code was more as a proof of concept... I don't
> want to rewrite all GMS.
Okay, now let's see what Jarl has to say.
I'm fairly impartial about this issue of which controls distribution, since I
can get the GUI to work either way.
> As for the name... why not dfsh (data-flow shell) or fsh (flow shell)? I think
I thought fsh sounded alright, but then I found that the name is being used:
http://www.lysator.liu.se/fsh/
What do you think of Blockaide?
> RAIDE sounds a bit more like RAID... plus "raide" means "stiff" in french.
Oh man. It's good to have some french-speaking people on board :-)
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 16 13:30:00 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Jean-Marc and Dominic are not on this list
Message-ID: <38D12828.2BD3E8E2@geoserve.net>
Guys,
Jean-Marc and Dominic are not on this list. Please CC messages to them.
Jean-Marc Valin
Dominic Letourneau
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From justin at ukans.edu Fri Mar 17 00:45:57 2000
From: justin at ukans.edu (Justin Bradford)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Ideas for network distributed objects
Message-ID:
http://www.levien.com/athshe/prelim-design.html
The above was written by Raph Levien, author of
many things, including libart, Gill, and gdome.
Anyway, way back when I first got here, there was
lots of talk about how we'd access objects over
the network. I was proposing a DOM-like interface
over the network.
gdome, part of Gnome, was a DOM implementation
accessible through CORBA. Unfortunately, that's
really slow and there are lots of problems with
it.
So back when I was looking at these things, I
talked to Raph about gdome and we discussed the
possibility of a light-weight wire protocol to
do DOM like things over the network efficiently.
The link above describes Raph's thoughts/design
ideas on such a system.
Now, here is why I think this is extremely useful
for Loci (or whatever we call it now ;)
Bioinformatic/computational data can be very
large, and it would be bad to have to transfer
big blocks of data when you just need a bit of
it.
Instead, imagine a simple API to a tree-like
structure. You could quickly browse through the
structure until you found the right nodes,
lists, and/or blobs of data. Then you just get
the data you want. Even substrings of binary
blobs.
Also, it discusses the implementation of locking
and transaction for these distributed objects,
which could be also be very useful for things
like distributed computation and simulation.
Anyway, this Athshe describes my original vision
for distributed communication/object interaction
in Loci. I'm curious what people think, and if
such a system would still be useful for Loci's
current direction.
Justin
From chapmanb at arches.uga.edu Fri Mar 17 08:53:13 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
Message-ID: <200003171355.IAA102600@archa10.cc.uga.edu>
Jean-Marc Valin wrote:
>>I still think there's nothing that keeps Overflow from doing
distributed
>> stuff,and I think I've found a way to do it (simply by creating two
new node
> > types).Now the problem is that I've never used sockets before. Is
anyone
> > interested in helping out. This would actually serve two goals at
once: See
> > it we can get networking in Overflow, and have someone in Loci (or
GMS) to
> > get some "experience" with Overflow. Anyone interrested?
Whatever we end up trying to do, I'd definately be willing to chip in.
I can't promise much since I just started learning sockets myself (in
python) and am still fighting to compile Overflow (and learn
autoconf/make), but I'll definately be willing to give it a try.
Jeff wrote:
> This is a VERY important question:
>
> If Overflow handles application distribution and integration,
> what will happen to GMS and all of its code??? This is what
> GMS is designed to do.
>
> We CANNOT thow GMS away. Jarl simply wouldn't collaborate if we did.
Jean-Marc Valin wrote:
> I'm not talking about throwing GMS away... I'm just saying that we
could
> probably paste the GMS code into Overflow nodes and have all the GMS
> functionnality into Overflow. So far, I haven't found anything that
can't be
> inserted into an Overflow node (GMS might prove me wrong, but I
don't think).
> The suggestion of writing network code was more as a proof of
concept... I
> don't want to rewrite all GMS.
Jarl wrote:
> Why not (I think it's what Jeff said before) : come to a common
GUI-core
> API, so Overflow and GMS will continue, and users can deside which
core
> fullfills their needs?
I think it's important that Overflow and GMS aren't completely
dependent on each other (so you could use GMS for "big" programs
with distributed systems and use Overflow for "small" libraries on a
local scale). However, I know for my needs that I would like to use
both "small" and "big" together, and so I'd like to see Overflow and
GMS interoperate, so that you don't have to choose one core over
another. Would it be difficult to define a "distributed API" for GMS
that Overflow could plug into (when distribution over multiple
computer was necessary)? Then Overflow could define a "small library
API" that GMS could plug into to run libraries? Does this make any
sense?
Brad
From jarl at casema.net Fri Mar 17 10:27:42 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu>
Message-ID: <38D24EEE.F47F0C77@casema.net>
>
> I think it's important that Overflow and GMS aren't completely
> dependent on each other (so you could use GMS for "big" programs
> with distributed systems and use Overflow for "small" libraries on a
> local scale). However, I know for my needs that I would like to use
> both "small" and "big" together, and so I'd like to see Overflow and
> GMS interoperate, so that you don't have to choose one core over
> another. Would it be difficult to define a "distributed API" for GMS
> that Overflow could plug into (when distribution over multiple
> computer was necessary)? Then Overflow could define a "small library
> API" that GMS could plug into to run libraries? Does this make any
> sense?
>
Yes surtainly does. I've proposed this before, but the overflow people
want to keep the processing speed
and dont want any wrapping. I like to see code like overflow intergrated
into gms, but this wont be started
soon because of the mayor priorities like XML and other that need to be
coded.
bye,
jarl
From bizzaro at geoserve.net Fri Mar 17 12:16:34 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] new collaborative mailing list is ready!
Message-ID: <38D26872.717EC504@geoserve.net>
Okay guys,
We're going to move general discussions about this collaborative to its own
list.
The list is already made. It's on the existing server, and the name is VSH.
Well, VSH is the only name we could all half-heartedly agree on. And since
this list is on a server soon to be outmoded, we can always change the name
when we move to the new server. Another reason for not using the new server
is that it's not completely set up yet. Makes sense.
Go to this Web page to subscribe:
http://bioinformatics.org/mailman/listinfo/pipet-devel
Mail is to be addressed to...
pipet-devel@bioinformatics.org
And at last, I won't have to forward 10-20 messages a day to Jean-Marc and
Dominic :-)
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 17 12:55:54 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Introduction to CORBA, Part 2
Message-ID: <38D271A9.3DABC54B@geoserve.net>
http://www.linuxworld.com/linuxworld/lw-2000-03/lw-03-corba2.html
Jeff
From bizzaro at geoserve.net Fri Mar 17 13:38:37 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu>
Message-ID: <38D27BAD.ADD4BA3E@geoserve.net>
Brad Chapman wrote:
>
> I think it's important that Overflow and GMS aren't completely
> dependent on each other (so you could use GMS for "big" programs
> with distributed systems and use Overflow for "small" libraries on a
> local scale).
I agree that there should be some separation of functionality, but to the
point where it would still be possible (with code modification) to get one
application to execute without the others being present. IOW, I still don't
want to see GMS or Overflow dismantled, dissolved and absorbed.
BUT, if our projects are to merge, none of them will any longer be stand-alone
applications. Of course.
> However, I know for my needs that I would like to use
> both "small" and "big" together, and so I'd like to see Overflow and
> GMS interoperate, so that you don't have to choose one core over
> another.
Right.
> Would it be difficult to define a "distributed API" for GMS
> that Overflow could plug into (when distribution over multiple
> computer was necessary)? Then Overflow could define a "small library
> API" that GMS could plug into to run libraries? Does this make any
> sense?
Yeah, I think this has to be done. Neither Overflow nor GMS can be agnostic
about the other. But, for Loci's sake, we don't want to be flip-flopping on
how user-to-core-to-application/object communication will occur.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 17 14:08:53 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu> <38D24EEE.F47F0C77@casema.net>
Message-ID: <38D282C5.656BDCD9@geoserve.net>
Jarl van Katwijk wrote:
>
> Yes surtainly does. I've proposed this before, but the overflow people
> want to keep the processing speed
> and dont want any wrapping.
This whole 'speed' issue has me confused. If the small Overflow objects
remain 'networked' on a sigle host (none are sent through the Internet), how
can GMS affect their speed???
And if small Overflow objects are 'networked' across the Internet, IT'S THE
INTERNET THAT WILL SLOW THEM DOWN, NOT A GMS WRAPPER. Isn't that obvious to
everone else?
> I like to see code like overflow intergrated
> into gms, but this wont be started
> soon because of the mayor priorities like XML and other that need to be
> coded.
Code *LIKE* Overflow's, fine.
You know, it's looking more to me as though both Jarl's and Jean-Marc's ideas
for connecting/merging GMS and Overflow are not incompatible. It seems
they're two sides of the same coin. Overflow will need GMS for
Overflow-to-Overflow (across the Internet) communication, and GMS will need
Overflow for application construction (and I think wrapping).
The point of contention here is this: WHICH COMMUNICATES *DIRECTLY* WITH THE
GUI???
As I mentioned before, I'd like to see the GUI communicate with GMS, GMS
communicate with Overflow across the Internet, and Overflow handle application
wrapping/binding and development. So, each and every GMS node is an instance
of Overflow on the Internet, which may in many cases connect to foreign
applications running on that host.
+------------+
| Loci GUI |
+------------+
|
|
|
|
\|/
+-----------+
| GMS |
+-----------+
/ \
/ \
INTERNET / \ INTERNET
/ \
/ \
| |
\|/ \|/
+-----------+ +-----------+
| GMS | | GMS |
+-----------+ +-----------+
| |
| |
\|/ \|/
+-----------+ +-----------+
| Overflow | | Overflow |
+-----------+ +-----------+
| |
| |
\|/ \|/
+-------------+ +-------------+
| Application | | Application |
+-------------+ +-------------+
Comments?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Fri Mar 17 14:57:47 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu> <38D24EEE.F47F0C77@casema.net> <38D282C5.656BDCD9@geoserve.net>
Message-ID: <38D28E3B.ADD8AB66@hermes.usherb.ca>
> > Yes surtainly does. I've proposed this before, but the overflow people
> > want to keep the processing speed
> > and dont want any wrapping.
I have nothing against wrapping in itself, nor do I think speed matters anymore
when you have the parts distributed across a network. What bothers me the most
is that your program would have to be written in "two different languages": one
GMS part, and one Overflow part, while I think it would be feasable to put the
GMS code (not rewrite it) into Overflow. Now, maybe the best thing would be to
do both: Adapt Overflow so that it can be used as a GMS node, but also add
network stuff to Overflow. The kind of task you want to perform will then tell
you which to use.
>
> This whole 'speed' issue has me confused. If the small Overflow objects
> remain 'networked' on a sigle host (none are sent through the Internet), how
> can GMS affect their speed???
>
> And if small Overflow objects are 'networked' across the Internet, IT'S THE
> INTERNET THAT WILL SLOW THEM DOWN, NOT A GMS WRAPPER. Isn't that obvious to
> everone else?
True, my concern with speed was only that Overflow nodes could not be put in GMS
individually, but that's probably obvious to everybody. Sorry, I guess I have
not expresed myself correctly on speed.
> You know, it's looking more to me as though both Jarl's and Jean-Marc's ideas
> for connecting/merging GMS and Overflow are not incompatible. It seems
> they're two sides of the same coin. Overflow will need GMS for
> Overflow-to-Overflow (across the Internet) communication, and GMS will need
> Overflow for application construction (and I think wrapping).
>
> The point of contention here is this: WHICH COMMUNICATES *DIRECTLY* WITH THE
> GUI???
I'm afraid we might need two GUIs (though they might be bonobized to look like
one), because GMS and Overflow will probably have different requirements. This
is what I'd find annoying in wrapping Overflow in GMS. I might be wrong on that
though...
About Overflow integration in GMS... I'd like to point out that, except for the
GUI, Overflow is more a library than a program. It is easy to integrate into any
program. I'd like to know, is GMS build a bit the same?
OK, so this summerized my thoughts:
1) I don't mind if Overflow is integrated in GMS (mainly it's not a lot of work)
and I can help those who want to do it (It would probably be as simple as
writing a couple new nodes).
2) I would like to try the opposite so for most simple "networked applications",
just Overflow would be fine.
As a last, about communicating objects between different parts, Overflow already
has an Object hierarchy (GTK-like, but cleaner) that supports
serialization/de-serialization, so most of the stuff would already be done. Does
GMS has something like that (in which case, we'd need to have compatibility
between the two)?
I hope it clarifies a bit what I think.
Regards,
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jean-marc.valin at hermes.usherb.ca Fri Mar 17 15:03:35 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:24 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu> <38D24EEE.F47F0C77@casema.net> <38D282C5.656BDCD9@geoserve.net>
Message-ID: <38D28F97.D174716B@hermes.usherb.ca>
> > Yes surtainly does. I've proposed this before, but the overflow people
> > want to keep the processing speed
> > and dont want any wrapping.
I have nothing against wrapping in itself, nor do I think speed matters anymore
when you have the parts distributed across a network. What bothers me the most
is that your program would have to be written in "two different languages": one
GMS part, and one Overflow part, while I think it would be feasable to put the
GMS code (not rewrite it) into Overflow. Now, maybe the best thing would be to
do both: Adapt Overflow so that it can be used as a GMS node, but also add
network stuff to Overflow. The kind of task you want to perform will then tell
you which to use.
>
> This whole 'speed' issue has me confused. If the small Overflow objects
> remain 'networked' on a sigle host (none are sent through the Internet), how
> can GMS affect their speed???
>
> And if small Overflow objects are 'networked' across the Internet, IT'S THE
> INTERNET THAT WILL SLOW THEM DOWN, NOT A GMS WRAPPER. Isn't that obvious to
> everone else?
True, my concern with speed was only that Overflow nodes could not be put in GMS
individually, but that's probably obvious to everybody. Sorry, I guess I have
not expresed myself correctly on speed.
> You know, it's looking more to me as though both Jarl's and Jean-Marc's ideas
> for connecting/merging GMS and Overflow are not incompatible. It seems
> they're two sides of the same coin. Overflow will need GMS for
> Overflow-to-Overflow (across the Internet) communication, and GMS will need
> Overflow for application construction (and I think wrapping).
>
> The point of contention here is this: WHICH COMMUNICATES *DIRECTLY* WITH THE
> GUI???
I'm afraid we might need two GUIs (though they might be bonobized to look like
one), because GMS and Overflow will probably have different requirements. This
is what I'd find annoying in wrapping Overflow in GMS. I might be wrong on that
though...
About Overflow integration in GMS... I'd like to point out that, except for the
GUI, Overflow is more a library than a program. It is easy to integrate into any
program. I'd like to know, is GMS build a bit the same?
OK, so this summerized my thoughts:
1) I don't mind if Overflow is integrated in GMS (mainly it's not a lot of work)
and I can help those who want to do it (It would probably be as simple as
writing a couple new nodes).
2) I would like to try the opposite so for most simple "networked applications",
just Overflow would be fine.
As a last, about communicating objects between different parts, Overflow already
has an Object hierarchy (GTK-like, but cleaner) that supports
serialization/de-serialization, so most of the stuff would already be done. Does
GMS has something like that (in which case, we'd need to have compatibility
between the two)?
I hope it clarifies a bit what I think.
Regards,
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jarl at casema.net Fri Mar 17 15:41:27 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu> <38D24EEE.F47F0C77@casema.net> <38D282C5.656BDCD9@geoserve.net>
Message-ID: <38D29877.EB1252F8@casema.net>
>
> This whole 'speed' issue has me confused. If the small Overflow objects
> remain 'networked' on a sigle host (none are sent through the Internet), how
> can GMS affect their speed???
Every data flow will go thru
a sensor ->
-> the pipenline ->
-> collector (can contain a application, a internal procedure or a
overflow subnet) ->
-> visual (GUI or whatever).
This currently goes pretty slow. Lots of IIOP traffic and memory access. I'm
currently coding
a benchmark plugin.. more on this later.
NOTE that the collector can also read it's own data from disk, open local
sockets, etc
BUT it will be authenticated\controlled\bla-bla-bla.
>
>
> And if small Overflow objects are 'networked' across the Internet, IT'S THE
> INTERNET THAT WILL SLOW THEM DOWN, NOT A GMS WRAPPER. Isn't that obvious to
> everone else?
Hehe.. I think the concept of just using the overflow library for subnets caused
some confusion :)
>
> As I mentioned before, I'd like to see the GUI communicate with GMS, GMS
> communicate with Overflow across the Internet, and Overflow handle application
> wrapping/binding and development. So, each and every GMS node is an instance
> of Overflow on the Internet, which may in many cases connect to foreign
> applications running on that host.
>
> +------------+
> | Loci GUI |
> +------------+
> |
> |
> |
> |
> \|/
> +-----------+
> | GMS |
> +-----------+
> / \
> / \
> INTERNET / \ INTERNET
> / \
> / \
> | |
> \|/ \|/
> +-----------+ +-----------+
> | GMS | | GMS |
> +-----------+ +-----------+
> | |
> | |
> \|/ \|/
> +-----------+ +-----------+
> | Overflow | | Overflow |
> +-----------+ +-----------+
> | |
> | |
> \|/ \|/
> +-------------+ +-------------+
> | Application | | Application |
> +-------------+ +-------------+
>
Fine. I will erase 'Application wrapping' of my TODO..
why was there so much email needed for this concept 8)
From bizzaro at geoserve.net Tue Mar 21 12:11:25 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] vsh web page
Message-ID: <38D7AD3D.4CFAA892@geoserve.net>
I made a simple Web page for 'VSH' (if that is to be the name):
http://bioinformatics.org/vsh/
with screenshots and links to the respective projects.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 21 11:57:53 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References:
Message-ID: <38D7AA11.3796AA@geoserve.net>
Justin Bradford wrote:
>
> http://www.levien.com/athshe/prelim-design.html
[...]
> So back when I was looking at these things, I
> talked to Raph about gdome and we discussed the
> possibility of a light-weight wire protocol to
> do DOM like things over the network efficiently.
>
> The link above describes Raph's thoughts/design
> ideas on such a system.
I'd like to hear comments from Jarl, Dominic, Jean-Marc and Brad on this.
> Now, here is why I think this is extremely useful
> for Loci (or whatever we call it now ;)
>
> Bioinformatic/computational data can be very
> large, and it would be bad to have to transfer
> big blocks of data when you just need a bit of
> it.
Right.
> Instead, imagine a simple API to a tree-like
> structure. You could quickly browse through the
> structure until you found the right nodes,
> lists, and/or blobs of data. Then you just get
> the data you want. Even substrings of binary
> blobs.
...but using DOM instead of XML.
> Also, it discusses the implementation of locking
> and transaction for these distributed objects,
> which could be also be very useful for things
> like distributed computation and simulation.
Yes. At a lower level than what we've been considering, these things are
important. Now that we will be working with low-level objects via Overflow,
we should look into this.
> Anyway, this Athshe describes my original vision
> for distributed communication/object interaction
> in Loci. I'm curious what people think, and if
> such a system would still be useful for Loci's
> current direction.
Currently, we have 3 different ideas about how distribution can be handled:
one for each project. Our challenge is to bring these ideas together.
Athshe is (yet) another way to implement object distribution and, having
little experience with DOM, is perhaps a bit out of my area of expertise. So,
I'll defer to comment. I want to hear what Jarl, Dominic, Jean-Marc and Brad
have to say.
Justin, if you want to see Athshe or an Athshe-like system implemented in VSH,
you're more than welcome to help code it :-) This is a GNU project afterall.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 21 12:11:10 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] barCode
Message-ID: <38D7AD2E.8BAFE876@geoserve.net>
developerWorks wrote an article about the barCode event:
http://www-4.ibm.com/software/developer/library/barcode/
Jeff
From bizzaro at geoserve.net Tue Mar 21 15:06:39 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] CHANGES
References: <200003182206.RAA175796@archa11.cc.uga.edu>
Message-ID: <38D7D64F.C5059364@geoserve.net>
3/21/00 Brad
* Fixed deletion of loci so it now occurs through the middle. So now a
shift-1 click on a loci in the workspace will delete it.
3/14/00 Brad
* Tons o' changes. Middle and front are now separate (yay!) with limited
functionality. Specifically, DB table views do not work, and loci
deletion (via shift-button1) does not work. Also, only the gadfly database
works currently. Hopefully these problems will be fixed soon.
* Finished making the name changes so now at least everything being used in
the middle is following the new case formatting style.
* Added a doc directory with some information.
20000313 J.W. Bizzaro
* Added 'Getting Started' to README.
* Made a couple changes to get loci-gnome working as an independent
executable.
* Made menu modules for workspace and connectors...to be implemented later.
* Separated windowlet creation into its own module.
* Started separating connector creation into own module.
(from a message off of the list)
Brad Chapman wrote:
>
> Do you have any idears for the problems I mention?
On 3/14/00 you mention some DB problems and the locus deletion problem. I see
you got the locus deletion working again. BTW, I will make that work from a
popup menu; I'm not so sure shift-button1 click is obvious.
As for databases, can you provide small samples (I think I mentioned this
before) and default values to go in the database selection form? I haven't
been able to get this to work. Samples should probably go under...
back/private/?
And of course, it would be nice to eventually be able to DnD databases onto
the workspace rather than fill out a form.
About the doc directory, is this something that cannot go in the loci-doc
module? Do you think documentation should come with the main distribution?
Also Brad, take a look at your 2/7/00 entry in CHANGES. Did you intend for
all of that to go into the file? It looks like an accidental text paste.
Finally, should I make a tarball out of the current module?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 21 15:11:10 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] getting started with Loci
Message-ID: <38D7D75E.E3EB9A20@geoserve.net>
This is in Loci's README file:
--------------------------------------------------------
GETTING STARTED WITH LOCI
There are four basic objects you will be working with in Loci:
(1) Workspace
(2) Locus
(3) Connector
(4) Windowlet
When you first start Loci with the Gnome interface (default start), you will
see an empty 'workspace' (for now).
To place a 'locus' on the workspace, press the right mouse button, and you
will get a pop-up menu:
+------------+
| Locus > |
| Add > |
| Session > |
| Help > |
+------------+
Choosing the sub-menu Add, you will find a list of loci that can be placed on
the workspace. Choose a locus.
+------+
| |
O----| |---->O
| |
+------+
[Locus One]
Each locus (represented by an icon) will appear on the workspace with lines
radiating from a central icon. These lines are 'connectors' and will be used
to connect one locus to another. The lines with an arrow pointing away from
the icon are 'output connectors'. Lines without an arrow are 'input
connectors'.
+------+ +------+
| | | |
O----| |---->O O----| |---->O
| | | |
+------+ +------+
[Locus One] [Locus Two]
You will also notice that there is a red dot at the end of the connectors.
The colors indicate the connection status: red for unconnected, yellow for
connection in progress, and green for connected. It's simple.
Connecting loci is simple too. Just drag-and-drop the dot from one connector
onto the dot of another connector. (Note, you can only connect connectors
that have been unconnected, plus output to input and visa versa.)
+------+ +------+
| | | |
O----| |------->O-------| |---->O
| | | |
+------+ +------+
[Locus One] [Locus Two]
You can examine the GUI for each locus by double-clicking on the center icon.
This will lower a 'windowlet', which is akin to an X window but always stays
on the workspace and attached to its locus.
+------+
| |
O----| |---->O
| |
+------+
[Locus One]
+----------------------+
| |
| |
| |
| |
| |
| |
| |
+----------------------+
The windowlet will contain all sorts of goodies related to the function of
the locus. Double-clicking on the center icon again will raise the
windowlet.
--------------------------------------------------------
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 21 15:35:57 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] G-CHIP (Graphical, Command-Line, Hyperlinked Interface Program)
Message-ID: <38D7DD2D.573B01FA@geoserve.net>
There are some very interesting ideas in this 'paper':
http://www.geocities.com/SiliconValley/Bay/5371/gchip.html
Jeff
From bizzaro at geoserve.net Tue Mar 21 16:49:37 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] graphical console
Message-ID: <38D7EE71.A69CFF77@geoserve.net>
I like this mockup of a 'graphical console' from the G-CHIP page (attached).
A Loci/VSH widget like this could be connected as a viewer/visual for the 'ls'
command.
Jeff
-------------- next part --------------
A non-text attachment was scrubbed...
Name: g-chip.gif
Type: image/gif
Size: 1652 bytes
Desc: not available
Url : http://bioinformatics.org/pipermail/pipet-devel/attachments/20000321/9f735090/g-chip.gif
From chapmanb at arches.uga.edu Tue Mar 21 18:28:04 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] CHANGES
Message-ID: <200003212330.SAA213184@archa12.cc.uga.edu>
> Brad Chapman wrote:
>>
>> Do you have any idears for the problems I mention?
>
> On 3/14/00 you mention some DB problems and the locus deletion
problem.
I kind o' went through the problems I was having in my 'Code updates'
message from March 14th (on the list). It was right in the middle of
all the initial Overflow/GMS craziness, so was probably overlooked
(boo hoo, can you hear my weeping at being ignored? :) BTW, the
problems are more "theoretical" than actual (ie. I hid them in
the implementation for right now), so no one should really need to get
anything working, like DBs, to offer suggestions.
> I see
> you got the locus deletion working again. BTW, I will make that
work from a
> popup menu; I'm not so sure shift-button1 click is obvious.
Sounds fine to me, the shift-click was just meant so I could test it
out. Now that we have the middle and front separated I can add things
without worrying so much about implementing them "properly" in the GUI
and can let your magic hand figure this stuff out. As an example, I'm
going to start adding support for disconnecting loci next and I don't
have to worry about how the GUI will implement this eventually (yay!).
Hopefully things will work a little quicker this way as we can work in
tandem on things.
> As for databases, can you provide small samples (I think I mentioned
this
> before) and default values to go in the database selection form? I
haven't
> been able to get this to work. Samples should probably go under...
Did you have a chance to try out the gadfly stuff from my "Gadfly
info" messaging on Feb 9th? What problems did you have? This should
give you a small db to get started.
> And of course, it would be nice to eventually be able to DnD
databases onto
> the workspace rather than fill out a form.
Yuppers. Once we can save loci (hopefully soon!) this should be less
of a problem.
> About the doc directory, is this something that cannot go in the
loci-doc
> module? Do you think documentation should come with the main
distribution?
I was just treating this as more of "developer's docs" rather than
formal documentation. I just thought this might be a good place to
stash the streaming XML communication protocol (which I change a lot
right now) and maybe API docs, which will also change a lot. For
"real" distributions (ie. distributions with numbers :-) we can just
remove this.
> Also Brad, take a look at your 2/7/00 entry in CHANGES. Did you
intend for
> all of that to go into the file? It looks like an accidental text
paste.
No really, that big hunk of 4DOM code is important to the changes.
Really :) Ooopsies, I'll take that out.
> Finally, should I make a tarball out of the current module?
Shore, that would be spectacular. Then Jarl, Jean-Marc and Dominic can
have a chance to look at our current stuff. I think the last snapshot
is still the one with the really slow communication between front and
middle (since they were sharing one process). Plus we now have the
formal front and middle separation, which gives a better idea of the
direction stuff is heading...
Brad
From jarl at casema.net Wed Mar 22 04:01:47 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] vsh web page
References: <38D7AD3D.4CFAA892@geoserve.net>
Message-ID: <38D88BFB.9C2EE7B@casema.net>
"J.W. Bizzaro" wrote:
> I made a simple Web page for 'VSH' (if that is to be the name):
>
> http://bioinformatics.org/vsh/
Nice.
Though I'm not enthousiastic about the name VSH, lets use it for
now :)
From bizzaro at geoserve.net Wed Mar 22 11:47:31 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] loci snapshot; 20000321
Message-ID: <38D8F923.11788234@geoserve.net>
A new snapshot of Loci is available on the Web:
http://bioinformatics.org/loci/download/snapshots/loci-20000321.tar.gz
The GUI and core have been completely separated, and there are some
substantial improvements in performance. Thanks to Brad. It's worth the
download.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 22 17:48:16 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] gui protocol revisited
Message-ID: <38D94DB0.3353F6C3@geoserve.net>
I think the GUI-to-core *API* that Brad and I have been developing for Loci is
very nice. It's a simple dialog of request, approval, and pointing to data.
But what I am questioning is the *protocol* used, which is a standard TCP/IP
socket.
Commands from Loci's XML-based API are streamed across a socket. Here is a
short example where the GUI (front) requests the addition of a new workspace
(subnet), and the core (middle) performs the addition and approves a change in
the GUI to reflect what the core has done:
So, once again, this API is XML-based and ran through a socket. My question
is: Should we use CORBA instead? What are the advantages/disadvantages? My
MAJOR interest is that we have multiple UIs that can be attached to (and
controlled by) a single core, can run concurrently in the same session, and
can be controlled by one-another (via the front-request, middle-approve API).
Can we do that with CORBA?
Thoughts?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Thu Mar 23 15:37:42 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu> <38D24EEE.F47F0C77@casema.net> <38D282C5.656BDCD9@geoserve.net> <38D28F97.D174716B@hermes.usherb.ca>
Message-ID: <38DA8096.D4BE18D7@casema.net>
Hi Jean,
There's a lot o'discussion going on in the vsh mailinglist,
and you're not commenting on them so I'm asking if you could
give us your opinion is on a few postings.
thnx,
jarl
From chapmanb at arches.uga.edu Fri Mar 24 09:31:16 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] xml database stuff
Message-ID: <200003241434.JAA83976@archa12.cc.uga.edu>
Jeff wrote:
> Also Brad, recall how Loci was going to use an XML database (XDBM)
to store
> the workflow diagram (network and subnetworks).
Yeah, we need to think about a more secure way to store the
temporary (and permanent) XML then in directories. I've grown pretty
cold on the XDBM python bindings because they are proposing
implementing a full DOM interface in C on top of the current XDBM
before wrapping it. This sounds to me like a ton of work that I don't
have time for right now :-<
I have been thinking of an intermediate solution, which is
basically the "write a Loci specific database" idea which I hated
before.
I've been looking at the shelve module and python and thought of a
way to do this hopefully rather quickly:
1. Convert the current storage ids (ie.
'workspace1/workspace2/viewer1.xml')
into unique ids and store this mapping in a dictionary (random_id
-> current_id).
2. Shelve the xml according to their random ids.
3. Provide lots o' helper functions to make this work smoothly with
the current set up.
What do you all think? Good idea? Bad idea?
Brad
From chapmanb at arches.uga.edu Fri Mar 24 09:45:35 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] Front to middle communication
Message-ID: <200003241448.JAA156374@archa10.cc.uga.edu>
Jeff wrote:
> I was just thinking that if we're using CORBA at all anywhere, why
not use it
> everywhere?
Wow! Did you really write this? CORBA everywhere, yay! :-)
I think if we want to consider CORBA communication between the
front GUI and the middle the most important thing is to consider how
easy it will be for other people to implement front ends. Will CORBA
be more difficult than sockets?
We can define a small CORBA interface that will mirror what we
have now with sockets, and this could provide us some additional
flexibility in terms of passing data (and might help deal with the
problem I mentioned earlier about how to pass large amount of data
from databases or files to the front).
I don't really want to make this change right yet unless we have a
big problem we can't overcome with since sockets are working and we'll
have millions of other changes to make to fit in with the 'vsh'
project collaboration.
What do you all think?
Brad
From jarl at casema.net Fri Mar 24 09:59:16 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] xml database stuff
References: <200003241434.JAA83976@archa12.cc.uga.edu>
Message-ID: <38DB82C4.B124EB13@casema.net>
> before wrapping it. This sounds to me like a ton of work that I don't
> have time for right now :-<
No need to work fast, stick to working good :)
> 1. Convert the current storage ids (ie.
> 'workspace1/workspace2/viewer1.xml')
> into unique ids and store this mapping in a dictionary (random_id
> -> current_id).
> 2. Shelve the xml according to their random ids.
> 3. Provide lots o' helper functions to make this work smoothly with
> the current set up.
> What do you all think? Good idea? Bad idea?
>
I dont get what you are trying the archive here..
If it is 'storing the XML representation', why not pipe the file through
a PGP
library?
From chapmanb at arches.uga.edu Fri Mar 24 10:04:35 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] Moving forward in the middle
Message-ID: <200003241507.KAA102964@archa11.cc.uga.edu>
Hey Jeff (and anyone else who is interested);
I just wanted to let you know my coding plans for this upcoming
weekend because I'd like to try and coordinate front development along
with what I'm doing so we can get it implemented and test it out.
As I mentioned, I've pulled myself out of the GUI comletely so
that I won't be interfering there any more :-) As a result this has
led me to start thinking about how to implement stuff xml-wise and not
gui-wise, so I could use your input.
Specifically what I'm blathering about is that I've just about
(keeping my fingers crossed here!) got a generalized loci
disconnection communication protocol finished (and partly implemented
in the GUI, but only during deletion of loci, and I have not thought
about providing a way for generalized disconnecting of loci). This
weekend I'm hoping to tackle persistance/saving of loci in the
back/private directory and, if I am really lucky, start thinking about
how to try to whip up a connection diagram into a good XML
representation (of course, we have to work the basis of this out with
the other vsh guys). Do you have ideas about how these things should
work in the GUI? I'll need the GUI to test things out and make sure
I'm implementing them properly, and just thought we could try and
coordinate stuff and get this all working beautifully as soon as we
can.
What do you think? What are your plans?
Brad
From chapmanb at arches.uga.edu Fri Mar 24 10:29:45 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] xml database stuff
Message-ID: <200003241532.KAA99760@archa12.cc.uga.edu>
>> 1. Convert the current storage ids (ie.
>> 'workspace1/workspace2/viewer1.xml')
>> into unique ids and store this mapping in a dictionary (random_id
>> -> current_id).
>> 2. Shelve the xml according to their random ids.
>> 3. Provide lots o' helper functions to make this work smoothly with
>> the current set up.
>> What do you all think? Good idea? Bad idea?
>>
Jarl wrote:
> I dont get what you are trying the archive here..
I was just suggesting a way to store the xml representation, as you
thought. I should have been more clear in this regard. Sorry.
I think we have two options:
1. Shelve the DOM (will this work, can it be pickled? I haven't
thought
about this? Hmm...)
2. Shelve the XML string. This will probably require extra steps
of DOM to
string conversion, which is bad.
> If it is 'storing the XML representation', why not pipe the file
through
> a PGP
> library?
Can you elaborate? (sorry, I'm slow :-) What is a PGP library? Or just
point me to a place to look up more info...
Brad
From bizzaro at geoserve.net Fri Mar 24 16:53:43 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] Front to middle communication
References: <200003241448.JAA156374@archa10.cc.uga.edu>
Message-ID: <38DBE3E7.6DE03B9C@geoserve.net>
Brad Chapman wrote:
>
> Wow! Did you really write this? CORBA everywhere, yay! :-)
:-) Well, with Loci, we didn't have CORBA anywhere. So, keeping it all
CONSISTENT with sockets was a worthy cause. My preference is for consistency
(and simplicity) rather than for sockets.
> I think if we want to consider CORBA communication between the
> front GUI and the middle the most important thing is to consider how
> easy it will be for other people to implement front ends. Will CORBA
> be more difficult than sockets?
Ah, an ancient riddle, my young Locian. Perhaps the spirit of the Loci will
show you the way ;-)
> We can define a small CORBA interface that will mirror what we
> have now with sockets, and this could provide us some additional
> flexibility in terms of passing data (and might help deal with the
> problem I mentioned earlier about how to pass large amount of data
> from databases or files to the front).
I think it's something to work for, providing we can still have multiple
fronts control the middle and each other.
> I don't really want to make this change right yet unless we have a
> big problem we can't overcome with since sockets are working and we'll
> have millions of other changes to make to fit in with the 'vsh'
> project collaboration.
> What do you all think?
Why don't we put it on the back burner for now. You're correct that it's
something we can do later. The merger is more important right now.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 24 17:11:15 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:25 2006
Subject: [Pipet Devel] Moving forward in the middle
References: <200003241507.KAA102964@archa11.cc.uga.edu>
Message-ID: <38DBE803.E66D87E0@geoserve.net>
Brad Chapman wrote:
>
> As I mentioned, I've pulled myself out of the GUI comletely so
> that I won't be interfering there any more :-) As a result this has
> led me to start thinking about how to implement stuff xml-wise and not
> gui-wise
Great. Oh, the wonders of abstraction!
> Specifically what I'm blathering about is that I've just about
> (keeping my fingers crossed here!) got a generalized loci
> disconnection communication protocol finished (and partly implemented
> in the GUI, but only during deletion of loci, and I have not thought
> about providing a way for generalized disconnecting of loci). This
> weekend I'm hoping to tackle persistance/saving of loci in the
> back/private directory and, if I am really lucky, start thinking about
> how to try to whip up a connection diagram into a good XML
> representation (of course, we have to work the basis of this out with
> the other vsh guys).
Right. How does Overflow 'store' its network?
> Do you have ideas about how these things should
> work in the GUI? I'll need the GUI to test things out and make sure
> I'm implementing them properly, and just thought we could try and
> coordinate stuff and get this all working beautifully as soon as we
> can.
> What do you think? What are your plans?
Sure, I'll be here :-)
As for the way the GUI will handle locus/node disconnection, it will be done
through a popup menu on a button3 click. The popup menu will actually be
different for each of the 4 main GUI objects:
(1) Workspace
(2) Locus/node
(3) Connector
(4) Windowlet
Clicking button3 on a connector will bring up a menu for that connector:
+---------------+
| Connector > +---------------+
| Session > | Details... |
| Help > | Add > |
+---------------| Disconnect |
+---------------+
(Note that it doesn't work this way now, but this is my plan.)
And choosing 'Disconnect' will....disconnect the connector. The dot color
will turn from green to yellow, during the wait for approval, and then to red,
showing that it is disconnected.
What else do you need to know? Do you want me to get this working this
weekend?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 24 17:42:48 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Zip Up: New Linux Distribution Speaks to Users
Message-ID: <38DBEF68.3CC4468F@geoserve.net>
More along the line of 'speech control of software' in Linux:
http://www.linuxmall.com/news/features/000322zipspeak
Jeff
From bizzaro at geoserve.net Fri Mar 24 22:37:20 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
Message-ID: <38DC3470.D68AF122@geoserve.net>
Jean-Marc Valin wrote:
>
> OK, I'll try to summerize the way XML is used in Overflow with an example:
>
>
>
>
> A document is a file and can contain many networks (it's the equivalent of a .c)
Then this is something like Loci's 'workspace' or 'workflow diagram', or
Jarl's 'dataflow structure'.
>
>
> A network if the C equivalent of a function. Each document must contain a MAIN
> network.
>
>
>
>
>
> This is a node definition. The name is arbitrary,
The name is akin to Loci's identification number, which is really a URI to the
XML representation of the node.
> while the type corresponds to an Overflow node class.
Great, this is just like Loci's locus types/classes.
> x and y are for the GUI.
I think for VSH we should have the GUI store that information. If we are to
have more than one interface available for VSH, x and y will not always be
relevant. This is what we were going to do with Loci.
> The parameters have to correspond to what the node expects.
This is like a mime-type for link I/O? This is also something Loci was going
to define.
>
>
>
>
>
>
>
>
>
I'm not sure what you mean by value=256, cat, or frames.
>
>
>
>
>
>
>
>
> Links define which node is connected to which. Input and output names need to be
> defined since nodes can have more than one input/output.
Excellent, just like Loci. Although Loci embedded (what Loci calls
and
>
In this case, the whole 'document' gets a 'parameter' tag?
When I first came across Overflow (when you posted the announcement on
gnotices), I noted to Brad how remarkably similar some of its features are to
Loci's. This is particularly true for the XML representation of a network.
This is something GMS (which uses no XML) needs to implement as well. And
since Overflow and Loci are so similar, we should choose one definition. Can
you comment on what you like or dislike about Loci's use of XML for network
representation? Let's hammer this out right away.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Fri Mar 24 23:20:57 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
<38DC3470.D68AF122@geoserve.net>
Message-ID: <38DC3EA9.F84B3EDF@hermes.usherb.ca>
"J.W. Bizzaro" a ?crit :
> > OK, I'll try to summerize the way XML is used in Overflow with an example:
> >
> >
> >
> >
> > A document is a file and can contain many networks (it's the equivalent of a .c)
>
> Then this is something like Loci's 'workspace' or 'workflow diagram', or
> Jarl's 'dataflow structure'.
Something I forgot to say about documents... if this document is in the
VFLOW_PATH, then the whole document can be used as a node in another document.
>
> >
> >
> > A network if the C equivalent of a function. Each document must contain a MAIN
> > network.
BTW, the network type can be three things: "subnet", "iterator" or
"threadedIterator". The "threadedIterator" is very experimental, so I will not
talk about it. A "subnet" is the C equivalent of a function, while the
"iterator" is the equivalent (not exact) of a loop. Actually an iterator is the
equivalent of a function that looks like
void foo(...)
{
while(condition)
{
do something
}
}
> >
> >
> >
> >
> >
> > This is a node definition. The name is arbitrary,
>
> The name is akin to Loci's identification number, which is really a URI to the
> XML representation of the node.
>
> > while the type corresponds to an Overflow node class.
>
> Great, this is just like Loci's locus types/classes.
>
Just to make sure everyone understand, the definition is the equivalent of a
function call, not a function prototype/implementation.
> > x and y are for the GUI.
>
> I think for VSH we should have the GUI store that information. If we are to
> have more than one interface available for VSH, x and y will not always be
> relevant. This is what we were going to do with Loci.
>
I didn't like that either. It was just simpler to have everything in one file
(since this is the only info that was GUI-dependent)
> > The parameters have to correspond to what the node expects.
>
> This is like a mime-type for link I/O? This is also something Loci was going
> to define.
I'm not sure what you're talking about...
>
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
> I'm not sure what you mean by value=256, cat, or frames.
>
Here's the C equivalent:
void foo(int aNumber);
main()
{
foo(256);
}
This would translate to:
Also about parameters... Here is a macro that appears on top of each file that
implements a node:
NODE_INFO(FIR,"Signal:DSP", "INPUT:FILTER", "OUTPUT",
"LENGTH:CONTINUOUS:NONCAUSAL")
Here, FIR is the name of the class (the node's "type"), "Signal:DSP" is just a
classification for the menus, "INPUT" and "FILTER" are the names of the inputs
and "OUTPUT" is the name of the output. This node accepts 3 parameters
(arguments): LENGTH, CONTINUOUS and NONCAUSAL.
When the node is loaded (its library is dynamically linked), a function puts
that info in a node "database", which the GUI uses to know what node are
available (and takes what arguments).
> >
> >
> > Links define which node is connected to which. Input and output names need to be
> > defined since nodes can have more than one input/output.
>
> Excellent, just like Loci. Although Loci embedded (what Loci calls
> and 'connectors') in with the node information. This is how
> Loci defines a node (loci == node, although 'locus' is singular):
>
>
> file_select
>
>
>
>
>
We used to have links as a property of the nodes (before we switched to XML).
The reason we changed is that is that a Link in the GUI is an actual object, so
it was just simpler.
> (Brad, shouldn't we also have locus 'id=' in here?)
>
> In this example, when we say 'type=', we mean the same thing you do with
> 'type='. But our type 'document' is a node that stores data: a file. It's
> not where Loci sets up a network. What Overflow calls 'document', Loci calls
> 'workspace'.
>
> is the name of the interface component to be used. We're working on
> using more XML here, and the 'widget' representation in XML can be located
> anywhere on the Internet.
>
> and define the links (connectors) for this particular node.
> href points to the XML representation of the node it is connected to.
> xml:link is from an XML document linking tool that Brad has been using.
>
> Loci also gives the node an ID (not shown above) that is the location/URI of
> the node's XML representation. Here the GUI of Loci requests that a node
> called 'viewer1' gets linked to a node called 'document1':
>
>
>
>
>
>
>
>
> Other information related to a node (e.g., library URI and version number) can
> be kept between and
>
> >
> >
> > NetOutput means which node (and which output of that node) will be used as the
> > output of the whole network. The same applies to NetInput and NetCondition.
>
> What is the actual output? The screen, a file? Or is this something the user
> defines?
The output is what getOutput() returns... you can do whatever you like with it.
batchflow (text mode tool) writes it to stdout, vflow (the GUI tool) writes it
in a subwindow. If you want to save it in a file, all you need to do is to have
the last node be a "Save" node. ...or the last node can be a soundcard output...
In most cases, the output of the MAIN network is a nil object.
>
> >
> >
>
> In this case, the whole 'document' gets a 'parameter' tag?
>
> When I first came across Overflow (when you posted the announcement on
> gnotices), I noted to Brad how remarkably similar some of its features are to
> Loci's. This is particularly true for the XML representation of a network.
>
> This is something GMS (which uses no XML) needs to implement as well. And
> since Overflow and Loci are so similar, we should choose one definition. Can
> you comment on what you like or dislike about Loci's use of XML for network
> representation? Let's hammer this out right away.
I'm not that much a fan of XML... The only reason I used it was that it saved me
so much time (instead of writing a parser myself). So Anything that does the job
is OK for me.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Fri Mar 24 23:50:14 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
<38DC3470.D68AF122@geoserve.net> <38DC3EA9.F84B3EDF@hermes.usherb.ca>
Message-ID: <38DC4586.178AE513@geoserve.net>
Jean-Marc Valin wrote:
>
> Something I forgot to say about documents... if this document is in the
> VFLOW_PATH, then the whole document can be used as a node in another document.
Right. Loci can embed workspaces in workspaces too.
> BTW, the network type can be three things: "subnet", "iterator" or
> "threadedIterator". The "threadedIterator" is very experimental, so I will not
> talk about it. A "subnet" is the C equivalent of a function, while the
> "iterator" is the equivalent (not exact) of a loop. Actually an iterator is the
> equivalent of a function that looks like
>
> void foo(...)
> {
> while(condition)
> {
> do something
> }
> }
Understood.
> > Great, this is just like Loci's locus types/classes.
> >
>
> Just to make sure everyone understand, the definition is the equivalent of a
> function call, not a function prototype/implementation.
Okay, I was showing you some actual locus implementation in XML. Loci doesn't
keep workspace information in a single flat file like Overflow does. Loci
(right now) uses the local filesystem to help organize the structure. I'll
let you, Jarl and Brad work out how VSH will do it.
> > This is like a mime-type for link I/O? This is also something Loci was going
> > to define.
>
> I'm not sure what you're talking about...
I mean, when Overflow defines a link, does it also define the type of data
that is passed through the link?
> > I'm not sure what you mean by value=256, cat, or frames.
> >
>
> Here's the C equivalent:
>
> void foo(int aNumber);
>
> main()
> {
> foo(256);
> }
>
> This would translate to:
>
>
>
>
Gotcha, these are akin to function parameters in C.
> When the node is loaded (its library is dynamically linked), a function puts
> that info in a node "database", which the GUI uses to know what node are
> available (and takes what arguments).
How are you making this 'database'? Is it an external db like mySQL or your
own creation?
> We used to have links as a property of the nodes (before we switched to XML).
> The reason we changed is that is that a Link in the GUI is an actual object, so
> it was just simpler.
That's a good point. Loci also treats connectors as objects. But they are
always a subclass of loci (nodes).
> > What is the actual output? The screen, a file? Or is this something the user
> > defines?
>
> The output is what getOutput() returns... you can do whatever you like with it.
> batchflow (text mode tool) writes it to stdout, vflow (the GUI tool) writes it
> in a subwindow. If you want to save it in a file, all you need to do is to have
> the last node be a "Save" node. ...or the last node can be a soundcard output...
> In most cases, the output of the MAIN network is a nil object.
Excellent. In Loci, we were going to have unconnected output connectors
(links) be 'outputs' of this type. If these outputs are left unconnected by
the user, Loci would send the data to the parent of the workspace (document).
And if there was no parent (the workspace is the highest-level workspace),
Loci would send the data to stdout.
> I'm not that much a fan of XML... The only reason I used it was that it saved me
> so much time (instead of writing a parser myself). So Anything that does the job
> is OK for me.
I like it.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Sat Mar 25 00:02:06 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
Message-ID: <38DC484E.781D6528@geoserve.net>
Jean-Marc Valin wrote:
>
> OK, I'll try to summerize the way XML is used in Overflow with an example:
Brad and Jarl, perhaps GMS can reuse much of Overflow's code for handling XML
and network construction?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Sat Mar 25 00:08:02 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
<38DC3470.D68AF122@geoserve.net> <38DC3EA9.F84B3EDF@hermes.usherb.ca> <38DC4586.178AE513@geoserve.net>
Message-ID: <38DC49B2.CD741462@hermes.usherb.ca>
> > > Great, this is just like Loci's locus types/classes.
> > >
> >
> > Just to make sure everyone understand, the definition is the equivalent of a
> > function call, not a function prototype/implementation.
>
> Okay, I was showing you some actual locus implementation in XML. Loci doesn't
> keep workspace information in a single flat file like Overflow does. Loci
> (right now) uses the local filesystem to help organize the structure. I'll
> let you, Jarl and Brad work out how VSH will do it.
>
> > > This is like a mime-type for link I/O? This is also something Loci was going
> > > to define.
> >
> > I'm not sure what you're talking about...
>
> I mean, when Overflow defines a link, does it also define the type of data
> that is passed through the link?
Well, that's not necessary since all Overflow objects derive from the Object
class. Of course, some nodes require their input to be a certain type, so they
will check the type. However some nodes, like "save", don't care about the type,
since all objects know how to save themselves. Also some nodes, like "load"
don't even know what type they will return (it depends on what's in the file
their loading). BTW, the virtual getOutput() method defined in the base Node
class returns a type ObjectRef, which is a reference-counted pointer (aka
"smart-pointer") to an Object (the base class). For those who know the language,
our object system is a lot inspired by Smalltalk.
> > When the node is loaded (its library is dynamically linked), a function puts
> > that info in a node "database", which the GUI uses to know what node are
> > available (and takes what arguments).
>
> How are you making this 'database'? Is it an external db like mySQL or your
> own creation?
It's not a database in that sense, it's just a structure (I use an STL map) that
maps a node name to a set of information for the GUI (inputs, outputs,
parameters, ...).
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Sat Mar 25 01:05:30 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Jungle Monkey
Message-ID: <38DC572A.D7852AB1@geoserve.net>
I think this is something like Napster:
http://www.eecs.umich.edu/~dhelder/misc/jm/
which could be used to make distributed VSH nodes easily accessible across the
Internet.
Jeff
From jarl at casema.net Sat Mar 25 06:04:33 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca> <38DC3470.D68AF122@geoserve.net>
Message-ID: <38DC9D41.99AED1B2@casema.net>
>
> > A document is a file and can contain many networks (it's the equivalent of a .c)
>
> Then this is something like Loci's 'workspace' or 'workflow diagram', or
> Jarl's 'dataflow structure'.
Yes.
> > This is a node definition. The name is arbitrary,
>
> The name is akin to Loci's identification number, which is really a URI to the
> XML representation of the node.
GMS uses dname : description name, or 'human readable name',
and name : an id number. Every instance of gms gets a id number too, so the
'Loci URI' is equalavent to gms's 'instance id + name', a 64bit number.
> > while the type corresponds to an Overflow node class.
>
> Great, this is just like Loci's locus types/classes.
This is something gms wont touch, class 'types' wont exsist in this layer. They will
simply be handled as a node and passed to overflow.
> > x and y are for the GUI.
>
> I think for VSH we should have the GUI store that information. If we are to
> have more than one interface available for VSH, x and y will not always be
> relevant. This is what we were going to do with Loci.
Seems logical. There's no need to store x\y into the processing layer. But it wont
harm the GUI too, it can just ignore those values. Or is there a special reason to
have them inside the nodes?
> When I first came across Overflow (when you posted the announcement on
> gnotices), I noted to Brad how remarkably similar some of its features are to
> Loci's. This is particularly true for the XML representation of a network.
>
> This is something GMS (which uses no XML) needs to implement as well. And
> since Overflow and Loci are so similar, we should choose one definition. Can
> you comment on what you like or dislike about Loci's use of XML for network
> representation? Let's hammer this out right away.
OK, the overflow & loci people should define this definition. GMS will only use a few
lines where the gui and overflow layer will use every single line. Make it whatever
you
see fits best.
From gvd at redpoll.pharmacy.ualberta.ca Sat Mar 25 14:32:13 2000
From: gvd at redpoll.pharmacy.ualberta.ca (Gary Van Domselaar)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Front to middle communication
References: <200003241448.JAA156374@archa10.cc.uga.edu>
Message-ID: <38DD143D.B2EEF023@redpoll.pharmacy.ualberta.ca>
Brad Chapman wrote:
>
> Jeff wrote:
> > I was just thinking that if we're using CORBA at all anywhere, why
> not use it
> > everywhere?
>
> Wow! Did you really write this? CORBA everywhere, yay! :-)
>
> I think if we want to consider CORBA communication between the
> front GUI and the middle the most important thing is to consider how
> easy it will be for other people to implement front ends. Will CORBA
> be more difficult than sockets?
I'm inclined to think that CORBA would be a barrier for other people who
might want to implement their own front end. If the front-end need only
an XML stream from the loci middel ('If' being the operative word here),
then I'm not sure what we would stand to gain from a GUI-Loci-middle
CORBA communication layer.
> We can define a small CORBA interface that will mirror what we
> have now with sockets, and this could provide us some additional
> flexibility in terms of passing data (and might help deal with the
> problem I mentioned earlier about how to pass large amount of data
> from databases or files to the front).
> I don't really want to make this change right yet unless we have a
> big problem we can't overcome with since sockets are working and we'll
> have millions of other changes to make to fit in with the 'vsh'
> project collaboration.
> What do you all think?
I say stay the course, unless someone can put forward a good argument to
use CORBA.
g.
--
Gary Van Domselaar
gary@bioinformatics.org
http://www.bioinformatics.org/~gary
----------------------------------------------------
bioinformatics.org: The Open Lab
http://www.bioinformatics.org/
From gvd at redpoll.pharmacy.ualberta.ca Sat Mar 25 14:55:19 2000
From: gvd at redpoll.pharmacy.ualberta.ca (Gary Van Domselaar)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] xml database stuff
References: <200003241434.JAA83976@archa12.cc.uga.edu>
Message-ID: <38DD19A7.6FEFFBA9@redpoll.pharmacy.ualberta.ca>
Brad Chapman wrote:
> I've been looking at the shelve module and python and thought of a
> way to do this hopefully rather quickly:
>
> 1. Convert the current storage ids (ie.
> 'workspace1/workspace2/viewer1.xml')
> into unique ids and store this mapping in a dictionary (random_id
> -> current_id).
>
> 2. Shelve the xml according to their random ids.
>
> 3. Provide lots o' helper functions to make this work smoothly with
> the current set up.
>
> What do you all think? Good idea? Bad idea?
I don't know much about python's shelve module, but from what you
describe it seems pretty obvious. It sounds to me like a good idea, but
probably not as good as storing in a real DBMS (for sophisticated
querying etc.). If you still want to use XDBM, once it has python
bindings, then I suggest you implement XML storage in a fashion that
will facilitate its storage in XDBM, and not worry too much right now
about issues of security, elegance, sophistication, etc. That will come
when we store our XML in a professionally designed DBMS.
g.
--
Gary Van Domselaar
gary@bioinformatics.org
http://www.bioinformatics.org/~gary
----------------------------------------------------
bioinformatics.org: The Open Lab
http://www.bioinformatics.org/
From bizzaro at geoserve.net Sat Mar 25 22:04:16 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Painting by Numbers with SVG
Message-ID: <38DD7E30.938AA44D@geoserve.net>
http://www.xml.com/pub/2000/03/15/deviant/index.html
Jeff
From bizzaro at geoserve.net Sat Mar 25 22:06:36 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] XML compression
Message-ID: <38DD7EBC.15FA77B7@geoserve.net>
http://www.xml.com/pub/2000/03/22/deviant/index.html
Jeff
From chapmanb at arches.uga.edu Sun Mar 26 18:37:24 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] hOpla
Message-ID: <200003262340.SAA111256@archa12.cc.uga.edu>
>
> What do you think of this, Brad?
>
> http://hopla.linuxbe.org/en/
Well, I guess it seems to be a set of C classes to map XML ->
relational database (PostgreSQL). It is kind of hard for me to assess
it since there isn't much documentation and the comments in the code
are written in French (and I only speak about 3 words of French :-)
The thing we really need to look at is how easily we can query and
adjust XML in a database. There is a lot of DOM manipulation and SAX
parsing in the current code to change the XML and get info from in,
and if we moved into a relational database scheme such as this it
would all have to be rewritten. This might be inevitable, but if we
have to do it, I'd rather only do it once, so we should really have a
darn good system ready to move to before we do it.
I've been looking more into the shelve module (the proposal I shot
out before), but I don't really think now that it will work.
Apparently the files it creates are really large, and the database it
uses to store things has a relatively low storage limit (this is just
based on reading the comp.lang.python archives, not really on any
actual knowledge of mine).
I've been thinking a lot back to the WHAX
(http://www.seas.upenn.edu/~liefke/whax.html) research that Jennifer
clued us in to a while back, and this just seems like the ideal system
for what we are doing. We could maintain a huge database of all the
xml--pull out specific documents and then query/update them using
standard python xml tools (DOM and XML parsers) and then update them.
It seems like we could almost have a really weak (well, not true to
their beautiful vision) version of this if my shelve idea would work,
or if we could think of another good way to store things in an
analagous manner.
Right now I'm kind of stumped on this. Does anyone else have any
brilliant ideas?
Brad
From jarl at casema.net Mon Mar 27 01:24:54 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] hOpla
References: <200003262340.SAA111256@archa12.cc.uga.edu>
Message-ID: <38DEFEB6.D853CC95@casema.net>
> It seems like we could almost have a really weak (well, not true to
> their beautiful vision) version of this if my shelve idea would work,
> or if we could think of another good way to store things in an
> analagous manner.
> Right now I'm kind of stumped on this. Does anyone else have any
> brilliant ideas?
What is the problem, when you can store the XML documents by key = uriT
into a sql (mysql) database?
I've the feeling the Loci people have though of this some more, what are the
(practical) problems?
From bizzaro at geoserve.net Mon Mar 27 23:49:34 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] overflow<->loci translation and 3 basic gui objects
Message-ID: <38E039DE.BFA7B00B@geoserve.net>
It's an understatement to say that VSH is a complex system. But from the
user's point of view, it should be simple. So, my motto for the development
of the VSH GUI is K.I.S.: Keep It Simple!
That said, I want define 3 basic objects for the GUI. I started out with 4
under Loci:
(1) Workspace
(2) Locus (node)
(3) Connector
(4) Windowlet
But thinking about this more recently, I believe (1) and (4) are the same.
Afterall, workspaces are always in windowlets (windows) and windows always
contain workspaces.
So, how about this. The 3 basic GUI objects:
(1) Window
(2) Locus (node)
(3) Connector
(Note: a 'network' is a collection of nodes and probably shouldn't be
considered a separate object by the GUI.)
This way we have wonderful nesting and recursion: Windows contain nodes, nodes
contain connectors and windows, windows contain nodes, etc., etc.
Okay, now this brings me to how objects are named in both Overflow and Loci.
As we have seen, both applications are remarkably similar, varying (so it
seems) mostly by how things are named. Here is a quick translation between
the two:
Overflow Loci
-------- --------
Document Windowlet/workspace
Network/subnet Workflow diagram
Node Locus
Link Connector
We need to standardize on these names. I can settle with using Overflow's
terminology in every case except for 'document'. Since VSH will be dealing
with large text files often called 'documents', I think that name is
confusing. So, I propose we (including Overflow) change this to something
else.
Since the Loci equivalent to 'document' is 'windowlet' (and 'workspace'), and
since I mention above those two can be considered the same object, I propose
'document' be changed to 'window'.
Also, I'm not sure whether I like 'link' or 'connector' better. What do you
guys like? We could also consider 'line' and 'branch'.
So, maybe VSH could use the following (basic and collective) object names:
Overflow Loci VSH
-------- -------- ---------
Document Windowlet/workspace Window
Network/subnet Workflow diagram Network
Node Locus Node
Link Connector Link (or connector)
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 00:13:27 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net>
Message-ID: <38E03F77.6751C58F@geoserve.net>
"J.W. Bizzaro" wrote:
>
> So, how about this. The 3 basic GUI objects:
>
> (1) Window
> (2) Locus (node)
> (3) Connector
Also, in GUI terms, the node is an icon.
You know, if we really want to go wacky, the core can define 3 basic objects:
(1) Network
(2) Node
(3) Link
Networks contain nodes, nodes contain links and networks, networks contain
nodes, nodes contain links and networks, networks contain nodes, nodes contain
links and networks, networks contain nodes, nodes contain links and networks,
networks contain nodes, nodes contain links and networks, networks contain
nodes, nodes contain links and networks, networks contain nodes, hahaha!
So, in Overflow, 'document' can be replaced with 'node', no?
Why not?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 00:12:56 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net>
Message-ID: <38E03F58.BBBD4343@hermes.usherb.ca>
> It's an understatement to say that VSH is a complex system. But from the
> user's point of view, it should be simple. So, my motto for the development
> of the VSH GUI is K.I.S.: Keep It Simple!
Well, maybe we should have more than one GUI, or at least a GUI with a couple
"modes". There are many applications that require a different interface:
-a GUI equivalent to something like "ls -l | awk '{print $2}' | sed 's/aa/bb/'
| sort -u > somewhere" (a la Loci)
-a system to run complex distributed tasks (a la GMS)
-a signal processing framework a la Matlab/Simulink/Lab View (a la Overflow)
I don't see how the same interface can handle all those correctly.
>
> That said, I want define 3 basic objects for the GUI. I started out with 4
> under Loci:
>
> (1) Workspace
> (2) Locus (node)
> (3) Connector
> (4) Windowlet
>
> But thinking about this more recently, I believe (1) and (4) are the same.
> Afterall, workspaces are always in windowlets (windows) and windows always
> contain workspaces.
>
> So, how about this. The 3 basic GUI objects:
>
> (1) Window
> (2) Locus (node)
> (3) Connector
>
> (Note: a 'network' is a collection of nodes and probably shouldn't be
> considered a separate object by the GUI.)
Well, a network would be the equivalent of a "group" in a vector drawing app.
>
> This way we have wonderful nesting and recursion: Windows contain nodes, nodes
> contain connectors and windows, windows contain nodes, etc., etc.
>
> Okay, now this brings me to how objects are named in both Overflow and Loci.
> As we have seen, both applications are remarkably similar, varying (so it
> seems) mostly by how things are named. Here is a quick translation between
> the two:
>
> Overflow Loci
> -------- --------
> Document Windowlet/workspace
> Network/subnet Workflow diagram
> Node Locus
> Link Connector
I prefer workspace de document (which is too generic). I prefer Node though, a
month ago I had never heard the word Loci/Locus (sorry, engligh is my second
language). I don't mind Link of Connector (link is shorter, bout that's all)...
pipe, maybe?..
As for Network... we have to be careful... I Overflow (though it's not
implemented exactly that way), you can see "Network" as a base class and
"subnet", "iterator" and "threadedIterator" (possibly more later) as subclasses
of Network.
>
> We need to standardize on these names. I can settle with using Overflow's
> terminology in every case except for 'document'. Since VSH will be dealing
> with large text files often called 'documents', I think that name is
> confusing. So, I propose we (including Overflow) change this to something
> else.
>
> Since the Loci equivalent to 'document' is 'windowlet' (and 'workspace'), and
> since I mention above those two can be considered the same object, I propose
> 'document' be changed to 'window'.
>
> Also, I'm not sure whether I like 'link' or 'connector' better. What do you
> guys like? We could also consider 'line' and 'branch'.
>
> So, maybe VSH could use the following (basic and collective) object names:
>
> Overflow Loci VSH
> -------- -------- ---------
> Document Windowlet/workspace Window
> Network/subnet Workflow diagram Network
> Node Locus Node
> Link Connector Link (or connector)
>
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 00:29:32 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net>
Message-ID: <38E0433C.2B97AB08@hermes.usherb.ca>
> So, in Overflow, 'document' can be replaced with 'node', no?
No. You're confusing two things here: in C we's say "function call" vs "function
implementation". The tag refers to a function call (a node
instantiation), while the or can be viewed as a function
implementation (node definition) from other nodes.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> y="131.000000">
>
>
>
>
>
>
>
>
>
>
>
>
> Why not?
>
> Jeff
> --
> +----------------------------------+
> | J.W. Bizzaro |
> | |
> | http://bioinformatics.org/~jeff/ |
> | |
> | BIOINFORMATICS.ORG |
> | The Open Lab |
> | |
> | http://bioinformatics.org/ |
> +----------------------------------+
>
> _______________________________________________
> pipet-devel maillist - pipet-devel@bioinformatics.org
> http://bioinformatics.org/mailman/listinfo/pipet-devel
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Tue Mar 28 01:13:25 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca>
Message-ID: <38E04D85.811D236C@geoserve.net>
Jean-Marc Valin wrote:
>
> Well, maybe we should have more than one GUI, or at least a GUI with a couple
> "modes". There are many applications that require a different interface:
> -a GUI equivalent to something like "ls -l | awk '{print $2}' | sed 's/aa/bb/'
> | sort -u > somewhere" (a la Loci)
> -a system to run complex distributed tasks (a la GMS)
> -a signal processing framework a la Matlab/Simulink/Lab View (a la Overflow)
>
> I don't see how the same interface can handle all those correctly.
Ahhh, but this is where we use XML to define GUIs! As I mentioned earlier,
XML documents can be arranged according to the arrangement of nodes in a
network. Then the XML can be translated into a Gtk interface using something
like libglade.
What I haven't brought up yet is that 'windows' can switch between views. At
one moment, a window can show a network of nodes. The next moment, this
window can be switched to show Gtk widgets arranged as I mention above.
> I prefer workspace de document (which is too generic). I prefer Node though, a
> month ago I had never heard the word Loci/Locus (sorry, engligh is my second
> language).
Loci/locus is actually a Latin word, meaning location :-)
> I don't mind Link of Connector (link is shorter, bout that's all)...
> pipe, maybe?..
Pipe may be confused with Unix pipes, which are local. Link is okay, and is
reminiscent of HTML links.
> As for Network... we have to be careful... I Overflow (though it's not
> implemented exactly that way), you can see "Network" as a base class and
> "subnet", "iterator" and "threadedIterator" (possibly more later) as subclasses
> of Network.
So, what are nodes a subclass of?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 01:17:05 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
Message-ID: <38E04E61.B2634CC5@geoserve.net>
Jean-Marc Valin wrote:
>
> No. You're confusing two things here: in C we's say "function call" vs "function
> implementation". The tag refers to a function call (a node
> instantiation), while the or can be viewed as a function
> implementation (node definition) from other nodes.
You can't say the tag refers to BOTH function calls AND
implementations, to make it more recursive?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 01:18:52 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E04D85.811D236C@geoserve.net>
Message-ID: <38E04ECC.7B84B42D@hermes.usherb.ca>
> So, what are nodes a subclass of?
The Node class doesn't have any parent, though it might inherit from Object if
we need to (probably). ...and Network inherits from Node.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 01:22:11 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net>
Message-ID: <38E04F93.C45AC9FE@hermes.usherb.ca>
> > No. You're confusing two things here: in C we's say "function call" vs "function
> > implementation". The tag refers to a function call (a node
> > instantiation), while the or can be viewed as a function
> > implementation (node definition) from other nodes.
>
> You can't say the tag refers to BOTH function calls AND
> implementations, to make it more recursive?
If you can find a way to do that in C, you have found how to do it with
Overflow. If not, forget it :-). I don't see how, it's really two different
things... If I had to replace Document by something existing, I'd choose Network
(which, remember, derives from Node!).
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jarl at casema.net Tue Mar 28 00:22:21 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca>
Message-ID: <38E0418D.A96D3D63@casema.net>
>
> Well, maybe we should have more than one GUI, or at least a GUI with a couple
> "modes". There are many applications that require a different interface:
> -a GUI equivalent to something like "ls -l | awk '{print $2}' | sed 's/aa/bb/'
> | sort -u > somewhere" (a la Loci)
> -a system to run complex distributed tasks (a la GMS)
> -a signal processing framework a la Matlab/Simulink/Lab View (a la Overflow)
>
> I don't see how the same interface can handle all those correctly.
Have different modes like you suggest:
- normal mode: editing nodes and 'relations'
- access mode: editing the security\accessabilities (of the brokering level)
- detail mode: editing the PL (overflow) nodes
Maybe learn from how 3Dstudio works.
From bizzaro at geoserve.net Tue Mar 28 01:35:11 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui
objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E04D85.811D236C@geoserve.net> <38E04ECC.7B84B42D@hermes.usherb.ca>
Message-ID: <38E0529F.4CEED298@geoserve.net>
Jean-Marc Valin wrote:
>
> > So, what are nodes a subclass of?
>
> The Node class doesn't have any parent, though it might inherit from Object if
> we need to (probably). ...and Network inherits from Node.
Maybe I should say 'subset' rather than 'subclass', so that I'm not confusing
OO terminology with ordinary logic.
This is what I'm trying to saying in logical terms:
The Overflow way:
'Documents' contain networks
Networks are of types subnet and iterator
Networks contain nodes and links
But can't we say...
Nodes contain links and networks
Networks are of types subnet and iterator
Networks contain nodes
Nodes contain links and networks
...
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 01:48:39 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E0418D.A96D3D63@casema.net>
Message-ID: <38E055C7.ECE117C0@geoserve.net>
jarl van katwijk wrote:
>
> Have different modes like you suggest:
> - normal mode: editing nodes and 'relations'
> - access mode: editing the security\accessabilities (of the brokering level)
> - detail mode: editing the PL (overflow) nodes
I see 3 modes/views:
(1) Network normal view: Nodes and relations are visible at
full size (icons and subwindows shown)
(2) Network world view: Nodes and relations are visible and
fit entirely in the window (icons and subwindows not shown)
(3) GUI view: Gtk widgets from all nodes are visible
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 28 00:54:40 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E0418D.A96D3D63@casema.net> <38E055C7.ECE117C0@geoserve.net>
Message-ID: <38E04920.78735DA3@casema.net>
> (1) Network normal view: Nodes and relations are visible at
> full size (icons and subwindows shown)
> (2) Network world view: Nodes and relations are visible and
> fit entirely in the window (icons and subwindows not shown)
> (3) GUI view: Gtk widgets from all nodes are visible
The "GTk widget" from a node?
A node has a gtk-widget or is a gtk-widget 'created' by the gui to visualise it?
From bizzaro at geoserve.net Tue Mar 28 01:58:45 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E0418D.A96D3D63@casema.net> <38E055C7.ECE117C0@geoserve.net>
Message-ID: <38E05825.851881C1@geoserve.net>
"J.W. Bizzaro" wrote:
>
> > Have different modes like you suggest:
> > - normal mode: editing nodes and 'relations'
> > - access mode: editing the security\accessabilities (of the brokering level)
> > - detail mode: editing the PL (overflow) nodes
I actually want to try and hide these 'modes' from the user. They should be
indistinguishable from each other.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 02:01:00 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca>
Message-ID: <38E058AC.26F3FA21@geoserve.net>
Jean-Marc Valin wrote:
>
> If you can find a way to do that in C, you have found how to do it with
> Overflow. If not, forget it :-). I don't see how, it's really two different
> things... If I had to replace Document by something existing, I'd choose Network
> (which, remember, derives from Node!).
I didn't realize Overflow had that limitation. Perhaps then the GMS layer can
provide the recursion?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 28 01:06:55 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:26 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui
objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca> <38E058AC.26F3FA21@geoserve.net>
Message-ID: <38E04BFF.85220082@casema.net>
> >
> > If you can find a way to do that in C, you have found how to do it with
> > Overflow. If not, forget it :-). I don't see how, it's really two different
> > things... If I had to replace Document by something existing, I'd choose Network
> > (which, remember, derives from Node!).
>
> I didn't realize Overflow had that limitation. Perhaps then the GMS layer can
> provide the recursion?
Uhh.. sorry, dont get it what this 'call\implementation' is about?
Somebody could explain?
From bizzaro at geoserve.net Tue Mar 28 02:22:42 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E0418D.A96D3D63@casema.net> <38E055C7.ECE117C0@geoserve.net> <38E04920.78735DA3@casema.net>
Message-ID: <38E05DC2.BB77F60D@geoserve.net>
jarl van katwijk wrote:
>
> > (1) Network normal view: Nodes and relations are visible at
> > full size (icons and subwindows shown)
> > (2) Network world view: Nodes and relations are visible and
> > fit entirely in the window (icons and subwindows not shown)
> > (3) GUI view: Gtk widgets from all nodes are visible
>
> The "GTk widget" from a node?
> A node has a gtk-widget or is a gtk-widget 'created' by the gui to visualise it?
Each node has user-settable parameters (see what pops up when you double-click
on an Overflow node). As I mentioned before, these parameters are
'represented by XML' tags and translated into Gtk widgets so that the
parameters can be set. This XML makes up the 'XML representation of a GUI'.
The XML can then be arranged according to the arrangement of nodes in a
network. The result is a 'composite' GUI.
This seems to be difficult for everyone to grasp. I'm not sure anyone on the
Loci list understood me either, except maybe Gary. Gary, can you explain this
differently?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 02:27:16 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca> <38E058AC.26F3FA21@geoserve.net> <38E04BFF.85220082@casema.net>
Message-ID: <38E05ED4.2DA647A5@geoserve.net>
jarl van katwijk wrote:
>
> > > If you can find a way to do that in C, you have found how to do it with
> > > Overflow. If not, forget it :-). I don't see how, it's really two different
> > > things... If I had to replace Document by something existing, I'd choose Network
> > > (which, remember, derives from Node!).
> >
> > I didn't realize Overflow had that limitation. Perhaps then the GMS layer can
> > provide the recursion?
>
> Uhh.. sorry, dont get it what this 'call\implementation' is about?
> Somebody could explain?
In procedural languages you define a procedure with its parameters. This is
what Jean-Marc means by 'implementation'. Then somewhere else in the program
you give the procedure 'call'.
But Jean-Marc, you can call a procedure from within its implementation, giving
you some recursion, right? Can Overflow do that?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 02:36:41 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca>
Message-ID: <38E06109.7F52F78E@geoserve.net>
Jean-Marc Valin wrote:
>
> If you can find a way to do that in C, you have found how to do it with
> Overflow. If not, forget it :-). I don't see how, it's really two different
> things... If I had to replace Document by something existing, I'd choose Network
> (which, remember, derives from Node!).
Then how about this:
...
...
Or what would these be called in the newspeak? BLNode, PLNode?
There will be SOME differences between the 2 types of networks, so we probably
shouldn't use the same words/tags for both.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 28 02:01:01 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca> <38E058AC.26F3FA21@geoserve.net> <38E04BFF.85220082@casema.net> <38E05ED4.2DA647A5@geoserve.net>
Message-ID: <38E058AD.C1F874FF@casema.net>
"J.W. Bizzaro" wrote:
> jarl van katwijk wrote:
> >
> > > > If you can find a way to do that in C, you have found how to do it with
> > > > Overflow. If not, forget it :-). I don't see how, it's really two different
> > > > things... If I had to replace Document by something existing, I'd choose Network
> > > > (which, remember, derives from Node!).
> > >
> > > I didn't realize Overflow had that limitation. Perhaps then the GMS layer can
> > > provide the recursion?
> >
> > Uhh.. sorry, dont get it what this 'call\implementation' is about?
> > Somebody could explain?
>
> In procedural languages you define a procedure with its parameters. This is
> what Jean-Marc means by 'implementation'. Then somewhere else in the program
> you give the procedure 'call'.
>
OK, I know that, but why it this an issue?
From jarl at casema.net Tue Mar 28 02:08:28 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E0418D.A96D3D63@casema.net> <38E055C7.ECE117C0@geoserve.net> <38E04920.78735DA3@casema.net> <38E05DC2.BB77F60D@geoserve.net>
Message-ID: <38E05A6C.AF6C1EA@casema.net>
>
> This seems to be difficult for everyone to grasp. I'm not sure anyone on the
> Loci list understood me either, except maybe Gary. Gary, can you explain this
> differently?
I understand. I needed this explanation because nodes in GMS have a GtkPlug,
hardcoded Gtk-code that's 'plugged' into the 'sockets' the GUI provides.
Loci uses the 'other' methode.
bye,
jarl
From chapmanb at arches.uga.edu Tue Mar 28 07:27:05 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Proposal for implementing permanent storage
Message-ID: <200003281229.HAA43112@archa12.cc.uga.edu>
Hello all;
I've been working in the middle on adding capabilities for
"permanent storage" of loci, so that they can be saved in one session
and recalled in a different session. I think this will be really
important to have working if we want to have good functionality with
the new merger with GMS and Overflow. So, I've come up with a proposal
for implementing permanent storage in the GUI and would like to toss
it out for people's comments before I get going with it (since I'm not
so hot at user interfaces). I think this is pretty much based on ideas
that Jeff posted previously. So here goes.
1. The permanent storage locus will be a "special case" of the
container locus that we currently have. That is, the locus will look
like the current container locus with a list/tree view of the contents.
1.1 For anyone who looks at the code, I'm planning on implementing
this as a new class since I'm not really very happy with how I did
widgets/container.py. Then I'll revamp these classes so one either
inherets from another or (more likely) so they both inheret from a
base class.
1.2 Each element in a list will be represented by the name of the
locus and a little pixmap according to it's type. Anyone know where to
get a bunch o' little pixmaps I could use for this?
1.3 The permanent storage locus will have to be special in that it is
either always present on the desktop, or can be called up through a
menu function.
2. The permanent storage locus will be implemented like a "separate
hard drive" from the rest of the workspace. So anything which moves
into permanent storage will be copied in, and anything that moves out
will be copied out.
3. loci will be moved out of permanent storage onto a workspace (so
they can be used or manipulated) via drag and drop (like things work
now for normal containers).
4. loci will be moved into containers via drag and drop from a locus
in the workspace. Right now I'm planning to implement a dnd from a
locus on the workspace using a button 2 click (the middle button for 3
button mouse users and buttons 1 + 2 for 2 button users). Then we can
explore further how to integrate dnd movement with the "regular local
loci movement" and get how we'd work that straightened out.
5. I'm not positive the best way to view deeper levels of directories
inside of the storage container. We could do this using:
a. A GtkTree (like I had originally implemented for regular
containers). I
_might_ be able to make this faster on a second try.
b, Make a double click on a container in the directory open up a
window/another loci that displays the contents on this directory.
c. Other ideas?
6. We will probably also need to implement a "trash" container to go
along with this.
I think that's what I've got for now. Any suggestions or comments
would be very welcome!
Brad
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 08:53:06 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca> <38E058AC.26F3FA21@geoserve.net> <38E04BFF.85220082@casema.net> <38E05ED4.2DA647A5@geoserve.net>
Message-ID: <38E0B942.85996C69@hermes.usherb.ca>
"J.W. Bizzaro" a ?crit :
>
> jarl van katwijk wrote:
> >
> > > > If you can find a way to do that in C, you have found how to do it with
> > > > Overflow. If not, forget it :-). I don't see how, it's really two different
> > > > things... If I had to replace Document by something existing, I'd choose Network
> > > > (which, remember, derives from Node!).
> > >
> > > I didn't realize Overflow had that limitation. Perhaps then the GMS layer can
> > > provide the recursion?
> >
> > Uhh.. sorry, dont get it what this 'call\implementation' is about?
> > Somebody could explain?
>
> In procedural languages you define a procedure with its parameters. This is
> what Jean-Marc means by 'implementation'. Then somewhere else in the program
> you give the procedure 'call'.
>
> But Jean-Marc, you can call a procedure from within its implementation, giving
> you some recursion, right? Can Overflow do that?
Yes, you can do that in Overflow. There are two ways to do it, but you don't
need to have mean two different things. You can see in TimeFilter.cc that
the getOutput method calls this->getOutput() so the output is the node is fed
back in the node. I'd call this implicit recursion. The other way is not fully
implemented yet. When it is, you'll be able to explicitly connect the output of
a node to its input (or the input of a node "upstream"). The overflow model
already supports that, but for now, the network initialization will fail.
Also, about node parameters. I think there's a little misunderstanding. The
tag in the doesn't say which parameters are available, but
which argument is passed to the node. The parameter "declarations" are in two
places:
-For built-in nodes (.cc files), the parameters are declared as an argument to
NODE_INFO on top of the file.
-For networks (that can be used as nodes), every time there's an argument of
type "subnet_param" for a node in that network, the network will have this
parameter. example:
Here, when including network "foo" as a node, you will need to provide a
parameter named "myParam" that will be substituted as "param2" in node bar.
Jean-Marc
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 09:04:11 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca> <38E06109.7F52F78E@geoserve.net>
Message-ID: <38E0BBDB.E94607F4@hermes.usherb.ca>
>
>
>
>
>
>
> ...
>
> ...
>
>
>
You can't say GMSNode, since this could also be included as an Overflow Node.
BTW, the reason for "Document" is that XML requires ONE toplevel tag and since I
can have many networks in my file, I used Document, which only refers to the
fact that everything is in a file. But, hat about using the same type of things
that Pascal programs have: Nested functions. You'd have a toplevel network,
which would contain other networks...
.
.
..
JEan-Marc
From deanne at density.biop.umich.edu Tue Mar 28 10:30:37 2000
From: deanne at density.biop.umich.edu (deanne@density.biop.umich.edu)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Greetings.
In-Reply-To: <200003281229.HAA43112@archa12.cc.uga.edu>
Message-ID:
Thought I'd just shoot a greeting out here. I'm a graduate student
interested in becoming involved with the Loci project. I'm getting up to
speed now by reading the mailing list. I've installed all the necessary
packages, so I'll lurk around and try to make heads or tails of what's
going on.
Deanne Taylor Biophysics Graduate Program
deanne@density.biop.umich.edu University of Michigan
"Easy-open instructions inside box." Ann Arbor
From stein at fmnh.org Tue Mar 28 10:57:28 2000
From: stein at fmnh.org (Jennifer Steinbachs)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] BOND. The Distributed Object Multi-Agent System.
In-Reply-To:
Message-ID:
Check out http://bond.cs.purdue.edu
A group of researchers at purdue university are constructing a virtual
laboratory for structural biology research. Sounds very promising.
-jennifer
-----------------------------------
J. Steinbachs, Ph.D.
Computational Biologist
Dept of Botany
The Field Museum
Chicago, IL 60605-2496
office: 312-665-7810
fax: 312-665-7158
http://cb.fmnh.org
-----------------------------------
From bizzaro at geoserve.net Tue Mar 28 16:04:04 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Greetings.
References:
Message-ID: <38E11E44.58205120@geoserve.net>
Hi Deanne!
Welcome aboard. If you are interested in the collaborative that Loci is now
part of, you may want to subscribe to the VSH list:
http://bioinformatics.org/mailman/listinfo/pipet-devel/
The same goes for others on the pipet-devel list. This (pipet-devel) list
may soon be split up into 2 lists: 1 for dicussions about the VSH GUI (which
is what Loci will become) and 1 for discussions about porting bioinformatics
applications to VSH.
Cheers.
Jeff
deanne@density.biop.umich.edu wrote:
>
> Thought I'd just shoot a greeting out here. I'm a graduate student
> interested in becoming involved with the Loci project. I'm getting up to
> speed now by reading the mailing list. I've installed all the necessary
> packages, so I'll lurk around and try to make heads or tails of what's
> going on.
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 16:43:37 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <200003282049.NAA32328@martin.pharmacy.ualberta.ca>
Message-ID: <38E12789.EC9F05F5@geoserve.net>
Gary Van Domselaar wrote:
>
> The second concept concerns the connections/links made from one application/node/icon to
> another.
...
> The third concept concerns nesting of 'networks'.
...
Thanks Gary. Basically, XML representations of the GUI are concatonated
(placed end-to-end) when the nodes are related by simple link:
But when the nodes are related by nesting (a node contains a network of
nodes), XML representations are nested:
And both formats can be translated directly to Gtk: The first format places
widgets/GUIs in adjacent cells in a table, and the second format places one
widget/GUI inside of another (NodeGUI 1 is the container for NodeGUI 2).
(Remember, the widget/GUI appears in the window of the node that is parent to
the network.)
Now, you may be thinking 'Hey, this is going to produce one very big GUI, if
the parent has a network containing 100s of nodes!' But the trick (and a very
neat one at that) is that the GUIs from individual nodes can be switched on
and off. Recall that I mentioned you can switch between network and GUI views
in each window. Well, switch a node's window view to network (and not GUI),
and its GUI won't appear in its parent's GUI. And this can all be saved! The
result is, you have custom-taylored GUIs for each node.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From chapmanb at arches.uga.edu Tue Mar 28 17:38:33 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Greetings.
Message-ID: <200003282241.RAA121792@archa11.cc.uga.edu>
Hi Deanne;
I just went through the overwhealming task of getting up to speed
with Loci a few months ago, so I know it can be quite a task! If you
are interested in coding, I have quite a few small (and large)
projects that I would be more than happy to direct your way, if you
are interested :-) Of course, Jeff coordinates this project but it
might be helpful to start with a few small things at first to get the
feel for the code and all that (unless you are all ready to jump off
on a big project!).
As Jeff said, we are going to be merging with two other projects
(GMS and Overflow) into one huge project tentatively called VSH. There
are currently tons of coding choices, including programming in C, C++
or python, depending on what you have experience in or are interested
in. The Loci code provides a beautiful GUI courtesy of Jeff's creative
mind and a bunch of classes to represent the GUI as XML. The GMS and
Overflow projects will eventually provide the processing power behind
all of this, and we'll be communicating with them via a CORBA
interface (which is nearly designed in it's first stage) using the
XML descriptions of the GUI.
If you are creative (unlike me!), there are millions of things to
work on in the graphical user interface. We use the python bindings to
Gnome/Gtk for the current GUI (although multiple GUIs are planned) and
Jeff has a lot of great ideas for things that still need
implementation. There is also lots to do with XML processing (we use
the SAX interface for parsing XML and DOM for manipulating it) and
other stuff.
Sorry to go on--Loci is a big project and can be quite
overwhealming at times, so I am very excited to hear someone is
interested in pitching in. And, as a graduate of Michigan State, I
won't even hold it against you that you go to U of M :-) Thanks again
for writing--look forward to hearing more from you!
Brad
From mary18 at yifan.net Thu Mar 30 06:46:57 2000
From: mary18 at yifan.net (mary18@yifan.net)
Date: Fri Feb 10 19:19:27 2006
Subject: [Pipet Devel] Email Advertising Works--Special Rates till Friday
References: 0A8A1AE4F
Message-ID:
PUT EMAIL MARKETING TO WORK FOR YOU...
Call NOW and receive 50,000
additional emails with your order
for only $100. Thats 40,000 FREE emails!!!
WE HAVE OPT-IN LISTS!!!!
see below for removal.
Special Ends Friday March 31, 2000
MLM'ers, We can build your downline.
Imagine having a product or idea and selling it
for only $10.
Now imagine sending an ad for your product or idea
to 25 million people!
If you only get a 1/10 of 1% response
you have just made $250,000!!
You hear about people getting rich off
the Internet everyday on TV,
now is the perfect time for you
to jump in on all the action.
FACT.
With the introduction of the Internet, one primary
KEY to conducting your business successfully is
creating massive exposure in a cost effective
manner.
FACT.
The experts agree that email marketing is one of
the most cost effective forms of promotion in
existence today.
Electronic mail has overtaken the telephone as the
primary means of business communication.(American
Management Association)
Of online users 41 percent check their email daily.
"A gold mine for those who can take advantage of
bulk email programs"- The New York Times
"Email is an incredible lead generation tool"
-Crains Magazine
"Blows away traditional Mailing"-Advertising Age
"It's truly arrived. Email is the killer app so
far in the online world"-Kate Delhagen, Forrester
Research Analyst
Why not let a professional company handle your
direct email marketing efforts for you?
*We will assist you in developing your entire
campaign!
*We can even create your ad or annoucement for
you!
*No responses? We resend at no cost!
For More Information CALL NOW-702-248-1043
For removal see below.
SPECIAL RATES
SPECIAL ENDS Friday March 31, 2000
Targeted Rates Upon Request.
BONUS!!!
Call In and receive 50,000 Extra Emails at
No Cost!
Call NOW - 702-248-1043
++++++++++++++++++++++++++++++++++++++++++++++++++
We are terribly sorry if you received this message
in error.
If you wish to be removed. Please, type "REMOVE"
in the subject line: outnow@fiberia.com
++++++++++++++++++++++++++++++++++++++++++++++++++
From bizzaro at geoserve.net Fri Mar 17 13:38:37 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:34 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu>
Message-ID: <38D27BAD.ADD4BA3E@geoserve.net>
Brad Chapman wrote:
>
> I think it's important that Overflow and GMS aren't completely
> dependent on each other (so you could use GMS for "big" programs
> with distributed systems and use Overflow for "small" libraries on a
> local scale).
I agree that there should be some separation of functionality, but to the
point where it would still be possible (with code modification) to get one
application to execute without the others being present. IOW, I still don't
want to see GMS or Overflow dismantled, dissolved and absorbed.
BUT, if our projects are to merge, none of them will any longer be stand-alone
applications. Of course.
> However, I know for my needs that I would like to use
> both "small" and "big" together, and so I'd like to see Overflow and
> GMS interoperate, so that you don't have to choose one core over
> another.
Right.
> Would it be difficult to define a "distributed API" for GMS
> that Overflow could plug into (when distribution over multiple
> computer was necessary)? Then Overflow could define a "small library
> API" that GMS could plug into to run libraries? Does this make any
> sense?
Yeah, I think this has to be done. Neither Overflow nor GMS can be agnostic
about the other. But, for Loci's sake, we don't want to be flip-flopping on
how user-to-core-to-application/object communication will occur.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 17 14:08:53 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:34 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu> <38D24EEE.F47F0C77@casema.net>
Message-ID: <38D282C5.656BDCD9@geoserve.net>
Jarl van Katwijk wrote:
>
> Yes surtainly does. I've proposed this before, but the overflow people
> want to keep the processing speed
> and dont want any wrapping.
This whole 'speed' issue has me confused. If the small Overflow objects
remain 'networked' on a sigle host (none are sent through the Internet), how
can GMS affect their speed???
And if small Overflow objects are 'networked' across the Internet, IT'S THE
INTERNET THAT WILL SLOW THEM DOWN, NOT A GMS WRAPPER. Isn't that obvious to
everone else?
> I like to see code like overflow intergrated
> into gms, but this wont be started
> soon because of the mayor priorities like XML and other that need to be
> coded.
Code *LIKE* Overflow's, fine.
You know, it's looking more to me as though both Jarl's and Jean-Marc's ideas
for connecting/merging GMS and Overflow are not incompatible. It seems
they're two sides of the same coin. Overflow will need GMS for
Overflow-to-Overflow (across the Internet) communication, and GMS will need
Overflow for application construction (and I think wrapping).
The point of contention here is this: WHICH COMMUNICATES *DIRECTLY* WITH THE
GUI???
As I mentioned before, I'd like to see the GUI communicate with GMS, GMS
communicate with Overflow across the Internet, and Overflow handle application
wrapping/binding and development. So, each and every GMS node is an instance
of Overflow on the Internet, which may in many cases connect to foreign
applications running on that host.
+------------+
| Loci GUI |
+------------+
|
|
|
|
\|/
+-----------+
| GMS |
+-----------+
/ \
/ \
INTERNET / \ INTERNET
/ \
/ \
| |
\|/ \|/
+-----------+ +-----------+
| GMS | | GMS |
+-----------+ +-----------+
| |
| |
\|/ \|/
+-----------+ +-----------+
| Overflow | | Overflow |
+-----------+ +-----------+
| |
| |
\|/ \|/
+-------------+ +-------------+
| Application | | Application |
+-------------+ +-------------+
Comments?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Fri Mar 17 14:57:47 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:34 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu> <38D24EEE.F47F0C77@casema.net> <38D282C5.656BDCD9@geoserve.net>
Message-ID: <38D28E3B.ADD8AB66@hermes.usherb.ca>
> > Yes surtainly does. I've proposed this before, but the overflow people
> > want to keep the processing speed
> > and dont want any wrapping.
I have nothing against wrapping in itself, nor do I think speed matters anymore
when you have the parts distributed across a network. What bothers me the most
is that your program would have to be written in "two different languages": one
GMS part, and one Overflow part, while I think it would be feasable to put the
GMS code (not rewrite it) into Overflow. Now, maybe the best thing would be to
do both: Adapt Overflow so that it can be used as a GMS node, but also add
network stuff to Overflow. The kind of task you want to perform will then tell
you which to use.
>
> This whole 'speed' issue has me confused. If the small Overflow objects
> remain 'networked' on a sigle host (none are sent through the Internet), how
> can GMS affect their speed???
>
> And if small Overflow objects are 'networked' across the Internet, IT'S THE
> INTERNET THAT WILL SLOW THEM DOWN, NOT A GMS WRAPPER. Isn't that obvious to
> everone else?
True, my concern with speed was only that Overflow nodes could not be put in GMS
individually, but that's probably obvious to everybody. Sorry, I guess I have
not expresed myself correctly on speed.
> You know, it's looking more to me as though both Jarl's and Jean-Marc's ideas
> for connecting/merging GMS and Overflow are not incompatible. It seems
> they're two sides of the same coin. Overflow will need GMS for
> Overflow-to-Overflow (across the Internet) communication, and GMS will need
> Overflow for application construction (and I think wrapping).
>
> The point of contention here is this: WHICH COMMUNICATES *DIRECTLY* WITH THE
> GUI???
I'm afraid we might need two GUIs (though they might be bonobized to look like
one), because GMS and Overflow will probably have different requirements. This
is what I'd find annoying in wrapping Overflow in GMS. I might be wrong on that
though...
About Overflow integration in GMS... I'd like to point out that, except for the
GUI, Overflow is more a library than a program. It is easy to integrate into any
program. I'd like to know, is GMS build a bit the same?
OK, so this summerized my thoughts:
1) I don't mind if Overflow is integrated in GMS (mainly it's not a lot of work)
and I can help those who want to do it (It would probably be as simple as
writing a couple new nodes).
2) I would like to try the opposite so for most simple "networked applications",
just Overflow would be fine.
As a last, about communicating objects between different parts, Overflow already
has an Object hierarchy (GTK-like, but cleaner) that supports
serialization/de-serialization, so most of the stuff would already be done. Does
GMS has something like that (in which case, we'd need to have compatibility
between the two)?
I hope it clarifies a bit what I think.
Regards,
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jean-marc.valin at hermes.usherb.ca Fri Mar 17 15:03:35 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:34 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: which handles distribution (was: vsh?)
References: <200003171355.IAA102600@archa10.cc.uga.edu> <38D24EEE.F47F0C77@casema.net> <38D282C5.656BDCD9@geoserve.net>
Message-ID: <38D28F97.D174716B@hermes.usherb.ca>
> > Yes surtainly does. I've proposed this before, but the overflow people
> > want to keep the processing speed
> > and dont want any wrapping.
I have nothing against wrapping in itself, nor do I think speed matters anymore
when you have the parts distributed across a network. What bothers me the most
is that your program would have to be written in "two different languages": one
GMS part, and one Overflow part, while I think it would be feasable to put the
GMS code (not rewrite it) into Overflow. Now, maybe the best thing would be to
do both: Adapt Overflow so that it can be used as a GMS node, but also add
network stuff to Overflow. The kind of task you want to perform will then tell
you which to use.
>
> This whole 'speed' issue has me confused. If the small Overflow objects
> remain 'networked' on a sigle host (none are sent through the Internet), how
> can GMS affect their speed???
>
> And if small Overflow objects are 'networked' across the Internet, IT'S THE
> INTERNET THAT WILL SLOW THEM DOWN, NOT A GMS WRAPPER. Isn't that obvious to
> everone else?
True, my concern with speed was only that Overflow nodes could not be put in GMS
individually, but that's probably obvious to everybody. Sorry, I guess I have
not expresed myself correctly on speed.
> You know, it's looking more to me as though both Jarl's and Jean-Marc's ideas
> for connecting/merging GMS and Overflow are not incompatible. It seems
> they're two sides of the same coin. Overflow will need GMS for
> Overflow-to-Overflow (across the Internet) communication, and GMS will need
> Overflow for application construction (and I think wrapping).
>
> The point of contention here is this: WHICH COMMUNICATES *DIRECTLY* WITH THE
> GUI???
I'm afraid we might need two GUIs (though they might be bonobized to look like
one), because GMS and Overflow will probably have different requirements. This
is what I'd find annoying in wrapping Overflow in GMS. I might be wrong on that
though...
About Overflow integration in GMS... I'd like to point out that, except for the
GUI, Overflow is more a library than a program. It is easy to integrate into any
program. I'd like to know, is GMS build a bit the same?
OK, so this summerized my thoughts:
1) I don't mind if Overflow is integrated in GMS (mainly it's not a lot of work)
and I can help those who want to do it (It would probably be as simple as
writing a couple new nodes).
2) I would like to try the opposite so for most simple "networked applications",
just Overflow would be fine.
As a last, about communicating objects between different parts, Overflow already
has an Object hierarchy (GTK-like, but cleaner) that supports
serialization/de-serialization, so most of the stuff would already be done. Does
GMS has something like that (in which case, we'd need to have compatibility
between the two)?
I hope it clarifies a bit what I think.
Regards,
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jarl at casema.net Fri Mar 17 16:01:42 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:34 2006
Subject: [Pipet Devel] Functional?
Message-ID: <38D29D36.39EC50C2@casema.net>
From jarl at casema.net Fri Mar 17 16:01:29 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:34 2006
Subject: [Pipet Devel] vsh
References: <200003171355.IAA102600@archa10.cc.uga.edu> <38D24EEE.F47F0C77@casema.net> <38D282C5.656BDCD9@geoserve.net> <38D28E3B.ADD8AB66@hermes.usherb.ca>
Message-ID: <38D29D29.FD96E9DA@casema.net>
> is that your program would have to be written in "two different languages": one
> GMS part, and one Overflow part, while I think it would be feasable to put the
> GMS code (not rewrite it) into Overflow. Now, maybe the best thing would be to
> do both: Adapt Overflow so that it can be used as a GMS node, but also add
> network stuff to Overflow. The kind of task you want to perform will then tell
> you which to use.
>
This will be a slow process if you wanna do it right. Overflow & gms both want to
lose
functionality; lets slowly build toward whatever will turn out to be best. All we
need to
deside is if we want to build something together and need to tie up some ends at
first,
or if this is somehow impossible. It looks to me that everybody wants to do the
1st,
(like Jeffs diagram), so lets give it a try and evaluate after we got a pilot.
Right now just to translating projects into the other looks practically impossible
to me.
> True, my concern with speed was only that Overflow nodes could not be put in GMS
> individually, but that's probably obvious to everybody. Sorry, I guess I have
> not expresed myself correctly on speed.
OK, so Jean, what do you think about Jeffs diagram?
> I'm afraid we might need two GUIs (though they might be bonobized to look like
> one), because GMS and Overflow will probably have different requirements. This
> is what I'd find annoying in wrapping Overflow in GMS. I might be wrong on that
> though...
No, gms\overflow will figure out how does what, the gui just has 1 set of
functions.
>
> About Overflow integration in GMS... I'd like to point out that, except for the
> GUI, Overflow is more a library than a program. It is easy to integrate into any
> program. I'd like to know, is GMS build a bit the same?
The core uses corba, the plugins are libraries.
> OK, so this summerized my thoughts:
> 1) I don't mind if Overflow is integrated in GMS (mainly it's not a lot of work)
> and I can help those who want to do it (It would probably be as simple as
> writing a couple new nodes).
> 2) I would like to try the opposite so for most simple "networked applications",
> just Overflow would be fine.
OK, fine to me
>
> As a last, about communicating objects between different parts, Overflow already
> has an Object hierarchy (GTK-like, but cleaner) that supports
> serialization/de-serialization, so most of the stuff would already be done. Does
> GMS has something like that (in which case, we'd need to have compatibility
> between the two)?
Can you explain more about what you're aiming at? At how nodes are related?
From bizzaro at geoserve.net Sat Mar 18 09:47:44 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:34 2006
Subject: [Pipet Devel] node-to-node communication: you can have it 3 ways!
Message-ID: <38D39710.D0DC884A@geoserve.net>
Loci was called a 'connectivity broker' for a good reason: It wasn't going to
dictate the protocol to be used between nodes. So, a way for Overflow to
communicate with other Overflows running across the Internet, is to let
Overflow establish its own line of communication. Here is a flowchart
illustrating that:
+--------+
(HOST A) | Loci |
+--------+
| /|\
| |
LOCAL | | LOCAL
| |
\|/ |
+--------+
(HOST A) | GMS |
+--------+
| /|\
| |
| |
/ \
/ \
/ \
INTERNET / \ INTERNET
/ \
| |
| |
\|/ |
+--------+ +--------+
(HOST B) | GMS | | GMS | (HOST C)
+--------+ +--------+
| /|\
LOCAL | | LOCAL
| |
/ \
+----------+/___/ \____+----------+
| |\ | |
| Overflow | | Overflow |
| |___________________________________\| |
+----------+ OVERFLOW'S PROTOCOL /+----------+
(HOST B) (HOST C)
Now if Overflow wraps foreign applications, Overflow can directly control
node-to-node communication while GMS 'brokers' (one broker; 1st approach to
node-to-node communication):
+--------+
(HOST A) | Loci |
+--------+
| /|\
| |
LOCAL | | LOCAL
| |
\|/ |
+--------+
(HOST A) | GMS |
+--------+
| /|\
| |
| |
/ \
/ \
/ \
INTERNET / \ INTERNET
/ \
| |
| |
\|/ |
+--------+ +--------+
(HOST B) | GMS | | GMS | (HOST C)
+--------+ +--------+
| /|\
LOCAL | | LOCAL
| |
(HOST B) / \ (HOST C)
+----------+/___/ \____+----------+
| |\ | |
| Overflow | | Overflow |
| |___________________________________\| |
+----------+ OVERFLOW'S PROTOCOL /+----------+
| /|\ | /|\
| | LOCAL LOCAL | |
\|/ | \|/ |
+----------+ +----------+
| App. | | App. |
+----------+ +----------+
(HOST B) (HOST C)
But in some circumstances (e.g., when the foreign app has its own protocol),
both Overflow and GMS can 'broker' (not directly control) node-to-node
communication (two brokers; 2nd approach):
+--------+
(HOST A) | Loci |
+--------+
| /|\
| |
LOCAL | | LOCAL
| |
\|/ |
+--------+
(HOST A) | GMS |
+--------+
| /|\
| |
| |
/ \
/ \
/ \
INTERNET / \ INTERNET
/ \
| |
| |
\|/ |
+--------+ +--------+
(HOST B) | GMS | | GMS | (HOST C)
+--------+ +--------+
| /|\
LOCAL | | LOCAL
| |
(HOST B) / \ (HOST C)
+----------+/___/ \____+----------+
| |\ | |
| Overflow | | Overflow |
| | | |
+----------+ +----------+
| /|\
| LOCAL LOCAL |
\|/ |
+----------+ +----------+
| App. |___________________________________\| App. |
+----------+ ANY PROTOCOL /+----------+
(HOST B) (HOST C)
And in other circumstances, GMS may directly control node-to-node
communication (no brokers; 3rd approach):
+--------+
(HOST A) | Loci |
+--------+
| /|\
| |
LOCAL | | LOCAL
| |
\|/ |
+--------+
(HOST A) | GMS |
+--------+
| /|\
| |
| |
/ \
/ \
/ \
INTERNET / \ INTERNET
/ \
| |
| |
\|/ |
+--------+ +--------+
(HOST B) | GMS |_______\| GMS | (HOST C)
+--------+ /+--------+
| /|\ | /|\
LOCAL | | | | LOCAL
| | | |
(HOST B) / / \ \ (HOST C)
+----------+/___/ / \ \____+----------+
| |\ / \ | |
| Overflow |______/ \______\| Overflow |
| | /| |
+----------+ +----------+
| /|\ | /|\
| | LOCAL LOCAL | |
\|/ | \|/ |
+----------+ +----------+
| App. | | App. |
+----------+ +----------+
(HOST B) (HOST C)
I think we can make use of all 3 approaches and choose between none, one and
two brokers, depending on the circumstances.
Comments please.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Sat Mar 18 10:03:52 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:34 2006
Subject: [Pipet Devel] node-to-node communication: you can have it 3 ways!
References: <38D39710.D0DC884A@geoserve.net>
Message-ID: <38D39AD8.123A5BE1@geoserve.net>
"J.W. Bizzaro" wrote:
> +--------+ +--------+
> (HOST B) | GMS |_______\| GMS | (HOST C)
> +--------+ /+--------+
GMS's
PROTOCOL
[cut]
> +----------+/___/ \____+----------+
> | |\ | |
> | Overflow | | Overflow |
> | |___________________________________\| |
> +----------+ OVERFLOW'S PROTOCOL /+----------+
Under what circumstances should 'VSH' switch between using Overflow's protocol
and GMS's? Well, if we decide that GMS and Overflow will use DIFFERENT
protocols to communicate between themselves (i.e., Overflow-to-Overflow and
GMS-to-GMS), we can find these circumstances.
Perhaps Overflow can use a protocol better for small objects: like CORBA. And
GMS could use a protocol better for moving large files: straight TCP/IP.
Hmmmm. Me like. How about you?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Sat Mar 18 19:13:32 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:34 2006
Subject: [Pipet Devel] node-to-node communication: you can have it 3 ways!
References: <38D39710.D0DC884A@geoserve.net> <38D39AD8.123A5BE1@geoserve.net>
Message-ID: <38D41BAC.9F3352C6@casema.net>
>
Hi all,
thnx Jeff for all the flowcharts.. you're really putting a lot of work into it.
> Under what circumstances should 'VSH' switch between using Overflow's protocol
> and GMS's? Well, if we decide that GMS and Overflow will use DIFFERENT
> protocols to communicate between themselves (i.e., Overflow-to-Overflow and
> GMS-to-GMS), we can find these circumstances.
What does overflow-overflow comm. mean: 1) overflow NODE <-> NODE communication
or 2) overflow SUBNET <-> SUBNET communication?
>
> Perhaps Overflow can use a protocol better for small objects: like CORBA. And
> GMS could use a protocol better for moving large files: straight TCP/IP.
>
GMS will get a specialised data transport protocal, I'm thinking about libgnet.
(http://www.eecs.umich.edu/~dhelder/misc/gnet/) It's a specialised network
library build on top of glib. So it's portable, fast and secure.
I think the 'overflow layer' should not use corba. That would be too slow and is
highly vurnerable to exploiting. It should have a simple communication mechanism,
corba would be overkill, also because the overflow nodes shouldn't transport data
into nodes on non-local systems. I like to see the overflow layer as nodes that
can do anything INSIDE THEIR SUBNET, they can not communicate trough the
overflow layer to another subnet, the dataflow must pass the gms layer.
I do not care about the numers of nodes, what they do, how or why, but they
should
do it all inside their subnet, or addressing space.
This is critical to me, so I want everybody to comment on this.
From jarl at casema.net Sat Mar 18 19:24:41 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:34 2006
Subject: [Pipet Devel] node-to-node communication: you can have it 3 ways!
References: <38D39710.D0DC884A@geoserve.net>
Message-ID: <38D41E49.F8DB7232@casema.net>
> I think we can make use of all 3 approaches and choose between none, one and
> two brokers, depending on the circumstances.
>
> Comments please.
>
Chart 1 is not acceptable for security and management reasons,
chart 2 is fine, applications communication just the way they should have done
without any system wrapping them,
chart 3 is best when the internet had unlimited capacity :)
I like to see 2 and a 3b possible,
where 3b is Jeffs 3, only the 'gms layer' will try to clone remote nodes to
local addres space
Any reason why 1 should not be thrown away?
bye,
jarl
From bizzaro at geoserve.net Tue Mar 21 12:11:25 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] vsh web page
Message-ID: <38D7AD3D.4CFAA892@geoserve.net>
I made a simple Web page for 'VSH' (if that is to be the name):
http://bioinformatics.org/vsh/
with screenshots and links to the respective projects.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 21 11:57:53 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References:
Message-ID: <38D7AA11.3796AA@geoserve.net>
Justin Bradford wrote:
>
> http://www.levien.com/athshe/prelim-design.html
[...]
> So back when I was looking at these things, I
> talked to Raph about gdome and we discussed the
> possibility of a light-weight wire protocol to
> do DOM like things over the network efficiently.
>
> The link above describes Raph's thoughts/design
> ideas on such a system.
I'd like to hear comments from Jarl, Dominic, Jean-Marc and Brad on this.
> Now, here is why I think this is extremely useful
> for Loci (or whatever we call it now ;)
>
> Bioinformatic/computational data can be very
> large, and it would be bad to have to transfer
> big blocks of data when you just need a bit of
> it.
Right.
> Instead, imagine a simple API to a tree-like
> structure. You could quickly browse through the
> structure until you found the right nodes,
> lists, and/or blobs of data. Then you just get
> the data you want. Even substrings of binary
> blobs.
...but using DOM instead of XML.
> Also, it discusses the implementation of locking
> and transaction for these distributed objects,
> which could be also be very useful for things
> like distributed computation and simulation.
Yes. At a lower level than what we've been considering, these things are
important. Now that we will be working with low-level objects via Overflow,
we should look into this.
> Anyway, this Athshe describes my original vision
> for distributed communication/object interaction
> in Loci. I'm curious what people think, and if
> such a system would still be useful for Loci's
> current direction.
Currently, we have 3 different ideas about how distribution can be handled:
one for each project. Our challenge is to bring these ideas together.
Athshe is (yet) another way to implement object distribution and, having
little experience with DOM, is perhaps a bit out of my area of expertise. So,
I'll defer to comment. I want to hear what Jarl, Dominic, Jean-Marc and Brad
have to say.
Justin, if you want to see Athshe or an Athshe-like system implemented in VSH,
you're more than welcome to help code it :-) This is a GNU project afterall.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 21 15:11:10 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] getting started with Loci
Message-ID: <38D7D75E.E3EB9A20@geoserve.net>
This is in Loci's README file:
--------------------------------------------------------
GETTING STARTED WITH LOCI
There are four basic objects you will be working with in Loci:
(1) Workspace
(2) Locus
(3) Connector
(4) Windowlet
When you first start Loci with the Gnome interface (default start), you will
see an empty 'workspace' (for now).
To place a 'locus' on the workspace, press the right mouse button, and you
will get a pop-up menu:
+------------+
| Locus > |
| Add > |
| Session > |
| Help > |
+------------+
Choosing the sub-menu Add, you will find a list of loci that can be placed on
the workspace. Choose a locus.
+------+
| |
O----| |---->O
| |
+------+
[Locus One]
Each locus (represented by an icon) will appear on the workspace with lines
radiating from a central icon. These lines are 'connectors' and will be used
to connect one locus to another. The lines with an arrow pointing away from
the icon are 'output connectors'. Lines without an arrow are 'input
connectors'.
+------+ +------+
| | | |
O----| |---->O O----| |---->O
| | | |
+------+ +------+
[Locus One] [Locus Two]
You will also notice that there is a red dot at the end of the connectors.
The colors indicate the connection status: red for unconnected, yellow for
connection in progress, and green for connected. It's simple.
Connecting loci is simple too. Just drag-and-drop the dot from one connector
onto the dot of another connector. (Note, you can only connect connectors
that have been unconnected, plus output to input and visa versa.)
+------+ +------+
| | | |
O----| |------->O-------| |---->O
| | | |
+------+ +------+
[Locus One] [Locus Two]
You can examine the GUI for each locus by double-clicking on the center icon.
This will lower a 'windowlet', which is akin to an X window but always stays
on the workspace and attached to its locus.
+------+
| |
O----| |---->O
| |
+------+
[Locus One]
+----------------------+
| |
| |
| |
| |
| |
| |
| |
+----------------------+
The windowlet will contain all sorts of goodies related to the function of
the locus. Double-clicking on the center icon again will raise the
windowlet.
--------------------------------------------------------
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 21 15:35:57 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] G-CHIP (Graphical, Command-Line, Hyperlinked Interface Program)
Message-ID: <38D7DD2D.573B01FA@geoserve.net>
There are some very interesting ideas in this 'paper':
http://www.geocities.com/SiliconValley/Bay/5371/gchip.html
Jeff
From bizzaro at geoserve.net Tue Mar 21 16:49:37 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] graphical console
Message-ID: <38D7EE71.A69CFF77@geoserve.net>
I like this mockup of a 'graphical console' from the G-CHIP page (attached).
A Loci/VSH widget like this could be connected as a viewer/visual for the 'ls'
command.
Jeff
-------------- next part --------------
A non-text attachment was scrubbed...
Name: g-chip.gif
Type: image/gif
Size: 1652 bytes
Desc: not available
Url : http://bioinformatics.org/pipermail/pipet-devel/attachments/20000321/9f735090/g-chip-0001.gif
From jarl at casema.net Wed Mar 22 03:58:28 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
Message-ID: <38D88B34.69264157@casema.net>
> >
> > http://www.levien.com/athshe/prelim-design.html
> >
> > The link above describes Raph's thoughts/design
> > ideas on such a system.
>
> I'd like to hear comments from Jarl, Dominic, Jean-Marc and Brad on this.
>
Logical. I never intended to use XML internally. The way I look at XML is using
it for GUI-Scripts-Core communications, not need for using XML in every phase.
> > Bioinformatic/computational data can be very
> > large, and it would be bad to have to transfer
> > big blocks of data when you just need a bit of
> > it.
> Right.
jep, that's why GMS uses raw data 4kb shunks primairy, and offers optional
machalling to strings\intergers\etc.
>
> ...but using DOM instead of XML.
Why DOM? What does dom have superiour over XML?
>
> > Also, it discusses the implementation of locking
> > and transaction for these distributed objects,
> > which could be also be very useful for things
> > like distributed computation and simulation.
> Athshe is (yet) another way to implement object distribution and, having
> little experience with DOM, is perhaps a bit out of my area of expertise. So,
> I'll defer to comment. I want to hear what Jarl, Dominic, Jean-Marc and Brad
> have to say.
Everything can be learned as far as there's a logic need for it :)
From jarl at casema.net Wed Mar 22 04:10:28 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] Overview
References: <38D7D75E.E3EB9A20@geoserve.net>
Message-ID: <38D88E04.841CB466@casema.net>
Hi,
I've been working this weekend a lot on GMS to get some features done, but soon
we'll have
to work a little more coordinated, so I invite everybody to propose the things
they think need
to be done for their 'own' projects in order to bring us 3 together.
I'm trying to plan a very rough time-schedule in which will be working.
I'll be doing some 'testing' using the overflow library with gms, and will code
some planned gms
features, which will take around 2 weeks.
Maybe Overflow or Loci are currently into a phase that will take more time
before any merge is
possible.
-> How long before every project is ready for any merge attempt?
bye,
jarl
From bizzaro at geoserve.net Wed Mar 22 09:16:40 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] node-to-node communication: you can have it 3 ways!
References: <38D39710.D0DC884A@geoserve.net> <38D39AD8.123A5BE1@geoserve.net> <38D41BAC.9F3352C6@casema.net>
Message-ID: <38D8D5C8.C9C029F0@geoserve.net>
jarl van katwijk wrote:
>
> > Under what circumstances should 'VSH'
> > switch between using Overflow's protocol
> > and GMS's? Well, if we decide that GMS
> > and Overflow will use DIFFERENT
> > protocols to communicate between themselves
> > (i.e., Overflow-to-Overflow and
> > GMS-to-GMS), we can find these circumstances.
>
> What does overflow-overflow comm. mean:
> 1) overflow NODE <-> NODE communication
> or 2) overflow SUBNET <-> SUBNET communication?
Definitely 2). I'm talking about instances of Overflow or Overflow sessions
(same applies to GMS).
> > Perhaps Overflow can use a protocol better
> > for small objects: like CORBA. And
> > GMS could use a protocol better for moving
> > large files: straight TCP/IP.
>
> GMS will get a specialised data transport
> protocal, I'm thinking about libgnet.
> (http://www.eecs.umich.edu/~dhelder/misc/gnet/)
> It's a specialised network
> library build on top of glib. So it's portable,
> fast and secure.
I've heard of it, and I think I remember the author proposing it on the
gnome-devel list.
> I think the 'overflow layer' should not use
> corba. That would be too slow and is
> highly vurnerable to exploiting. It should
> have a simple communication mechanism,
> corba would be overkill, also because the
> overflow nodes shouldn't transport data
> into nodes on non-local systems.
Did you hear that, Brad? ;-)
> I like to
> see the overflow layer as nodes that
> can do anything INSIDE THEIR SUBNET, they
> can not communicate trough the
> overflow layer to another subnet, the
> dataflow must pass the gms layer.
Loci was not going to dictate how applications communicate, if they have their
own protocol. This has a practical implication for the computational
biologists in our group, because many Internet-based databases are on the Web
(and therefore use HTTP), and many are developing CORBA API's. If we (the
collaborative) then want to make such a database a node in our system, should
the database's own API be translated? Why not let it work the way it is
designed to, and let VSH (or whatever) just 'broker' the connection?
Now, regarding Overflow-to-Overflow communication, if we consider an
independently running Overflow system (not used as a library) to be an
application that can communicate with another instance of itself, why not let
it?
The non-broker system you are proposing is still needed for connecting
applications with no Internet API, such as the common UNIX tools.
> I do not care about the numers of nodes, what
> they do, how or why, but they
> should do it all inside their subnet, or
> addressing space. This is critical to me, so
> I want everybody to comment on this.
Okay, as for Overflow, you're saying that node-to-node communication should be
contained within Overflow, like so...
+------------------------------------+
| |
| Overflow |
| |
| +--------+ +--------+ |
| | | | | |
| | Node |________\| Node | |
| | | /| | |
| +--------+ +--------+ |
| |
+------------------------------------+
But I'm saying that if an Overflow node needs to communicate with another
Overflow node across the Internet, it's not the node that does the
communicating but Overflow (brokering)...
+-----------------+ +-----------------+
| | | |
| Overflow | | Overflow |
| | | |
| +--------+ | | +--------+ |
| | | |___________\| | | |
| | Node | | /| | Node | |
| | | | | | | |
| +--------+ | | +--------+ |
| | | |
+-----------------+ +-----------------+
or perhaps GMS (non-brokering)...
+-----------------------+ +-------------------------+
| GMS | | GMS |
| +-----------------+ | | +-----------------+ |
| | | | | | | |
| | Overflow | | | | Overflow | |
| | | | | | | |
| | +--------+ | | | | +--------+ | |
| | | | | |____\| | | | | |
| | | Node | | | /| | | Node | | |
| | | | | | | | | | | |
| | +--------+ | | | | +--------+ | |
| | | | | | | |
| +-----------------+ | | +-----------------+ |
| | | |
+-----------------------+ +-------------------------+
My point is LITTLE NODES CAN COMMUNICATE ACROSS THE INTERNET TOO! :-)
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 22 09:33:50 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] node-to-node communication: you can have it 3 ways!
References: <38D39710.D0DC884A@geoserve.net> <38D41E49.F8DB7232@casema.net>
Message-ID: <38D8D9CE.8A6C4D41@geoserve.net>
jarl van katwijk wrote:
>
> Chart 1 is not acceptable for security and management reasons,
(Chart 1: GMS brokers Overflow-to-Overflow subnet communication)
But *IF* Overflow can can be made secure and managable across the Internet,
then Chart 1 is an option, right? I mean, it's just like Chart 2, except
Overflow is the 'foreign app'.
> chart 2 is fine, applications communication just the way
> they should have done without any system wrapping them,
(Chart 2: GMS/Overflow broker foreign app communication)
Right. No arguments here.
> chart 3 is best when the internet had unlimited capacity :)
(Chart 3: No brokering; all communication goes through GMS)
Remember though that all those 2-way communication lines below GMS are kept
within the local host. There's still only one communication line through the
Internet: between GMS instances.
> I like to see 2 and a 3b possible, where 3b is Jeffs 3,
> only the 'gms layer' will try to clone remote nodes to
> local addres space
Well, if the nodes are small enough, and the cloning process takes less time
than Internet communication, then why not?
> Any reason why 1 should not be thrown away?
If we agree that Overflow will not communicate with anything across the
Internet, then 1 can be thrown away. I just wanted to leave that option open
to Jean-Marc if he wants to develop an Internet API later on.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 22 09:39:03 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net> <38D88B34.69264157@casema.net>
Message-ID: <38D8DB07.46B392E8@geoserve.net>
Jarl van Katwijk wrote:
>
> Logical. I never intended to use XML internally. The way I look at XML is using
> it for GUI-Scripts-Core communications, not need for using XML in every phase.
Not at every phase. But XML is also good for storage, meta-data, and GUI
representations.
> > > Bioinformatic/computational data can be very
> > > large, and it would be bad to have to transfer
> > > big blocks of data when you just need a bit of
> > > it.
>
> jep, that's why GMS uses raw data 4kb shunks primairy, and offers optional
> machalling to strings\intergers\etc.
Jarl, what do you think about Loci's idea of using XML for GUI
representations?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 22 09:49:23 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] Overview
References: <38D7D75E.E3EB9A20@geoserve.net> <38D88E04.841CB466@casema.net>
Message-ID: <38D8DD73.909AB547@geoserve.net>
Jarl van Katwijk wrote:
>
> I've been working this weekend a lot on GMS
> to get some features done, but soon we'll have
> to work a little more coordinated, so I
> invite everybody to propose the things
> they think need to be done for their 'own'
> projects in order to bring us 3 together.
Brad and I want to propose a well-defined, GUI-to-core, XML-based, command
stream. But we do need to now how the GMS-Overflow relationship will turn
out.
> I'm trying to plan a very rough time-schedule
> in which will be working.
Loci hasn't been working from a time schedule, but ahead and make one.
> I'll be doing some 'testing' using the
> overflow library with gms, and will code
> some planned gms features, which will
> take around 2 weeks. Maybe Overflow or
> Loci are currently into a phase that will
> take more time before any merge is possible.
I think Brad may be ready pretty soon to make a GMS-side library for
communication with Loci's GUI. Is that right, Brad? It doesn't really matter
for the GUI itself.
> -> How long before every project is ready for any merge attempt?
I'll let Brad answer that for me.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 22 09:55:06 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] Overview
References: <38D7D75E.E3EB9A20@geoserve.net> <38D88E04.841CB466@casema.net> <38D8DD73.909AB547@geoserve.net>
Message-ID: <38D8DECA.F029FE6A@geoserve.net>
"J.W. Bizzaro" wrote:
>
> I think Brad may be ready pretty soon to make a GMS-side library for
> communication with Loci's GUI.
Brad, would it be easier for you to make this 'library' in C++ (rather than
C), since you know C++ better? Jarl is using a C++ library (Overflow) anyway,
correct? Is this a viable option?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 22 11:47:31 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] loci snapshot; 20000321
Message-ID: <38D8F923.11788234@geoserve.net>
A new snapshot of Loci is available on the Web:
http://bioinformatics.org/loci/download/snapshots/loci-20000321.tar.gz
The GUI and core have been completely separated, and there are some
substantial improvements in performance. Thanks to Brad. It's worth the
download.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 22 17:48:16 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] gui protocol revisited
Message-ID: <38D94DB0.3353F6C3@geoserve.net>
I think the GUI-to-core *API* that Brad and I have been developing for Loci is
very nice. It's a simple dialog of request, approval, and pointing to data.
But what I am questioning is the *protocol* used, which is a standard TCP/IP
socket.
Commands from Loci's XML-based API are streamed across a socket. Here is a
short example where the GUI (front) requests the addition of a new workspace
(subnet), and the core (middle) performs the addition and approves a change in
the GUI to reflect what the core has done:
So, once again, this API is XML-based and ran through a socket. My question
is: Should we use CORBA instead? What are the advantages/disadvantages? My
MAJOR interest is that we have multiple UIs that can be attached to (and
controlled by) a single core, can run concurrently in the same session, and
can be controlled by one-another (via the front-request, middle-approve API).
Can we do that with CORBA?
Thoughts?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From chapmanb at arches.uga.edu Wed Mar 22 19:22:08 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] ICQ Discussion?
Message-ID: <200003230024.TAA14558@archa11.cc.uga.edu>
Hello all;
Is anyone going to be coding tonight want to discuss some stuff on
ICQ? Not that I am a big ICQ user, but I thought it might be a way to
get some stuff resolved/hashed out in a timely fashion.
I'm kind of feeling in a programming void without direction in
this kind of limbo stage, but have some time right now (now that tests
just finished, yay!) to be hacking and need to get myself some
structure and goals.
Just a thought. I'll be hanging out tonight at 60354662 while I
code, so if anyone wants to drop on by :-)
Brad
From chapmanb at arches.uga.edu Wed Mar 22 20:46:30 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] gui protocol revisited
Message-ID: <200003230149.UAA115166@archa11.cc.uga.edu>
> So, once again, this API is XML-based and ran through a socket. My
question
> is: Should we use CORBA instead? What are the
advantages/disadvantages? My
> MAJOR interest is that we have multiple UIs that can be attached to
(and
> controlled by) a single core, can run concurrently in the same
session, and
> can be controlled by one-another (via the front-request,
middle-approve
> API).
> Can we do that with CORBA?
>
> Thoughts?
I thought that we could keep both the streaming XML dialog *and*
CORBA, but just in two different places in the program. My idea was
that we could keep the small middle that we have in Loci right now to
communiate with the GUI front via the streaming XML dialog you
describe.
This small middle could then also implement the CORBA interfaces
to pass the information created in the GUI (as a work flow diagram)
into the "processing" portion of the program. It would make sense to
pass this as DOM or XML, since it seems like a nice structured way to
store the data (and since Overflow already uses it to feed its "pull"
networking system). I think that eventually the processing part could
move through a work flow diagram in an even "smarter" way (ie. based
on the fastest way to implement it) which is what Jarl seems to be
proposing for GMS's with the neural net and genetic algorithms
processor. Here it seens to makes sense to start with what we have
(the Overflow pull system) and move into something more robust as
things move along.
I think this would make it easier to implement addition front ends
(since they would only need to deal with XML though a pipe, and not
implementing a CORBA interface), and will also allow us to re-use the
code we already have for dealing with communicating with the GUI. In
addition, I think this will allow us to make a "simpler" CORBA
interface between the small middle and Overflow and GMS program
processing functions, since we won't have to worry specifically about
GUI requirements while coding these.
Does this make any sense? I think this gives us a lot of reuse of
code, while maintaing the streaming XML that Jeff digs and the
CORBA/API interfaces of Overflow and GMS.
Brad
From chapmanb at arches.uga.edu Wed Mar 22 21:12:59 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] Overview
Message-ID: <200003230215.VAA146024@archa12.cc.uga.edu>
> Jarl van Katwijk wrote:
>>
>> I've been working this weekend a lot on GMS
>> to get some features done, but soon we'll have
>> to work a little more coordinated, so I
>> invite everybody to propose the things
>> they think need to be done for their 'own'
>> projects in order to bring us 3 together.
>
> Brad and I want to propose a well-defined, GUI-to-core, XML-based,
command
> stream. But we do need to now how the GMS-Overflow relationship
will turn
> out.
As I just mentioned, I think we can maintain the XML based streaming
dialog while the GMS/Overflow merger is still in flux.
What I would like to try and hash out is a plan for a CORBA
interface with the GMS. I think for a rough outline it would need the
following parts:
0. Initializing a connection between the "middle"/GUI and the
processing engine.
1. A way to pass structured information (in the form of XML or DOM) to
the processing engine, so that it can take this XML and use it to
build it a pull network or neural net system.
2. A method for requesting a list of programs/libraries registered
with the processing engine. I think the "middle" should keep XML
descriptions of these separate from the processing engine, so this way
we can keep the messaging objects light weight (ie. they don't need
any knowledge of the description or other info about a program--just
how to run it and get stuff back from it). This way the "middle" can
also keep the XML files for programs organized into directories of
similar programs, so they will be easy to find for the user. However,
before giving a GUI access to a program representation, it will need
to confirm with the middle that the
3. Methods for querying the middle to determine the "status" of a
process.
4. Methods for returning the generated info (ie. for viewing) to the
GUI.
Others? This is just some stuff off the top of my head. I would like
to keep it simple at first, if possible, but still keep all the
functionality that GMS and Overflow currently have.
>> I'm trying to plan a very rough time-schedule
>> in which will be working.
>
> Loci hasn't been working from a time schedule, but ahead and make
one.
I would be happy to have one. I'm all about structure etc. The way my
life works is that I work on things frantically all at once, and then
get way behind in everything else and have to work frantically on
them, but I can try to stick with a schedule :-) I think this would be
very helpful for coordinating development etc.
>> I'll be doing some 'testing' using the
>> overflow library with gms, and will code
>> some planned gms features, which will
>> take around 2 weeks. Maybe Overflow or
>> Loci are currently into a phase that will
>> take more time before any merge is possible.
>
> I think Brad may be ready pretty soon to make a GMS-side library for
> communication with Loci's GUI. Is that right, Brad? It doesn't
really
> matter
> for the GUI itself.
> Brad, would it be easier for you to make this 'library' in C++
(rather than
> C), since you know C++ better? Jarl is using a C++ library
(Overflow) anyway,
> correct? Is this a viable option?
Shorely, I'm ready whenever Jarl is ready for me :-) Personally, I
don't really care whether I use C or C++ and would like to avoid
mixing languages as little as possible (too late for that, I know.) so
I wouldn't have a big problem coding in C if that's what Jarl feels
most comfortable with. As I said before, I don't have much experience
with procedure oriented languages, but I would like very much to give
it a shot.
>> -> How long before every project is ready for any merge attempt?
>
> I'll let Brad answer that for me.
I think we're ready now for any
kind of merge. As we merge, I think we'll be able to see better what
kind of functionality we need to add to what we have to support the
current states of Loci and GMS.
Jeff, you might want to have some discussions with the Overflow
guys about the GUI. It seems like you both have come up with very
similar ideas for how things should work, just with different names:
loci -> nodes
workspace -> network and subnetwork
They have some experimental stuff starting up--like iterators and
threading, which I don't think the current GUI will support. I'm not
sure how they feel about things and would like to handle this.
For GMS, it seems like the move to this connect the dots type GUI
will be a big change from the list oriented stuff it currently has, so
Jarl's input will also be very important here.
We can definately do this, and I think we should start ASAP and
just start squeezing things together and see how it goes.
Let me know where I can help the most and I'll start up there...
Brad
From bizzaro at geoserve.net Wed Mar 22 22:03:50 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] ICQ Discussion?
References: <200003230024.TAA14558@archa11.cc.uga.edu>
Message-ID: <38D98996.F993D18E@geoserve.net>
Brad Chapman wrote:
>
> Just a thought. I'll be hanging out tonight at 60354662 while I
> code, so if anyone wants to drop on by :-)
I should have caught this message a bit earlier. But I don't even have ICQ/U
set up on my computer. Heck, I don't believe I've ever used it. Well, I'm
about to pass out now anyway. I'll catch you when the Earth faces the Sun and
reply to your other e-mails then :-)
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 22 22:05:23 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] ICQ Discussion?
References: <200003230024.TAA14558@archa11.cc.uga.edu> <38D98996.F993D18E@geoserve.net>
Message-ID: <38D989F3.4715E496@geoserve.net>
"J.W. Bizzaro" wrote:
>
> I'll catch you when the Earth faces the Sun and
Duh. Let's make that when New England faces the Sun ;-)
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Thu Mar 23 01:57:20 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] node-to-node communication: you can have it 3 ways!
References: <38D39710.D0DC884A@geoserve.net> <38D39AD8.123A5BE1@geoserve.net> <38D41BAC.9F3352C6@casema.net> <38D8D5C8.C9C029F0@geoserve.net>
Message-ID: <38D9C04F.1DB8911@casema.net>
> >
> > What does overflow-overflow comm. mean:
> > 1) overflow NODE <-> NODE communication
> > or 2) overflow SUBNET <-> SUBNET communication?
>
> Definitely 2). I'm talking about instances of Overflow or Overflow sessions
> (same applies to GMS).
>
Good, Jean OK too?
>
> Loci was not going to dictate how applications communicate, if they have their
> own protocol. This has a practical implication for the computational
> biologists in our group, because many Internet-based databases are on the Web
> (and therefore use HTTP), and many are developing CORBA API's. If we (the
> collaborative) then want to make such a database a node in our system, should
> the database's own API be translated? Why not let it work the way it is
> designed to, and let VSH (or whatever) just 'broker' the connection?
Yes, that's why GMS is based upon RAW data transfer (sequencial shunks of 4kb).
Let have the applications interprent the data, VSH should orientate on
distibution.
>
> Now, regarding Overflow-to-Overflow communication, if we consider an
> independently running Overflow system (not used as a library) to be an
> application that can communicate with another instance of itself, why not let
> it?
Because it's too unpredictable: it's very easy to create a 'overflow' compatible
program that exploits this detail\low level.
Jean, any comments?
>
> Okay, as for Overflow, you're saying that node-to-node communication should be
> contained within Overflow, like so...
>
> But I'm saying that if an Overflow node needs to communicate with another
> Overflow node across the Internet, it's not the node that does the
> communicating but Overflow (brokering)...
Ic, but this is where gms is (going to be) powerfull, let the overflow layer
specialise in
processing, let gms do the brokering\security and client\script IO.
It's a question of orientation of the layers. Of the design. Like a
OS kernel: diff. layers
are seperated from each other for a reason, so it's possible to remain the
overview of
the situation and to be able to implement new idears easely.
> or perhaps GMS (non-brokering)...
> My point is LITTLE NODES CAN COMMUNICATE ACROSS THE INTERNET TOO! :-)
Yes, they can, only they talk to an application or the gms layer, nerver to an
other subnet.
From jarl at casema.net Thu Mar 23 02:07:52 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] node-to-node communication: you can have it 3 ways!
References: <38D39710.D0DC884A@geoserve.net> <38D41E49.F8DB7232@casema.net> <38D8D9CE.8A6C4D41@geoserve.net>
Message-ID: <38D9C2C8.F779BB3C@casema.net>
> (Chart 1: GMS brokers Overflow-to-Overflow subnet communication)
>
> But *IF* Overflow can can be made secure and managable across the Internet,
> then Chart 1 is an option, right? I mean, it's just like Chart 2, except
> Overflow is the 'foreign app'.
That design would ruine the speed and flexibility I see possible for overflow. I
really
want to have the overflow capacity in the VSH system, but it should be made
isolated
in order to keep it's speed and possibilities. And gms already has taken outside
world
IO etc. in account, so why move that functionality to overflow?
>
> > Any reason why 1 should not be thrown away?
>
> If we agree that Overflow will not communicate with anything across the
> Internet, then 1 can be thrown away. I just wanted to leave that option open
> to Jean-Marc if he wants to develop an Internet API later on.
OK to me, but just for now we need to have a goal for every project (Loci,
Overflow and gms) to work on in order to 'intergrate' them. Later on we
will evuluate.
SO the basis design for a collaboration-pilot is clear to me, I want to know if
everybody else is also OK and we can start discussing the implementation of
this pilot.
Every project please come to a conclussion..
From jarl at casema.net Thu Mar 23 02:10:07 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net> <38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net>
Message-ID: <38D9C34F.83A85DCF@casema.net>
>
> > > > Bioinformatic/computational data can be very
> > > > large, and it would be bad to have to transfer
> > > > big blocks of data when you just need a bit of
> > > > it.
> >
> > jep, that's why GMS uses raw data 4kb shunks primairy, and offers optional
> > machalling to strings\intergers\etc.
>
> Jarl, what do you think about Loci's idea of using XML for GUI
> representations?
>
Hmm? Please explain, I can't pinpoint what you're trying to say.
From jarl at casema.net Thu Mar 23 02:12:49 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] Overview
References: <38D7D75E.E3EB9A20@geoserve.net> <38D88E04.841CB466@casema.net> <38D8DD73.909AB547@geoserve.net>
Message-ID: <38D9C3F1.CD8C5FF3@casema.net>
> >
> > I've been working this weekend a lot on GMS
> > to get some features done, but soon we'll have
> > to work a little more coordinated, so I
> > invite everybody to propose the things
> > they think need to be done for their 'own'
> > projects in order to bring us 3 together.
>
> Brad and I want to propose a well-defined, GUI-to-core, XML-based, command
> stream. But we do need to now how the GMS-Overflow relationship will turn
> out.
OK, very good. I will have some proposals to, but you people will be
'responsable' for
doing this.
Overflow people \ Jean? You're reading this list to arn't you? Let us hear your
thoughs :)
From jarl at casema.net Thu Mar 23 02:32:06 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] gui protocol revisited
References: <38D94DB0.3353F6C3@geoserve.net>
Message-ID: <38D9C876.CC7B55CD@casema.net>
>
Hi All,
>
>
>
>
>
>
>
>
>
>
>
>
>
>
Looks nice, one thing: you're talking about 'requests', so will the GUI (and
optional other
'controllers' like scripts or knowledge databases) have (1) the 'structure'
stored internally
or will they (2) 'build' it inside gms\overflow?
GMS uses (2), I think Loci does too, but just to make sure..
>
> So, once again, this API is XML-based and ran through a socket. My question
> is: Should we use CORBA instead? What are the advantages/disadvantages? My
> MAJOR interest is that we have multiple UIs that can be attached to (and
> controlled by) a single core,
Yes, this must be possible. As I mentioned before, other 'controllers' should be
possible.
These will be non-interactive clients like scipt-interpeters and KDB's
> can run concurrently in the same session, and
> can be controlled by one-another (via the front-request, middle-approve API).
> Can we do that with CORBA?
Yes. Every 'client' requests the core for a communication line, or a ORB. After
the comm.
is setup, the client can call the functions descriped by the idl. (see the gms
source for
ADMDFP.idl, which is the GUI->CORE communication api.)
The GUI just calls a LOCAL function like:
GUI2CORE_add_node()
which will be transported (among other things) by corba to the core and call:
IMPLEMENTATED_GUI2CORE_add_node()
which is a function located in the core.
From jarl at casema.net Thu Mar 23 02:41:21 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] gui protocol revisited
References: <200003230149.UAA115166@archa11.cc.uga.edu>
Message-ID: <38D9CAA1.388FFB50@casema.net>
>
> I thought that we could keep both the streaming XML dialog *and*
> CORBA, but just in two different places in the program. My idea was
> that we could keep the small middle that we have in Loci right now to
> communiate with the GUI front via the streaming XML dialog you
> describe.
A kinda 'script interpeter'.. very good idear
>
> move through a work flow diagram in an even "smarter" way (ie. based
> on the fastest way to implement it) which is what Jarl seems to be
> proposing for GMS's with the neural net and genetic algorithms
> processor.
Yes.
The GAP will also try to apply new succesfull structures that are
generated elsewhere.
> Does this make any sense? I think this gives us a lot of reuse of
> code, while maintaing the streaming XML that Jeff digs and the
> CORBA/API interfaces of Overflow and GMS.
OK to me. It would also be a very good point for you to start working on.
From jarl at casema.net Thu Mar 23 02:59:25 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:35 2006
Subject: [Pipet Devel] Overview
References: <200003230215.VAA146024@archa12.cc.uga.edu>
Message-ID: <38D9CEDD.6BCF9EC0@casema.net>
> What I would like to try and hash out is a plan for a CORBA
> interface with the GMS. I think for a rough outline it would need the
> following parts:
>
> 0. Initializing a connection between the "middle"/GUI and the
> processing engine.
>
> 1. A way to pass structured information (in the form of XML or DOM) to
> the processing engine, so that it can take this XML and use it to
> build it a pull network or neural net system.
>
> 2. A method for requesting a list of programs/libraries registered
> with the processing engine. I think the "middle" should keep XML
> descriptions of these separate from the processing engine, so this way
> we can keep the messaging objects light weight (ie. they don't need
> any knowledge of the description or other info about a program--just
> how to run it and get stuff back from it). This way the "middle" can
> also keep the XML files for programs organized into directories of
> similar programs, so they will be easy to find for the user. However,
> before giving a GUI access to a program representation, it will need
> to confirm with the middle that the
>
> 3. Methods for querying the middle to determine the "status" of a
> process.
>
> 4. Methods for returning the generated info (ie. for viewing) to the
> GUI.
>
> Others? This is just some stuff off the top of my head. I would like
> to keep it simple at first, if possible, but still keep all the
> functionality that GMS and Overflow currently have.
This will be a good starting point.
> I would be happy to have one. I'm all about structure etc. The way my
> life works is that I work on things frantically all at once, and then
> get way behind in everything else and have to work frantically on
> them, but I can try to stick with a schedule :-) I think this would be
> very helpful for coordinating development etc.
I'll be needing one more weekend before the 'merge phase'.
I'm thinkg about around 2 months time for doing a merge-pilot, not
a day-to-day schedule. That might come later :)
>
>
> Shorely, I'm ready whenever Jarl is ready for me :-) Personally, I
> don't really care whether I use C or C++ and would like to avoid
> mixing languages as little as possible (too late for that, I know.) so
> I wouldn't have a big problem coding in C if that's what Jarl feels
> most comfortable with. As I said before, I don't have much experience
> with procedure oriented languages, but I would like very much to give
> it a shot.
C is more suitable for the 'inbetween' functionality gms will get in the
VSH
design. It has more 'hackish' functionality.
But i'm also quite happy about Overflow & GUI being OOP because it makes
sence to build those OOP.
>
> I think we're ready now for any
> kind of merge. As we merge, I think we'll be able to see better what
> kind of functionality we need to add to what we have to support the
> current states of Loci and GMS.
OK, then I will communicate with Brad about the details.. any dessision
that will infuence design etc will be posted pubically ofcourse.
>
> They have some experimental stuff starting up--like iterators and
> threading, which I don't think the current GUI will support. I'm not
> sure how they feel about things and would like to handle this.
> For GMS, it seems like the move to this connect the dots type GUI
> will be a big change from the list oriented stuff it currently has, so
> Jarl's input will also be very important here.
The GUI is list-orientated. This sucks. The engine is build on a
fully-connected network structure that supports Loci's approarch.
Like I said in one of my very first posts in the Loci mailinglist: I was
looking for a better GUI to replace mine.
>
> We can definately do this, and I think we should start ASAP and
> just start squeezing things together and see how it goes.
> Let me know where I can help the most and I'll start up there...
K, maybe it's logical that you'll do this 'in-between' code that talks to
the gui and the core?
bye
jarl
From chapmanb at arches.uga.edu Thu Mar 23 10:17:50 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Initial idl proposal
Message-ID: <200003231520.KAA48998@archa12.cc.uga.edu>
Hello all;
Based on the broad design I mentioned yesterday for communicating
between a small middle (part of the GUI) and the "data processing
engine" of 'vsh', I drew up an idl as a starting point for this
communication. This definately need a lot of work and if the first idl
I've ever written, so I can use lots of comments and criticisms, but
this will be something to build off of so we can get things going. I
look forward to hearing comments!
Brad
// gui2dp.idl
//
// IDL for dealing with communication between the GUI (buffered by a
small
// middle) and the data processing engine.
/**
* Organization of modules.
* vsh: The overall module (the name can change when we decide on a
formal
* name).
* gui2dp: idl for communication between the GUI and the data
processing
* engine.
*
*/
module vsh {
module gui2dp {
// ##### exceptions
/**
* Requested Id is already being used for another gui.
*/
exception IdInUse {};
/**
* Id number used for requested operation was not found in the
list of
* current gui ids being served by the data processor.
*/
exception IdNotFound{};
/**
* The information for a node is not yet available because the
process
* has not completed.
*/
exception InfoNotAvailable{};
// ##### structs and typedefs
/**
* A sequence/list of strings. Useful for returning info like a
list of
* program ids for available programs.
*/
typedef sequence stringList;
// ##### interfaces
/**
* Functions for dealing with a front to middle connection.
*/
interface Connection {
/**
* Initialize a connection from the gui to the data processing
engine.
* @parm gui_id - An unique id to represent the gui connection
* @parm password - The password associated with this id.
* @returns A boolean indicating the success of the
initialization
* @raises IdInUse - The passed gui_id is already in use by
another gui.
*/
boolean init_connection(in string gui_id, in string password)
raises (IdInUse);
/**
* Close the connection between the gui and data processing
engine.
* Used when closing down a GUI.
* @parm gui_id - An unique id to represent the gui connection
* @parm password - The password associated with this id.
* @returns A boolean indicating the success of the
initialization
* @raises IdNotFound - The passed id was not found in the
list of
* ids registerd with the data processing
engine.
*/
boolean close_connection(in string gui_id, in string password)
raises (IdNotFound);
};
/**
* Functions for passing XML information to the data processing
engine.
*/
interface SendProcessingInfo {
/**
* Send a string of XML to the data processing engine to be
dealt with.
* @parm xml_to_process: A big string of xml describing the
nodes/loci
* to be processed and the relationship between them.
* @returns An id to be used for getting information about the
* process sent.
*/
string send_xml(in string xml_to_process);
};
/**
* Functions dealing with a process that has been sent to the
middle.
*/
interface ProcessInformation {
/**
* Request information the status of the overall process.
* @parm process_id - the unique id associated with a process.
* @returns A double representing the progress towards
completion.
* 1 indicates completion, 0 indicates the process
has not
* started, numbers between 0 and 1 represent the
percent
* completion, and -1 indicates an error in the
process.
* @raises IdNotFound - If the passed process_id is not found.
*/
double query_process(in string process_id) raises (IdNotFound);
/**
* Request information about a particular node/locus in a
process.
* @parm process_id - the unique id associated with a process.
* @parm node_id - the unique id associated with a node.
* @returns A double representing the progress towards
completion.
* 1 indicates completion, 0 indicates the process
has not
* started, numbers between 0 and 1 represent the
percent
* completion, and -1 indicates an error in the
process.
* @raises IdNotFound - if either the process or node id were
not
* found.
*/
double query_process_node(in string process_id, in string
node_id)
raises (IdNotFound);
/**
* Get the information for a node so that is can be displayed
in the
* GUI.
* @parm process_id - the unique id associated with a process.
* @parm node_id - the unique id associated with a node.
* @returns A string with the info from the node.
* TODO: Need a structured and generalized way to
return info
* and pass it to a visual so it can be seen in the
GUI.
* Strings aren't going to cut it for everything,
* I don't think.
* @raises InfoNotAvailable - If the node currently doesn't
have any
* information to send (ie. process is not complete.
*/
string get_node_info(in string process_id, in string node_id)
raises (InfoNotAvailable);
};
/**
* Functions for getting information about programs and libraries
registered
* with the processing engine.
*/
interface ProgramInformation {
/**
* Get a list of all the program ids of programs registered
functional
* (ie. loaded) with the processing engine.
* @returns A sequence of strings (list) with the node_ids of
available
* nodes.
*/
stringList get_program_ids();
/**
* Query a specific node to see if it is available.
* @parm node_id - the unique id of a node (program/function).
* @returns 1 if the program is loaded, 0 if it is not.
*/
boolean is_available(in string node_id);
};
};
};
From chapmanb at arches.uga.edu Thu Mar 23 14:56:44 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Project Design (fwd)
Message-ID:
Hey all;
This is from a discussion Jarl and I were having, and I thought it
was really relevant to everyone. I like this plan for integrating
everything--whadda you all think?
Brad
---------- Forwarded message ----------
Date: Thu, 23 Mar 2000 19:45:42 +0100
From: jarl van katwijk
To: Brad Chapman
Subject: Project Design
>
> Well, the only think I worry about is that Overflow probably doesn't
> want to be "absorbed" into GMS and would like to be able to work
> independently. Couldn't the authentication go in a
> "processing/pre-processing engine" that then directs stuff to either
> GMS or Overflow?
I know the Overflow people dont want their code integrated, but I'm
saying
to this:
Loci based GUI
|
-> Communication SAME AS current Loci's GUI, only enhanced
|
with various extra gms & overflow features.
\/
Scripts -----> 'Brad's Interperter' :-)
| ->
Translates scripts\GUI calls to 'gms api+', which will be a reviced
|
gms api + the current Overflow api. So gms will select what calls
|
are to be handled and which ones are to be passed to overflow
\/
Remote Env.---> GMS based broker --> Remote Environment
| -> This
communication is THE SAME as subnet-subnet comm.
|
AND as Oveflow-GUI comm. GMS will emulate that api
\/
Local Env.----> Overflow based processor ---> Local Environment
SO Gms will be adjusted to 'speak' to overflow, overflow stays the same
as it is, only restricted to local
operation. And the Loci GUI will stay the same.
Every body happy?
> This way, this engine can work with only GMS or only
> Overflow, if a user desired.
>
> > Hmm.. I should read (again) the documentation about the
> > "pull data flow model", cant place the name now.
>
> The Overflow guys just call it "pull technology." Basically, it is
> just a recursive call to getOutput() starting at the last node in a
> series and propogating forward to the top node.
Currently gms processes one data-event at a time, so a data-chunk
passed the whole structure before the next is prosessed. This will
have to change to better 'all at once' processing.
From jarl at casema.net Thu Mar 23 15:43:27 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Project Design
References:
Message-ID: <38DA81EF.8645B595@casema.net>
Hi,
Could somebody collect all the design proposals and wishes and stuff and put
them on
the VSH page. Sometimes I'm saying\reading things twice :)
I could do this , but somebody else probably write better english as I do..
bye,
jarl
From jean-marc.valin at hermes.usherb.ca Thu Mar 23 15:30:17 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Project Design (fwd)
References:
Message-ID: <38DA7ED9.9D3F46A1@hermes.usherb.ca>
> > Well, the only think I worry about is that Overflow probably doesn't
> > want to be "absorbed" into GMS and would like to be able to work
> > independently. Couldn't the authentication go in a
> > "processing/pre-processing engine" that then directs stuff to either
> > GMS or Overflow?
>
> I know the Overflow people dont want their code integrated, but I'm
> saying
> to this:
Depends on what you mean by integrated. 90% of Overflow is just a library.
You're actually probably better use that library in GMS instead of the
executables. If you call that integrating Overflow in GMS, well fine, If you
want to wrap the executable, fine too (though I don't think it's the best way).
If you want to take some chunks of code and put that in GMS... have fun(good
luck)!
My only constraint is that I want to be able to use Overflow as a stand alone
application.
>
> Loci based GUI
> |
> -> Communication SAME AS current Loci's GUI, only enhanced
> |
> with various extra gms & overflow features.
> \/
> Scripts -----> 'Brad's Interperter' :-)
Speaking of interpreter... I was planning on implementing an Overflow node that
uses the Octave interpreter (actually, only the octave library)...
> | ->
> Translates scripts\GUI calls to 'gms api+', which will be a reviced
> |
> gms api + the current Overflow api. So gms will select what calls
> |
> are to be handled and which ones are to be passed to overflow
> \/
> Remote Env.---> GMS based broker --> Remote Environment
> | -> This
> communication is THE SAME as subnet-subnet comm.
> |
> AND as Oveflow-GUI comm. GMS will emulate that api
> \/
> Local Env.----> Overflow based processor ---> Local Environment
>
> SO Gms will be adjusted to 'speak' to overflow, overflow stays the same
> as it is, only restricted to local
> operation. And the Loci GUI will stay the same.
>
> Every body happy?
>
> > This way, this engine can work with only GMS or only
> > Overflow, if a user desired.
> >
> > > Hmm.. I should read (again) the documentation about the
> > > "pull data flow model", cant place the name now.
> >
> > The Overflow guys just call it "pull technology." Basically, it is
> > just a recursive call to getOutput() starting at the last node in a
> > series and propogating forward to the top node.
>
> Currently gms processes one data-event at a time, so a data-chunk
> passed the whole structure before the next is prosessed. This will
> have to change to better 'all at once' processing.
OK, there's not much technology in "pull" :-)... The idea was that you only
compute what's needed. Also, since we also have loops (even loops withing
loops), we must handle the fact that somethimes (well always) one iteration need
data that comes from a past iteration (even future sometimes, though it's not
any harder). The the recursive getOutput() is the only way to handle all the
dependencies correctly. The other advantage is that it doesn't require any kind
of "job dispatcher". You call getOutput() on the last node, and all the requests
will propagate until you have the answer. A node needs only be aware of the
nodes connected to its input, there's no need for anything "global".
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jarl at casema.net Thu Mar 23 17:04:07 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] 3/1 and 1/3
References: <38DA7ED9.9D3F46A1@hermes.usherb.ca>
Message-ID: <38DA94D7.E40E84B4@casema.net>
>
> Depends on what you mean by integrated. 90% of Overflow is just a library.
> You're actually probably better use that library in GMS instead of the
> executables. If you call that integrating Overflow in GMS, well fine, If you
> want to wrap the executable, fine too (though I don't think it's the best way).
> If you want to take some chunks of code and put that in GMS... have fun(good
> luck)!
Using the libraries is by far the best methode.
I dont want a physical intergration, but there has got to come a general design:
which member does what?
Example: It's absolutely no problem to me that Overflow can connect to
non-local subnets\nodes, but for the collaboration's sake Overflow should
have support to disable this.
Ex2: GMS will continue to support it's own GUI, I like it for testing.
All the flowcharts describe the collaborated situation.
>
> My only constraint is that I want to be able to use Overflow as a stand alone
> application.
Agreed.
From bizzaro at geoserve.net Thu Mar 23 21:06:14 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] gui protocol revisited
References: <200003230149.UAA115166@archa11.cc.uga.edu>
Message-ID: <38DACD96.8D0900F3@geoserve.net>
Brad Chapman wrote:
>
> I thought that we could keep both the streaming XML dialog *and*
> CORBA, but just in two different places in the program. My idea was
> that we could keep the small middle that we have in Loci right now to
> communiate with the GUI front via the streaming XML dialog you
> describe.
Okay, if you like that. And I guess Jarl likes it too.
> This small middle could then also implement the CORBA interfaces
> to pass the information created in the GUI (as a work flow diagram)
> into the "processing" portion of the program. It would make sense to
> pass this as DOM or XML, since it seems like a nice structured way to
> store the data (and since Overflow already uses it to feed its "pull"
> networking system). I think that eventually the processing part could
> move through a work flow diagram in an even "smarter" way (ie. based
> on the fastest way to implement it) which is what Jarl seems to be
> proposing for GMS's with the neural net and genetic algorithms
> processor. Here it seens to makes sense to start with what we have
> (the Overflow pull system) and move into something more robust as
> things move along.
I'm a little confused about this 'processing part of the program'. Is this
something GMS or Overflow has now? Is it something you'll have to write?
Also Brad, recall how Loci was going to use an XML database (XDBM) to store
the workflow diagram (network and subnetworks). How does this relate to the
'processing' part? Perhaps you can explain this to the others and how we plan
to use XML. Will this be replaced by a DOM structure?
> I think this would make it easier to implement addition front ends
> (since they would only need to deal with XML though a pipe, and not
> implementing a CORBA interface), and will also allow us to re-use the
> code we already have for dealing with communicating with the GUI. In
> addition, I think this will allow us to make a "simpler" CORBA
> interface between the small middle and Overflow and GMS program
> processing functions, since we won't have to worry specifically about
> GUI requirements while coding these.
Okay.
> Does this make any sense? I think this gives us a lot of reuse of
> code, while maintaing the streaming XML that Jeff digs and the
> CORBA/API interfaces of Overflow and GMS.
I was just thinking that if we're using CORBA at all anywhere, why not use it
everywhere?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 21:42:57 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Overview
References: <200003230215.VAA146024@archa12.cc.uga.edu>
Message-ID: <38DAD631.CE01714C@geoserve.net>
Brad Chapman wrote:
>
> 2. A method for requesting a list of programs/libraries registered
> with the processing engine. I think the "middle" should keep XML
> descriptions of these separate from the processing engine, so this way
> we can keep the messaging objects light weight (ie. they don't need
> any knowledge of the description or other info about a program--just
> how to run it and get stuff back from it).
Absolutely. Libraries, etc. for the GUI are only REFERRED to via URI. This
stuff may already be available on the local host, so to minimize transfer, the
local host is given the OPTION to get a remote copy or use the local one.
This is an old Loci discussion (initiated by Humberto and Justin IIRC). Which
reminds me, we should also send library version information in the stream.
That way, the local system will know if a newer version is available.
> This way the "middle" can
> also keep the XML files for programs organized into directories of
> similar programs, so they will be easy to find for the user. However,
> before giving a GUI access to a program representation, it will need
> to confirm with the middle that the
(? I think you fell asleep typing this ;-))
The others probably don't understand what we mean by 'XML representation'.
> 3. Methods for querying the middle to determine the "status" of a
> process.
Right. BTW, I want to have a status 'symbol' (no pun intended) displayed for
and with each node.
> I would be happy to have one. I'm all about structure etc. The way my
> life works is that I work on things frantically all at once, and then
> get way behind in everything else and have to work frantically on
> them, but I can try to stick with a schedule :-)
That's hilarious. You just described the life of every college student :-)
I'm always trying to get things done at the last minute while neglecting that
which is due later. Then those other things get done at the last minute, ad
infinitum.
> Shorely, I'm ready whenever Jarl is ready for me :-) Personally, I
> don't really care whether I use C or C++ and would like to avoid
> mixing languages as little as possible (too late for that, I know.)
Homogeneity will come in time.
> I think we're ready now for any
> kind of merge. As we merge, I think we'll be able to see better what
> kind of functionality we need to add to what we have to support the
> current states of Loci and GMS.
Do we need a new CVS module?
> Jeff, you might want to have some discussions with the Overflow
> guys about the GUI. It seems like you both have come up with very
> similar ideas for how things should work, just with different names:
Yeah, some of the similarities are surprising.
> loci -> nodes
> workspace -> network and subnetwork
Maybe it's more like...
workflow diagram -> network and subnetworks
workspace contains the workflow diagram
composite loci contain 'sub-workspaces', which contain workflow
diagrams that could be called subnetworks
> They have some experimental stuff starting up--like iterators and
> threading, which I don't think the current GUI will support. I'm not
> sure how they feel about things and would like to handle this.
Hmmm. Well, I'm flexible with the design of the GUI.
> For GMS, it seems like the move to this connect the dots type GUI
> will be a big change from the list oriented stuff it currently has, so
> Jarl's input will also be very important here.
Yep.
> We can definately do this, and I think we should start ASAP and
> just start squeezing things together and see how it goes.
> Let me know where I can help the most and I'll start up there...
You're definitely the go-between for Jarl and myself.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 21:47:43 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] node-to-node communication: you can have it 3 ways!
References: <38D39710.D0DC884A@geoserve.net> <38D39AD8.123A5BE1@geoserve.net> <38D41BAC.9F3352C6@casema.net> <38D8D5C8.C9C029F0@geoserve.net> <38D9C04F.1DB8911@casema.net>
Message-ID: <38DAD74F.2C323010@geoserve.net>
jarl van katwijk wrote:
>
> Because it's too unpredictable: it's very easy to create a 'overflow' compatible
> program that exploits this detail\low level.
> Jean, any comments?
Okay, if you think so.
> Ic, but this is where gms is (going to be) powerfull, let the overflow layer
> specialise in
> processing, let gms do the brokering\security and client\script IO.
> It's a question of orientation of the layers. Of the design. Like a
> OS kernel: diff. layers
> are seperated from each other for a reason, so it's possible to remain the
> overview of
> the situation and to be able to implement new idears easely.
I agree.
> > My point is LITTLE NODES CAN COMMUNICATE ACROSS THE INTERNET TOO! :-)
>
> Yes, they can, only they talk to an application or the gms layer, nerver to an
> other subnet.
Good.
If Jean-Marc agrees, then I have no problem with your point of view. I'm just
considering the best inter-personal or political solution.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 21:50:08 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] node-to-node communication: you can have it 3 ways!
References: <38D39710.D0DC884A@geoserve.net> <38D41E49.F8DB7232@casema.net> <38D8D9CE.8A6C4D41@geoserve.net> <38D9C2C8.F779BB3C@casema.net>
Message-ID: <38DAD7E0.5868D424@geoserve.net>
jarl van katwijk wrote:
>
> SO the basis design for a collaboration-pilot is clear to me, I want to know if
> everybody else is also OK and we can start discussing the implementation of
> this pilot.
> Every project please come to a conclussion..
I agree with Brad that Loci is pretty much ready for integration, although
there may be some more development in the meantime that does not conflict with
the merger.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 22:09:55 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net> <38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
Message-ID: <38DADC83.F000D7B@geoserve.net>
jarl van katwijk wrote:
>
> > Jarl, what do you think about Loci's idea of using XML for GUI
> > representations?
>
> Hmm? Please explain, I can't pinpoint what you're trying to say.
Here's the short and simple: The user sets the parameters for nodes via some
kind of interface. The interface is described via an XML akin to the HTML
forms generated by CGI programs. It's much quicker than other ways to
transfer G/UIs.
Plus, the XML can be combined to generate more elaborate GUIs. Here is a Gtk
GUI in GLADE XML as an example of how complex GUIs can be made with XML:
GtkWindowwindow1window1GTK_WINDOW_TOPLEVELGTK_WIN_POS_NONETrueTrueFalseGtkFixedfixed1GtkButtonbutton1321611240True
Notice the heirarchy of widgets. NOW THIS IS IMPORTANT: The heirarchy of
nodes in a subnet, plus the XML descriptions of their interfaces, can be used
to arrange widgets and construct a GUI!
This is all in the Loci archives where we discussed 'composited GUIs' and
'constructing the command-line'. I'll certainly be talking more about this
later, as it is a major design feature of Loci.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 22:19:43 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] gui protocol revisited
References: <38D94DB0.3353F6C3@geoserve.net> <38D9C876.CC7B55CD@casema.net>
Message-ID: <38DADECF.CEA3800C@geoserve.net>
jarl van katwijk wrote:
>
> Looks nice, one thing: you're talking about 'requests', so will the GUI (and
> optional other
> 'controllers' like scripts or knowledge databases) have (1) the 'structure'
> stored internally
> or will they (2) 'build' it inside gms\overflow?
>
> GMS uses (2), I think Loci does too, but just to make sure..
I suppose by 'structure' you mean the structure of the network/subnet. Yes,
the core will handle it. I consider the interfaces/fronts to be completely
'dumb', acting only on the requests of user and core.
> The GUI just calls a LOCAL function like:
> GUI2CORE_add_node()
>
> which will be transported (among other things) by corba to the core and call:
> IMPLEMENTATED_GUI2CORE_add_node()
>
> which is a function located in the core.
Okay, but I guess Brad wants to keep GUI-to-core communication as a
datastream. Brad, will you be attaching the Loci middle to this GMS API?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 22:24:39 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] gui protocol revisited
References: <200003230149.UAA115166@archa11.cc.uga.edu> <38D9CAA1.388FFB50@casema.net>
Message-ID: <38DADFF7.751299DC@geoserve.net>
jarl van katwijk wrote:
>
> A kinda 'script interpeter'.. very good idear
I'm glad you think so. I was also thinking about a 'front' that records this
stream to make a log file of all transactions. Cool? This can be used as an
'electronic notebook' when the system helps perform scientific research.
> > Does this make any sense? I think this gives us a lot of reuse of
> > code, while maintaing the streaming XML that Jeff digs and the
> > CORBA/API interfaces of Overflow and GMS.
>
> OK to me. It would also be a very good point for you to start working on.
I agree.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 22:30:53 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Overview
References: <200003230215.VAA146024@archa12.cc.uga.edu> <38D9CEDD.6BCF9EC0@casema.net>
Message-ID: <38DAE16D.FC5BC1DD@geoserve.net>
jarl van katwijk wrote:
>
> C is more suitable for the 'inbetween' functionality gms will get in the
> VSH design. It has more 'hackish' functionality.
> But i'm also quite happy about Overflow & GUI being OOP because it makes
> sence to build those OOP.
I'm happy about the Overflow code staying C++. It's a great choice being OO
and binary executable. Python/Gnome is probably the best choice for the GUI
too.
> OK, then I will communicate with Brad about the details.. any dessision
> that will infuence design etc will be posted pubically ofcourse.
Keep as much on the list as possible :-)
> K, maybe it's logical that you'll do this 'in-between' code that talks to
> the gui and the core?
Yep.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 22:50:48 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Project Design (fwd)
References:
Message-ID: <38DAE618.B900F9CC@geoserve.net>
Brad Chapman wrote:
>
> SO Gms will be adjusted to 'speak' to overflow, overflow stays the same
> as it is, only restricted to local
> operation. And the Loci GUI will stay the same.
>
> Every body happy?
I don't know if this is relevant to this thread, but I would like the GUI to
have Overflow instances contained in separate nodes. So, Overflow networks
are VSH subnets. And, Overflow 'workspaces' are displayed in VSH
'windowlets'. This really fits in with the 'Overflow networks are local'
idea, and it's what I was thinking of when I drew up those flowcharts.
> Currently gms processes one data-event at a time, so a data-chunk
> passed the whole structure before the next is prosessed. This will
> have to change to better 'all at once' processing.
Just so that Loci gets its 2 cents in on this design discussion, I was
thinking Loci would use a 'processor centric' approach to the problem. That
is, whatever processes or modifies data in a network is first to be called.
This isn't any different from the 'pull' approach when you think about it, but
there are some other considerations that should be given to this special class
of nodes. Afterall, we're dealing with data, and the modification of those
data affects the whole system.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 22:56:12 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Project Design
References: <38DA81EF.8645B595@casema.net>
Message-ID: <38DAE75C.4A071918@geoserve.net>
jarl van katwijk wrote:
>
> Could somebody collect all the design proposals and wishes and stuff and put
> them on
> the VSH page. Sometimes I'm saying\reading things twice :)
Alright, but in what form? As e-mail or a little more polished?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 23:07:22 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] 3/1 and 1/3
References: <38DA7ED9.9D3F46A1@hermes.usherb.ca> <38DA94D7.E40E84B4@casema.net>
Message-ID: <38DAE9FA.9919576C@geoserve.net>
jarl van katwijk wrote:
>
> Example: It's absolutely no problem to me that Overflow can connect to
> non-local subnets\nodes, but for the collaboration's sake Overflow should
> have support to disable this.
> Ex2: GMS will continue to support it's own GUI, I like it for testing.
> > My only constraint is that I want to be able to use Overflow as a stand alone
> > application.
At the very LEAST, a collaboration should mean that the respective projects
(Loci/GMS/Oveflow) don't continue development in such a way as to incorporate
incompatibilities with VSH. If you're not excited about VSH right now, then
fine, maybe you will be later. But you need to...
(1) Tell us what features you'll be adding to your program
(2) Consider whether or not features will work in the VSH system
(3) Be prepared to change your program to incorporate a VSH feature
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 23:15:29 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] gui protocol revisited
References: <38D94DB0.3353F6C3@geoserve.net> <38D9C876.CC7B55CD@casema.net> <38DADECF.CEA3800C@geoserve.net>
Message-ID: <38DAEBE1.38933BFB@geoserve.net>
"J.W. Bizzaro" wrote:
>
> I consider the interfaces/fronts to be completely
> 'dumb', acting only on the requests of user and core.
This is how it works:
USER: Hey VSH, do this for me!
GUI: Duh...Hey Core, can I do this?
CORE: Yeah, go ahead Gui.
GUI: Duh...Okee dokee.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Thu Mar 23 23:24:23 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] 3/1 and 1/3
References: <38DA7ED9.9D3F46A1@hermes.usherb.ca> <38DA94D7.E40E84B4@casema.net> <38DAE9FA.9919576C@geoserve.net>
Message-ID: <38DAEDF7.3FD2E7A0@geoserve.net>
"J.W. Bizzaro" wrote:
>
> (1) Tell us what features you'll be adding to your program
> (2) Consider whether or not features will work in the VSH system
> (3) Be prepared to change your program to incorporate a VSH feature
Of course, you can always fork your project and create two: one for VSH and
one for your own experimental purposes.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Fri Mar 24 00:22:59 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] 3/1 and 1/3
References: <38DA7ED9.9D3F46A1@hermes.usherb.ca>
<38DA94D7.E40E84B4@casema.net> <38DAE9FA.9919576C@geoserve.net>
Message-ID: <38DAFBB3.FB7B40@hermes.usherb.ca>
> At the very LEAST, a collaboration should mean that the respective projects
> (Loci/GMS/Oveflow) don't continue development in such a way as to incorporate
> incompatibilities with VSH. If you're not excited about VSH right now, then
> fine, maybe you will be later. But you need to...
>
> (1) Tell us what features you'll be adding to your program
> (2) Consider whether or not features will work in the VSH system
> (3) Be prepared to change your program to incorporate a VSH feature
That's no problem... Overflow is built in a very modular way. All the
functionality is built into nodes (C++ classes). If you don't like some of them,
you just don't use them, but they don't interfere. If you "rm" a library you
don't want, things will still work (without recompiling). The same for the
Overflow types (like neural nets, vector quantizers, ...). As for supporting
VSH, every new feature will simply be a new node in Overflow.
About the architecture... what about this: Everything that's done locally
(including running other exceutables) is handled by Overflow and all networking
stuff would be handled by GMS, which would take care of connecting all Overflow
processes (here I'm talking about "process" in a weak sense) through a network.
This way there wouldn't be any duplication. Also, every node-to-node connection
in the GMS part of the GUI would be assumed to be "network-able".
Concerning the GUI, I don't think it would be hard to plug in what we've got so
far in another app. Or we can just embed the current GUI in the new app using
bonobo. I don't know enough about this to say which is best.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jarl at casema.net Fri Mar 24 02:12:55 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] gui protocol revisited
References: <200003230149.UAA115166@archa11.cc.uga.edu> <38DACD96.8D0900F3@geoserve.net>
Message-ID: <38DB1577.481B6BB4@casema.net>
> > communiate with the GUI front via the streaming XML dialog you
> > describe.
>
> Okay, if you like that. And I guess Jarl likes it too.
Yes. sure is.
>
> I'm a little confused about this 'processing part of the program'. Is this
> something GMS or Overflow has now? Is it something you'll have to write?
After some time when the 'basics' work, non-technical users will be excluded
from using VHS, so there must be some meganism to automatie the creation of
data flow.
1) applications can supply a VSH 'script' that intergrate that application to
VSH,
2) to analyze 'good' structures and apply them to other instances of VSH.
1) is easy, but 2) requires an anaylize 'core' (CFS\GAP on the the GMS page)
Both are far-future idears though :)
From jarl at casema.net Fri Mar 24 02:17:12 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Overview
References: <200003230215.VAA146024@archa12.cc.uga.edu> <38DAD631.CE01714C@geoserve.net>
Message-ID: <38DB1678.BE533885@casema.net>
> The others probably don't understand what we mean by 'XML representation'.
The dataflow structure?
From jarl at casema.net Fri Mar 24 02:20:15 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net> <38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net> <38DADC83.F000D7B@geoserve.net>
Message-ID: <38DB172F.E77443B6@casema.net>
> > Hmm? Please explain, I can't pinpoint what you're trying to say.
>
> Notice the heirarchy of widgets. NOW THIS IS IMPORTANT: The heirarchy of
> nodes in a subnet, plus the XML descriptions of their interfaces, can be used
> to arrange widgets and construct a GUI!
>
> This is all in the Loci archives where we discussed 'composited GUIs' and
> 'constructing the command-line'. I'll certainly be talking more about this
> later, as it is a major design feature of Loci.
>
OK, got it.
From jarl at casema.net Fri Mar 24 02:25:43 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Project Design
References: <38DA81EF.8645B595@casema.net> <38DAE75C.4A071918@geoserve.net>
Message-ID: <38DB1877.A240EDF5@casema.net>
> >
> > Could somebody collect all the design proposals and wishes and stuff and put
> > them on
> > the VSH page. Sometimes I'm saying\reading things twice :)
>
> Alright, but in what form? As e-mail or a little more polished?
>
just copy-paste the emails, but organised by subject.
More polished would be nice, if somebody got the time :)
From jarl at casema.net Fri Mar 24 02:38:47 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] 3/1 and 1/3
References: <38DA7ED9.9D3F46A1@hermes.usherb.ca> <38DA94D7.E40E84B4@casema.net> <38DAE9FA.9919576C@geoserve.net>
Message-ID: <38DB1B87.BDF127D5@casema.net>
> At the very LEAST, a collaboration should mean that the respective projects
> (Loci/GMS/Oveflow) don't continue development in such a way as to incorporate
> incompatibilities with VSH. If you're not excited about VSH right now, then
> fine, maybe you will be later. But you need to...
>
> (1) Tell us what features you'll be adding to your program
> (2) Consider whether or not features will work in the VSH system
> (3) Be prepared to change your program to incorporate a VSH feature
>
OK to me.
It seems gms will get the most changes, but that's no problem.
I'm only saying the coming time the VSH project will contains 3 types of code:
1) general code, 2) collaborate code & 3) standalone code
I think these dont need any further explanation.
bye,
jarl
From jarl at casema.net Fri Mar 24 02:40:15 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] gui protocol revisited
References: <38D94DB0.3353F6C3@geoserve.net> <38D9C876.CC7B55CD@casema.net> <38DADECF.CEA3800C@geoserve.net> <38DAEBE1.38933BFB@geoserve.net>
Message-ID: <38DB1BDF.593E393F@casema.net>
>
> This is how it works:
>
> USER: Hey VSH, do this for me!
> GUI: Duh...Hey Core, can I do this?
> CORE: Yeah, go ahead Gui.
> GUI: Duh...Okee dokee.
>
hehehe :)
Jean: how ready is 'your' speech recognizer?
bye,
jarl
From jean-marc.valin at hermes.usherb.ca Fri Mar 24 02:28:53 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net>
Message-ID: <38DB1935.E2A18780@hermes.usherb.ca>
> > Notice the heirarchy of widgets. NOW THIS IS IMPORTANT: The heirarchy of
> > nodes in a subnet, plus the XML descriptions of their interfaces, can be used
> > to arrange widgets and construct a GUI!
> >
> > This is all in the Loci archives where we discussed 'composited GUIs' and
> > 'constructing the command-line'. I'll certainly be talking more about this
> > later, as it is a major design feature of Loci.
Am I getting everything wrong or could this XML representation of a GUI be
handled by libglade? After all glade stores the GUI in XML and libglade can
display it in an application.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From chapmanb at arches.uga.edu Fri Mar 24 09:37:44 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] gui protocol revisited
Message-ID: <200003241440.JAA131438@archa10.cc.uga.edu>
Jeff wrote:
> Okay, but I guess Brad wants to keep GUI-to-core communication as a
> datastream. Brad, will you be attaching the Loci middle to this GMS
API?
Well, I wanted to attach it to the idl I sent out yesterday. I was
hoping that we could work on this and make it a standard general idl
for communicating between the gui (which we have implemented as the
replacable front gui and the small middle communicating via xml data
streams) and the processing engines. Of course, the idl is not very
good and is just what I randomly thought up, but I was hoping we could
work from that to create a more general idl which is based on the
starting point I sent out.
Jeff wrote:
> I'm a little confused about this 'processing part of the program'.
Is this
> something GMS or Overflow has now? Is it something you'll have to
write?
I'm not really very clear right now how GMS and Overflow will
combine and work together (I'll need to dig more into the code to know
this for sure) to make the generalize "processing engine" that I have
been talking about, which is why I've been referring to it so vaguely.
As I said, I'd like this combination of GMS and Overflow to wrap into
one idl (the one I sent out).
Along these lines, I'd like to try and dig more into Overflow and
GMS code and start working with it. This will probably help us firm up
the communication between the 'middle scripting engine' and the
'processing part' and help get the idl straightened out and all. So...
I was going to throw myself out to the wolves and ask if Jarl and
Jean-Marc and Dominic have parts of GMS and Overflow that they'd like
me to work on/with, to help towards our integration goal. These can be
small short term projects or whatever, but I'd like to help in this
regard, and it would help me be more familiar with what is going on
and actually be able to make more non-vague suggestions :-)
So could we work something like this out?
> How does this relate to the
> 'processing' part? Perhaps you can explain this to the others and
how we plan
> to use XML. Will this be replaced by a DOM structure?
Well, in the idl I'm passing the XML representation (more on this
below) as a string right now. I'd like this to be passed as DOM
eventually, but 4Dom doesn't support this right now (supposedly it is
coming soon) so it isn't really an option right now.
Jeff wrote:
> > The others probably don't understand what we mean by 'XML
representation'.
Jarl wrote:
> The dataflow structure?
Right-o! When I say xml representation I'm just again defining a vague
term to represent the way that nodes/loci are linked together in XML.
The form of this needs to be worked out explicitly so that the
'processing part' can take this xml and convert it into a form that is
useful for it to go through and do things. When we can hash out
this representation, then I can change the middle scripting part so
that it delivers this XML in the right format.
I think we sort of have a design down, although at least in my
thinking, the XML representation, the makeup of the processing engine,
and the 'middle scripting engine' and 'processing part' idls are the
most important things we need to tackle in terms of internal structure.
Brad
From jarl at casema.net Fri Mar 24 10:12:48 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:36 2006
Subject: [Pipet Devel] gui protocol revisited
References: <200003241440.JAA131438@archa10.cc.uga.edu>
Message-ID: <38DB85F0.3D3BDE0@casema.net>
>
> Well, I wanted to attach it to the idl I sent out yesterday.
Yes, I will work on the IDL this weekend, we'll can have a pretty good
one done in a few days. Implementing the idl will take some longer.
>
> I'm not really very clear right now how GMS and Overflow will
> combine and work together (I'll need to dig more into the code to know
> this for sure)
Overflow will work as it does standalone, and gms will pass on the calls
from and to the gui.
> As I said, I'd like this combination of GMS and Overflow to wrap into
> one idl (the one I sent out).
Yes, right.
> Along these lines, I'd like to try and dig more into Overflow and
> GMS code and start working with it. This will probably help us firm up
> the communication between the 'middle scripting engine' and the
> 'processing part' and help get the idl straightened out and all. So...
> I was going to throw myself out to the wolves and ask if Jarl and
> Jean-Marc and Dominic have parts of GMS and Overflow that they'd like
> me to work on/with, to help towards our integration goal. These can be
> small short term projects or whatever, but I'd like to help in this
> regard, and it would help me be more familiar with what is going on
> and actually be able to make more non-vague suggestions :-)
> So could we work something like this out?
Sure, but first let us define that GUI <-> Engine idl. When we got that
ready, things will be much more clear I guess.
> I think we sort of have a design down, although at least in my
> thinking, the XML representation, the makeup of the processing engine,
> and the 'middle scripting engine' and 'processing part' idls are the
> most important things we need to tackle in terms of internal structure.
>
Yes, the overflow people agreed to this design too, so let's make The idl
and make a list of features that the 3 projects need to implement in order
to let the layers work together.
bye,
jarl
From jarl at casema.net Fri Mar 24 14:33:21 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
Message-ID: <38DBC301.819DF35A@casema.net>
Jean-Marc Valin wrote:
> > > Notice the heirarchy of widgets. NOW THIS IS IMPORTANT: The heirarchy of
> > > nodes in a subnet, plus the XML descriptions of their interfaces, can be used
> > > to arrange widgets and construct a GUI!
> > >
> > > This is all in the Loci archives where we discussed 'composited GUIs' and
> > > 'constructing the command-line'. I'll certainly be talking more about this
> > > later, as it is a major design feature of Loci.
>
> Am I getting everything wrong or could this XML representation of a GUI be
> handled by libglade? After all glade stores the GUI in XML and libglade can
> display it in an application.
>
This would requiere translation of the XML code, Glade knows about Gtk+ and
GNOME widgets, not about nodes and relations.
But I think basically both use the same approach.
From jean-marc.valin at hermes.usherb.ca Fri Mar 24 14:17:19 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] GMS- Overflow communication
Message-ID: <38DBBF3F.92D21212@hermes.usherb.ca>
Hi,
I've been thinking a bit about how GMS and Overflow should communicate. Here's a
proposal.
GMS links with the Overflow libraries.
When it needs to compute something, it calls getOutput() on an Overflow subnet
*in a thread* and returns the result.
Meanwhile, the input node(s) of the Overflow network use GMS callbacks to get
their data.
I think this would be both the simplest (no socket/pipe/shared memory required)
and the fastest (though speed doesn't matter much here) to do things.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Fri Mar 24 16:06:07 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] 3/1 and 1/3
References: <38DA7ED9.9D3F46A1@hermes.usherb.ca>
<38DA94D7.E40E84B4@casema.net> <38DAE9FA.9919576C@geoserve.net> <38DAFBB3.FB7B40@hermes.usherb.ca>
Message-ID: <38DBD8BF.10AC39FA@geoserve.net>
Jean-Marc Valin wrote:
>
> That's no problem... Overflow is built in a very modular way. All the
> functionality is built into nodes (C++ classes). If you don't like some of them,
> you just don't use them, but they don't interfere. If you "rm" a library you
> don't want, things will still work (without recompiling). The same for the
> Overflow types (like neural nets, vector quantizers, ...). As for supporting
> VSH, every new feature will simply be a new node in Overflow.
Very nice.
> About the architecture... what about this: Everything that's done locally
> (including running other exceutables) is handled by Overflow and all networking
> stuff would be handled by GMS, which would take care of connecting all Overflow
> processes (here I'm talking about "process" in a weak sense) through a network.
> This way there wouldn't be any duplication. Also, every node-to-node connection
> in the GMS part of the GUI would be assumed to be "network-able".
This is EXACTLY what I was thinking of. Brad and Jarl, is this not what you
guys were thinking?
> Concerning the GUI, I don't think it would be hard to plug in what we've got so
> far in another app. Or we can just embed the current GUI in the new app using
> bonobo. I don't know enough about this to say which is best.
I don't dislike Overflow's GUI. I just believe GMS and Overflow should have
GUIs that work alike. Plus, we've come up with some very nice GUI features
for Loci that I'd like to see VSH have.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 24 16:11:43 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] gui protocol revisited
References: <200003230149.UAA115166@archa11.cc.uga.edu> <38DACD96.8D0900F3@geoserve.net> <38DB1577.481B6BB4@casema.net>
Message-ID: <38DBDA0F.19CA34CC@geoserve.net>
jarl van katwijk wrote:
>
> 1) applications can supply a VSH 'script' that intergrate that application to
> VSH,
You're talking about wrapping or plugging-in a foreign application, correct?
What do you think about having Overflow be the 'wrapping environment'? By
this I mean the wrapping 'script' is an Overflow network.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 24 16:15:27 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Overview
References: <200003230215.VAA146024@archa12.cc.uga.edu> <38DAD631.CE01714C@geoserve.net> <38DB1678.BE533885@casema.net>
Message-ID: <38DBDAEE.BFD99F1C@geoserve.net>
jarl van katwijk wrote:
>
> > The others probably don't understand what we mean by 'XML representation'.
>
> The dataflow structure?
No, all those little details that need to be stored about a node: location,
type, mime-types, libraries, input parameters, what other nodes are connected
to this node.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 24 16:34:07 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
Message-ID: <38DBDF4F.EC52662D@geoserve.net>
Jean-Marc Valin wrote:
>
> Am I getting everything wrong or could this XML representation of a GUI be
> handled by libglade? After all glade stores the GUI in XML and libglade can
> display it in an application.
You're getting pretty darn close :-) The only difference between libglade (or
pyglade, both written by the same guy) and what we'll use, is that the *glades
specify a gtk interface. But, since we want to have other kinds of
interfaces, we'll make something (by changing pyglade) more generic.
So, instead of a tag like this:
we'll have something like this:
which can then be 'translated' into gtk, qt, html, etc., depending on the
front-end used with VSH.
But keep in mind that this information needs to be transferred across the
Internet in our Internet-distributed VSH system. This is part of what Brad
and I call an 'XML representation'.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 24 16:44:01 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] gui protocol revisited
References: <200003241440.JAA131438@archa10.cc.uga.edu>
Message-ID: <38DBE1A1.1FA2E35B@geoserve.net>
Brad Chapman wrote:
>
> Jeff wrote:
> > > The others probably don't understand what we mean by 'XML
> representation'.
>
> Jarl wrote:
> > The dataflow structure?
>
> Right-o! When I say xml representation I'm just again defining a vague
> term to represent the way that nodes/loci are linked together in XML.
Okay, Brad is talking about an 'XML representation' of the dataflow
structure. I was referring to an 'XML representation' of a node. The way we
designed Loci, the latter is a subset of the former.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 24 16:53:43 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Front to middle communication
References: <200003241448.JAA156374@archa10.cc.uga.edu>
Message-ID: <38DBE3E7.6DE03B9C@geoserve.net>
Brad Chapman wrote:
>
> Wow! Did you really write this? CORBA everywhere, yay! :-)
:-) Well, with Loci, we didn't have CORBA anywhere. So, keeping it all
CONSISTENT with sockets was a worthy cause. My preference is for consistency
(and simplicity) rather than for sockets.
> I think if we want to consider CORBA communication between the
> front GUI and the middle the most important thing is to consider how
> easy it will be for other people to implement front ends. Will CORBA
> be more difficult than sockets?
Ah, an ancient riddle, my young Locian. Perhaps the spirit of the Loci will
show you the way ;-)
> We can define a small CORBA interface that will mirror what we
> have now with sockets, and this could provide us some additional
> flexibility in terms of passing data (and might help deal with the
> problem I mentioned earlier about how to pass large amount of data
> from databases or files to the front).
I think it's something to work for, providing we can still have multiple
fronts control the middle and each other.
> I don't really want to make this change right yet unless we have a
> big problem we can't overcome with since sockets are working and we'll
> have millions of other changes to make to fit in with the 'vsh'
> project collaboration.
> What do you all think?
Why don't we put it on the back burner for now. You're correct that it's
something we can do later. The merger is more important right now.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 24 17:11:15 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Moving forward in the middle
References: <200003241507.KAA102964@archa11.cc.uga.edu>
Message-ID: <38DBE803.E66D87E0@geoserve.net>
Brad Chapman wrote:
>
> As I mentioned, I've pulled myself out of the GUI comletely so
> that I won't be interfering there any more :-) As a result this has
> led me to start thinking about how to implement stuff xml-wise and not
> gui-wise
Great. Oh, the wonders of abstraction!
> Specifically what I'm blathering about is that I've just about
> (keeping my fingers crossed here!) got a generalized loci
> disconnection communication protocol finished (and partly implemented
> in the GUI, but only during deletion of loci, and I have not thought
> about providing a way for generalized disconnecting of loci). This
> weekend I'm hoping to tackle persistance/saving of loci in the
> back/private directory and, if I am really lucky, start thinking about
> how to try to whip up a connection diagram into a good XML
> representation (of course, we have to work the basis of this out with
> the other vsh guys).
Right. How does Overflow 'store' its network?
> Do you have ideas about how these things should
> work in the GUI? I'll need the GUI to test things out and make sure
> I'm implementing them properly, and just thought we could try and
> coordinate stuff and get this all working beautifully as soon as we
> can.
> What do you think? What are your plans?
Sure, I'll be here :-)
As for the way the GUI will handle locus/node disconnection, it will be done
through a popup menu on a button3 click. The popup menu will actually be
different for each of the 4 main GUI objects:
(1) Workspace
(2) Locus/node
(3) Connector
(4) Windowlet
Clicking button3 on a connector will bring up a menu for that connector:
+---------------+
| Connector > +---------------+
| Session > | Details... |
| Help > | Add > |
+---------------| Disconnect |
+---------------+
(Note that it doesn't work this way now, but this is my plan.)
And choosing 'Disconnect' will....disconnect the connector. The dot color
will turn from green to yellow, during the wait for approval, and then to red,
showing that it is disconnected.
What else do you need to know? Do you want me to get this working this
weekend?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 24 17:19:48 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca> <38DBC301.819DF35A@casema.net>
Message-ID: <38DBEA04.C5CBD3BD@geoserve.net>
jarl van katwijk wrote:
>
> > Am I getting everything wrong or could this XML representation of a GUI be
> > handled by libglade? After all glade stores the GUI in XML and libglade can
> > display it in an application.
> >
>
> This would requiere translation of the XML code, Glade knows about Gtk+ and
> GNOME widgets, not about nodes and relations.
> But I think basically both use the same approach.
:-) Again, there is some confusion here. Jean-Marc and I are talking about
the representation of a node's interface in XML. You (and Brad) have been
using the term 'XML representation' to mean the dataflow structure of a
network.
We should probably add 'of a node' or 'of a network' to this term to avoid
confusion :-)
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Fri Mar 24 19:09:49 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] gui protocol revisited
References: <200003230149.UAA115166@archa11.cc.uga.edu> <38DACD96.8D0900F3@geoserve.net> <38DB1577.481B6BB4@casema.net> <38DBDA0F.19CA34CC@geoserve.net>
Message-ID: <38DC03CC.3A5B5CEF@casema.net>
> >
> > 1) applications can supply a VSH 'script' that intergrate that application to
> > VSH,
>
> You're talking about wrapping or plugging-in a foreign application, correct?
Yes. See also the GConf project.
It's about 'programs registring into gnome', so much relavant info is availeble
for wrapping an application. Less need to build code for every single application,
maybe we could write a general one once we use GConf.
Example: A email applet could simply register itself as a handler for the smtp
and pop mimetypes. GMS will collect this data from the gconf database, and
export the needed structure to activate this dataflow inside Overflow.
> What do you think about having Overflow be the 'wrapping environment'? By
> this I mean the wrapping 'script' is an Overflow network.
>
I think that we have the same design in mind.
From jean-marc.valin at hermes.usherb.ca Fri Mar 24 19:41:22 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net>
Message-ID: <38DC0B32.F42D6405@hermes.usherb.ca>
> > > Am I getting everything wrong or could this XML representation of a GUI be
> > > handled by libglade? After all glade stores the GUI in XML and libglade can
> > > display it in an application.
> > >
> >
> > This would requiere translation of the XML code, Glade knows about Gtk+ and
> > GNOME widgets, not about nodes and relations.
> > But I think basically both use the same approach.
>
> :-) Again, there is some confusion here. Jean-Marc and I are talking about
> the representation of a node's interface in XML. You (and Brad) have been
> using the term 'XML representation' to mean the dataflow structure of a
> network.
>
> We should probably add 'of a node' or 'of a network' to this term to avoid
> confusion :-)
OK, I'll try to summerize the way XML is used in Overflow with an example:
A document is a file and can contain many networks (it's the equivalent of a .c)
A network if the C equivalent of a function. Each document must contain a MAIN
network.
This is a node definition. The name is arbitrary, while the type corresponds to
an Overflow node class. x and y are for the GUI. The parameters have to
correspond to what the node expects.
Links define which node is connected to which. Input and output names need to be
defined since nodes can have more than one input/output.
NetOutput means which node (and which output of that node) will be used as the
output of the whole network. The same applies to NetInput and NetCondition.
Questions?
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Fri Mar 24 22:37:20 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
Message-ID: <38DC3470.D68AF122@geoserve.net>
Jean-Marc Valin wrote:
>
> OK, I'll try to summerize the way XML is used in Overflow with an example:
>
>
>
>
> A document is a file and can contain many networks (it's the equivalent of a .c)
Then this is something like Loci's 'workspace' or 'workflow diagram', or
Jarl's 'dataflow structure'.
>
>
> A network if the C equivalent of a function. Each document must contain a MAIN
> network.
>
>
>
>
>
> This is a node definition. The name is arbitrary,
The name is akin to Loci's identification number, which is really a URI to the
XML representation of the node.
> while the type corresponds to an Overflow node class.
Great, this is just like Loci's locus types/classes.
> x and y are for the GUI.
I think for VSH we should have the GUI store that information. If we are to
have more than one interface available for VSH, x and y will not always be
relevant. This is what we were going to do with Loci.
> The parameters have to correspond to what the node expects.
This is like a mime-type for link I/O? This is also something Loci was going
to define.
>
>
>
>
>
>
>
>
>
I'm not sure what you mean by value=256, cat, or frames.
>
>
>
>
>
>
>
>
> Links define which node is connected to which. Input and output names need to be
> defined since nodes can have more than one input/output.
Excellent, just like Loci. Although Loci embedded (what Loci calls
and 'connectors') in with the node information. This is how
Loci defines a node (loci == node, although 'locus' is singular):
file_select
(Brad, shouldn't we also have locus 'id=' in here?)
In this example, when we say 'type=', we mean the same thing you do with
'type='. But our type 'document' is a node that stores data: a file. It's
not where Loci sets up a network. What Overflow calls 'document', Loci calls
'workspace'.
is the name of the interface component to be used. We're working on
using more XML here, and the 'widget' representation in XML can be located
anywhere on the Internet.
and define the links (connectors) for this particular node.
href points to the XML representation of the node it is connected to.
xml:link is from an XML document linking tool that Brad has been using.
Loci also gives the node an ID (not shown above) that is the location/URI of
the node's XML representation. Here the GUI of Loci requests that a node
called 'viewer1' gets linked to a node called 'document1':
Other information related to a node (e.g., library URI and version number) can
be kept between and
>
>
> NetOutput means which node (and which output of that node) will be used as the
> output of the whole network. The same applies to NetInput and NetCondition.
What is the actual output? The screen, a file? Or is this something the user
defines?
>
>
In this case, the whole 'document' gets a 'parameter' tag?
When I first came across Overflow (when you posted the announcement on
gnotices), I noted to Brad how remarkably similar some of its features are to
Loci's. This is particularly true for the XML representation of a network.
This is something GMS (which uses no XML) needs to implement as well. And
since Overflow and Loci are so similar, we should choose one definition. Can
you comment on what you like or dislike about Loci's use of XML for network
representation? Let's hammer this out right away.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Fri Mar 24 22:40:34 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] gui protocol revisited
References: <200003230149.UAA115166@archa11.cc.uga.edu> <38DACD96.8D0900F3@geoserve.net> <38DB1577.481B6BB4@casema.net> <38DBDA0F.19CA34CC@geoserve.net> <38DC03CC.3A5B5CEF@casema.net>
Message-ID: <38DC3532.47422EF0@geoserve.net>
jarl van katwijk wrote:
>
> Yes. See also the GConf project.
> It's about 'programs registring into gnome', so much relavant info is availeble
> for wrapping an application. Less need to build code for every single application,
>
> maybe we could write a general one once we use GConf.
>
> Example: A email applet could simply register itself as a handler for the smtp
> and pop mimetypes. GMS will collect this data from the gconf database, and
> export the needed structure to activate this dataflow inside Overflow.
Are you saying VSH will need GConf installed to do wrapping? Or are you
saying that we'll use something like GConf?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Fri Mar 24 23:20:57 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
<38DC3470.D68AF122@geoserve.net>
Message-ID: <38DC3EA9.F84B3EDF@hermes.usherb.ca>
"J.W. Bizzaro" a ?crit :
> > OK, I'll try to summerize the way XML is used in Overflow with an example:
> >
> >
> >
> >
> > A document is a file and can contain many networks (it's the equivalent of a .c)
>
> Then this is something like Loci's 'workspace' or 'workflow diagram', or
> Jarl's 'dataflow structure'.
Something I forgot to say about documents... if this document is in the
VFLOW_PATH, then the whole document can be used as a node in another document.
>
> >
> >
> > A network if the C equivalent of a function. Each document must contain a MAIN
> > network.
BTW, the network type can be three things: "subnet", "iterator" or
"threadedIterator". The "threadedIterator" is very experimental, so I will not
talk about it. A "subnet" is the C equivalent of a function, while the
"iterator" is the equivalent (not exact) of a loop. Actually an iterator is the
equivalent of a function that looks like
void foo(...)
{
while(condition)
{
do something
}
}
> >
> >
> >
> >
> >
> > This is a node definition. The name is arbitrary,
>
> The name is akin to Loci's identification number, which is really a URI to the
> XML representation of the node.
>
> > while the type corresponds to an Overflow node class.
>
> Great, this is just like Loci's locus types/classes.
>
Just to make sure everyone understand, the definition is the equivalent of a
function call, not a function prototype/implementation.
> > x and y are for the GUI.
>
> I think for VSH we should have the GUI store that information. If we are to
> have more than one interface available for VSH, x and y will not always be
> relevant. This is what we were going to do with Loci.
>
I didn't like that either. It was just simpler to have everything in one file
(since this is the only info that was GUI-dependent)
> > The parameters have to correspond to what the node expects.
>
> This is like a mime-type for link I/O? This is also something Loci was going
> to define.
I'm not sure what you're talking about...
>
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
> I'm not sure what you mean by value=256, cat, or frames.
>
Here's the C equivalent:
void foo(int aNumber);
main()
{
foo(256);
}
This would translate to:
Also about parameters... Here is a macro that appears on top of each file that
implements a node:
NODE_INFO(FIR,"Signal:DSP", "INPUT:FILTER", "OUTPUT",
"LENGTH:CONTINUOUS:NONCAUSAL")
Here, FIR is the name of the class (the node's "type"), "Signal:DSP" is just a
classification for the menus, "INPUT" and "FILTER" are the names of the inputs
and "OUTPUT" is the name of the output. This node accepts 3 parameters
(arguments): LENGTH, CONTINUOUS and NONCAUSAL.
When the node is loaded (its library is dynamically linked), a function puts
that info in a node "database", which the GUI uses to know what node are
available (and takes what arguments).
> >
> >
> > Links define which node is connected to which. Input and output names need to be
> > defined since nodes can have more than one input/output.
>
> Excellent, just like Loci. Although Loci embedded (what Loci calls
> and 'connectors') in with the node information. This is how
> Loci defines a node (loci == node, although 'locus' is singular):
>
>
> file_select
>
>
>
>
>
We used to have links as a property of the nodes (before we switched to XML).
The reason we changed is that is that a Link in the GUI is an actual object, so
it was just simpler.
> (Brad, shouldn't we also have locus 'id=' in here?)
>
> In this example, when we say 'type=', we mean the same thing you do with
> 'type='. But our type 'document' is a node that stores data: a file. It's
> not where Loci sets up a network. What Overflow calls 'document', Loci calls
> 'workspace'.
>
> is the name of the interface component to be used. We're working on
> using more XML here, and the 'widget' representation in XML can be located
> anywhere on the Internet.
>
> and define the links (connectors) for this particular node.
> href points to the XML representation of the node it is connected to.
> xml:link is from an XML document linking tool that Brad has been using.
>
> Loci also gives the node an ID (not shown above) that is the location/URI of
> the node's XML representation. Here the GUI of Loci requests that a node
> called 'viewer1' gets linked to a node called 'document1':
>
>
>
>
>
>
>
>
> Other information related to a node (e.g., library URI and version number) can
> be kept between and
>
> >
> >
> > NetOutput means which node (and which output of that node) will be used as the
> > output of the whole network. The same applies to NetInput and NetCondition.
>
> What is the actual output? The screen, a file? Or is this something the user
> defines?
The output is what getOutput() returns... you can do whatever you like with it.
batchflow (text mode tool) writes it to stdout, vflow (the GUI tool) writes it
in a subwindow. If you want to save it in a file, all you need to do is to have
the last node be a "Save" node. ...or the last node can be a soundcard output...
In most cases, the output of the MAIN network is a nil object.
>
> >
> >
>
> In this case, the whole 'document' gets a 'parameter' tag?
>
> When I first came across Overflow (when you posted the announcement on
> gnotices), I noted to Brad how remarkably similar some of its features are to
> Loci's. This is particularly true for the XML representation of a network.
>
> This is something GMS (which uses no XML) needs to implement as well. And
> since Overflow and Loci are so similar, we should choose one definition. Can
> you comment on what you like or dislike about Loci's use of XML for network
> representation? Let's hammer this out right away.
I'm not that much a fan of XML... The only reason I used it was that it saved me
so much time (instead of writing a parser myself). So Anything that does the job
is OK for me.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Fri Mar 24 23:50:14 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
<38DC3470.D68AF122@geoserve.net> <38DC3EA9.F84B3EDF@hermes.usherb.ca>
Message-ID: <38DC4586.178AE513@geoserve.net>
Jean-Marc Valin wrote:
>
> Something I forgot to say about documents... if this document is in the
> VFLOW_PATH, then the whole document can be used as a node in another document.
Right. Loci can embed workspaces in workspaces too.
> BTW, the network type can be three things: "subnet", "iterator" or
> "threadedIterator". The "threadedIterator" is very experimental, so I will not
> talk about it. A "subnet" is the C equivalent of a function, while the
> "iterator" is the equivalent (not exact) of a loop. Actually an iterator is the
> equivalent of a function that looks like
>
> void foo(...)
> {
> while(condition)
> {
> do something
> }
> }
Understood.
> > Great, this is just like Loci's locus types/classes.
> >
>
> Just to make sure everyone understand, the definition is the equivalent of a
> function call, not a function prototype/implementation.
Okay, I was showing you some actual locus implementation in XML. Loci doesn't
keep workspace information in a single flat file like Overflow does. Loci
(right now) uses the local filesystem to help organize the structure. I'll
let you, Jarl and Brad work out how VSH will do it.
> > This is like a mime-type for link I/O? This is also something Loci was going
> > to define.
>
> I'm not sure what you're talking about...
I mean, when Overflow defines a link, does it also define the type of data
that is passed through the link?
> > I'm not sure what you mean by value=256, cat, or frames.
> >
>
> Here's the C equivalent:
>
> void foo(int aNumber);
>
> main()
> {
> foo(256);
> }
>
> This would translate to:
>
>
>
>
Gotcha, these are akin to function parameters in C.
> When the node is loaded (its library is dynamically linked), a function puts
> that info in a node "database", which the GUI uses to know what node are
> available (and takes what arguments).
How are you making this 'database'? Is it an external db like mySQL or your
own creation?
> We used to have links as a property of the nodes (before we switched to XML).
> The reason we changed is that is that a Link in the GUI is an actual object, so
> it was just simpler.
That's a good point. Loci also treats connectors as objects. But they are
always a subclass of loci (nodes).
> > What is the actual output? The screen, a file? Or is this something the user
> > defines?
>
> The output is what getOutput() returns... you can do whatever you like with it.
> batchflow (text mode tool) writes it to stdout, vflow (the GUI tool) writes it
> in a subwindow. If you want to save it in a file, all you need to do is to have
> the last node be a "Save" node. ...or the last node can be a soundcard output...
> In most cases, the output of the MAIN network is a nil object.
Excellent. In Loci, we were going to have unconnected output connectors
(links) be 'outputs' of this type. If these outputs are left unconnected by
the user, Loci would send the data to the parent of the workspace (document).
And if there was no parent (the workspace is the highest-level workspace),
Loci would send the data to stdout.
> I'm not that much a fan of XML... The only reason I used it was that it saved me
> so much time (instead of writing a parser myself). So Anything that does the job
> is OK for me.
I like it.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Sat Mar 25 00:02:06 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
Message-ID: <38DC484E.781D6528@geoserve.net>
Jean-Marc Valin wrote:
>
> OK, I'll try to summerize the way XML is used in Overflow with an example:
Brad and Jarl, perhaps GMS can reuse much of Overflow's code for handling XML
and network construction?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Sat Mar 25 00:08:02 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
<38DC3470.D68AF122@geoserve.net> <38DC3EA9.F84B3EDF@hermes.usherb.ca> <38DC4586.178AE513@geoserve.net>
Message-ID: <38DC49B2.CD741462@hermes.usherb.ca>
> > > Great, this is just like Loci's locus types/classes.
> > >
> >
> > Just to make sure everyone understand, the definition is the equivalent of a
> > function call, not a function prototype/implementation.
>
> Okay, I was showing you some actual locus implementation in XML. Loci doesn't
> keep workspace information in a single flat file like Overflow does. Loci
> (right now) uses the local filesystem to help organize the structure. I'll
> let you, Jarl and Brad work out how VSH will do it.
>
> > > This is like a mime-type for link I/O? This is also something Loci was going
> > > to define.
> >
> > I'm not sure what you're talking about...
>
> I mean, when Overflow defines a link, does it also define the type of data
> that is passed through the link?
Well, that's not necessary since all Overflow objects derive from the Object
class. Of course, some nodes require their input to be a certain type, so they
will check the type. However some nodes, like "save", don't care about the type,
since all objects know how to save themselves. Also some nodes, like "load"
don't even know what type they will return (it depends on what's in the file
their loading). BTW, the virtual getOutput() method defined in the base Node
class returns a type ObjectRef, which is a reference-counted pointer (aka
"smart-pointer") to an Object (the base class). For those who know the language,
our object system is a lot inspired by Smalltalk.
> > When the node is loaded (its library is dynamically linked), a function puts
> > that info in a node "database", which the GUI uses to know what node are
> > available (and takes what arguments).
>
> How are you making this 'database'? Is it an external db like mySQL or your
> own creation?
It's not a database in that sense, it's just a structure (I use an STL map) that
maps a node name to a set of information for the GUI (inputs, outputs,
parameters, ...).
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Sat Mar 25 01:05:30 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Jungle Monkey
Message-ID: <38DC572A.D7852AB1@geoserve.net>
I think this is something like Napster:
http://www.eecs.umich.edu/~dhelder/misc/jm/
which could be used to make distributed VSH nodes easily accessible across the
Internet.
Jeff
From bizzaro at geoserve.net Sat Mar 25 01:10:32 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] hOpla
Message-ID: <38DC5858.9C6F2AF2@geoserve.net>
What do you think of this, Brad?
http://hopla.linuxbe.org/en/
Jeff
From jarl at casema.net Sat Mar 25 05:51:25 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
Message-ID: <38DC9A2D.C9F83702@casema.net>
>
Hi all,
very intersesting post from Jean,
>
> A document is a file and can contain many networks (it's the equivalent of a .c)
> A network if the C equivalent of a function. Each document must contain a MAIN
> network.
Logical.
>
> NetOutput means which node (and which output of that node) will be used as the
> output of the whole network. The same applies to NetInput and NetCondition.
> Questions?
>
Can I find a overview somewhere in the Overflow code?
I've been looking in it, gives me the impression every node type is a separate c
source.
But the structure is clear, and I like it :)
bye,
jarl
From jarl at casema.net Sat Mar 25 06:10:22 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] gui protocol revisited
References: <200003230149.UAA115166@archa11.cc.uga.edu> <38DACD96.8D0900F3@geoserve.net> <38DB1577.481B6BB4@casema.net> <38DBDA0F.19CA34CC@geoserve.net> <38DC03CC.3A5B5CEF@casema.net> <38DC3532.47422EF0@geoserve.net>
Message-ID: <38DC9E9E.6A1CAD03@casema.net>
> >
> > Yes. See also the GConf project.
> > It's about 'programs registring into gnome', so much relavant info is availeble
> > for wrapping an application. Less need to build code for every single application,
> >
> > maybe we could write a general one once we use GConf.
> >
> > Example: A email applet could simply register itself as a handler for the smtp
> > and pop mimetypes. GMS will collect this data from the gconf database, and
> > export the needed structure to activate this dataflow inside Overflow.
>
> Are you saying VSH will need GConf installed to do wrapping? Or are you
> saying that we'll use something like GConf?
>
No, not right now. But GConf will be in GNOME 2.0. So at that time this application
information is available in every gnome environment. Let's stick to what Overflow
current does, but using the GConf registry will become very tempting once it's becoming
supported by more-and-more gnome applications.
From jarl at casema.net Sat Mar 25 06:14:09 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca> <38DC484E.781D6528@geoserve.net>
Message-ID: <38DC9F81.5431E931@casema.net>
> Jean-Marc Valin wrote:
> >
> > OK, I'll try to summerize the way XML is used in Overflow with an example:
>
> Brad and Jarl, perhaps GMS can reuse much of Overflow's code for handling XML
> and network construction?
>
As said before, gms will just act passive on most of the XML descriptions.
From jarl at casema.net Sat Mar 25 08:05:04 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Idl
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca> <38DC484E.781D6528@geoserve.net> <38DC9F81.5431E931@casema.net>
Message-ID: <38DCB97F.5BFC6B52@casema.net>
Hi,
I've been adding some to the idl brad created,
i'll work more on it tonight\tomorrow, but this is what I came up with.
bye,
jarl
-------------- next part --------------
// gui2dp.idl
//
// IDL for dealing with communication between the GUI (buffered by a small
// middle) and the data processing engine.
//
// Changelog:
// 23 Mar 2000 : Brad, creation
// 25 Mar 2000 : Jarl, added gms naming
/**
* Organization of modules.
* vsh: The overall module (the name can change when we decide on a formal
* name).
* gui2dp: idl for communication between the GUI (interpeter?) and the
* data processing engine.
* ADM: Automatic Definition Maker, a GUI or script that defines structures.
* DFB: DataFlow Broker, layer that does the distribution\authentication\etc
* DFP: DataFlow Procesor, layer that does the 'real' dataflow work.
*
*/
module vsh {
module ADM2DFB {
// ##### exceptions
/**
* Requested Id is already being used for another gui.
*/
exception IdInUse {};
/**
* Id number used for requested operation was not found in the list of
* current gui ids being served by the data processor.
*/
exception IdNotFound{};
/**
* The information for a node is not yet available because the process
* has not completed.
*/
exception InfoNotAvailable{};
// ##### structs and typedefs
/**
* A sequence/list of strings. Useful for returning info like a list of
* program ids for available programs.
*/
typedef sequence stringList;
// ##### interfaces
/**
* Functions for dealing with a front to middle connection.
* TODO: define 'front' and 'middle' ??
*/
//interface Connection {
interface ADMRegister {
/**
* Initialize a connection from the gui to the data processing engine.
* @parm gui_id - An unique id to represent the gui connection
* @parm password - The password associated with this id.
* @returns A boolean indicating the success of the initialization
* @raises IdInUse - The passed gui_id is already in use by another gui.
*/
boolean init(in string adm_id, in string password)
raises (IdInUse);
/**
* Close the connection between the gui and data processing engine.
* Used when closing down a GUI.
* @parm dfb_id - An unique id to represent the gui connection
* @parm password - The password associated with this id.
* @returns A boolean indicating the success of the initialization
* @raises IdNotFound - The passed id was not found in the list of
* ids registerd with the data processing engine.
*/
boolean release(in string adm_id, in string password)
raises (IdNotFound);
};
/**
* Functions for passing XML information to the data processing engine.
*/
interface XML {
/**
* Send a string of XML to the data processing engine to be dealt with.
* @parm xml_to_process: A big string of xml describing the nodes/loci
* to be processed and the relationship between them.
* @returns An id to be used for getting information about the
* process sent.
*/
// XML defines
string xml_structure(in string xml_document);
}
/**
* Functions for dealing with 'subnets' (brokering\gms nodes)
*/
interface SUBNET {
uri_t new(in string dname, in string ddescription, in string datadescription, in string allowedfilter);
boolean destruct(in uri_t uri);
boolean init(in uri_t uri);
boolean activate(in uri_t uri);
uri_t duplicate(in uri_t uri);
// set details
boolean SETdname(in uri_t uri, in string displayedname);
boolean SETstatus(in uri_t uri, in status_t status);
boolean SETdataDescription(in uri_t uri, in string datadescription);
boolean SETdDescription(in uri_t uri, in string displayeddescription);
boolean SETallowedFilter(in uri_t uri, in string allowedfilter);
boolean SETconfiguration(in uri_t uri, in string configruntime);
// get details
string GETdname(in uri_t uri);
status_t GETstatus(in uri_t uri);
string GETdataDescription(in uri_t uri);
string GETdDescription(in uri_t uri);
string GETallowedFilter(in uri_t uri);
string GETconfiguration(in uri_t uri);
MDO_t GEThistoricdata(in uri_t uri, in long history);
}
/**
* Functions for single node access (cq overflow nodes)
*/
interface NODE {
// TODO: add more..
uri_t new(in dfp_nodetype_t dfp_nodetype, in dfp_nodeparam_t dfp_nodeparameter);
boolean destruct(in uri_t uri);
// set single dfp nodes details
boolean SETstatus(in uri_t uri, in status_t status); // TODO: can overflow handle 'nodes status' ??
boolean SETparameter(in uri_t uri, in string parameters);
boolean ADDparameter(in uri_t uri, in string parameter);
// get details
status_t GETstatus(in uri_t uri);
string GETparameters(in uri_t uri);
};
/**
* Functions dealing with a process that has been sent to the middle.
*/
interface ProcessInformation {
// TODO: move to ADM, SUBNET and NODE interface?
/**
* Request information the status of the overall process.
* @parm process_id - the unique id associated with a process.
* @returns A double representing the progress towards completion.
* 1 indicates completion, 0 indicates the process has not
* started, numbers between 0 and 1 represent the percent
* completion, and -1 indicates an error in the process
* @raises IdNotFound - If the passed process_id is not found.
*/
double query_process(in string process_id) raises (IdNotFound);
/**
* Request information about a particular node/locus in a process.
* @parm process_id - the unique id associated with a process.
* @parm node_id - the unique id associated with a node.
* @returns A double representing the progress towards completion.
* 1 indicates completion, 0 indicates the process has not
* started, numbers between 0 and 1 represent the percent
* completion, and -1 indicates an error in the process.
* @raises IdNotFound - if either the process or node id were not
* found.
*/
double query_process_node(in string process_id, in string node_id)
raises (IdNotFound);
/**
* Get the information for a node so that is can be displayed in the
* GUI.
* @parm process_id - the unique id associated with a process.
* @parm node_id - the unique id associated with a node.
* @returns A string with the info from the node.
* TODO: Need a structured and generalized way to return info
* and pass it to a visual so it can be seen in the GUI
* Strings aren't going to cut it for everything,
* I don't think.
* @raises InfoNotAvailable - If the node currently doesn't have any
* information to send (ie. process is not complete.
*/
string get_node_info(in string process_id, in string node_id)
raises (InfoNotAvailable);
};
/**
* Functions for getting information about programs and libraries registered
* with the processing engine.
*/
interface ProgramInformation {
/**
* Get a list of all the program ids of programs registered functional
* (ie. loaded) with the processing engine.
* @returns A sequence of strings (list) with the node_ids of availeble
* nodes.
*/
stringList get_program_ids();
/**
* Query a specific node to see if it is available.
* @parm node_id - the unique id of a node (program/function).
* @returns 1 if the program is loaded, 0 if it is not.
*/
boolean is_available(in string node_id);
};
};
};
From jean-marc.valin at hermes.usherb.ca Sat Mar 25 12:25:06 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca>
<38DC9A2D.C9F83702@casema.net>
Message-ID: <38DCF672.B7579D8@hermes.usherb.ca>
> very intersesting post from Jean,
>
> >
> > A document is a file and can contain many networks (it's the equivalent of a .c)
>
> > A network if the C equivalent of a function. Each document must contain a MAIN
> > network.
>
> Logical.
The only difference with a C program is that if you need many .n (that's how we
name the overflow files), you need one MAIN in each, while in C you only need
one main. Only the MAIN network is accessible from outside.
>
> >
> > NetOutput means which node (and which output of that node) will be used as the
> > output of the whole network. The same applies to NetInput and NetCondition.
> > Questions?
> >
>
> Can I find a overview somewhere in the Overflow code?
What kind of overview?
> I've been looking in it, gives me the impression every node type is a separate c
> source.
> But the structure is clear, and I like it :)
Yes, all node is in a separate .cc (If it starts with the NODE_INFO macro, it's
a node). Actually, all directories, except data-flow and vflow only contain
nodes (the two ohers contain nodes, but also other stuff). Lots of the node even
have the class definition in the .cc, since the code never explicitly uses that
class (the NODE_INFO simply puts a Factory for that class in a global
"database"). The only nodes that need to have the class in a .h are the ones
that are inherited. For example, we have a Probe node that's a bit like a
debugger (Next, Stop, Continue) and we have a TextProbe and PlotProbe node that
add a display (text of plot) to the Probe.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From chapmanb at arches.uga.edu Sat Mar 25 13:06:45 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:37 2006
Subject: [Pipet Devel] Idl
Message-ID: <200003251809.NAA124632@archa12.cc.uga.edu>
Jarl wrote:
> I've been adding some to the idl brad created,
> i'll work more on it tonight\tomorrow, but this is what I came up
with.
Thanks for looking at this.In general I'd like to try and make the
interface smaller (since I'm lazy and want to implement as few
interfaces and functions as possible :)
Also, the uri_t you are referring to (as a reference to a node or
subnet) is the same thing I was referring to using two references, a
process_id and a node_id. Maybe we could combine the two ideas by
having the uri_t be a string concatenation of the two separated by a
color (ie. uri_t = 'process_id:node_id').
Here are my specific thoughts (a lot of this is just talking out loud,
so please bare with me!):
For the SUBNET interface:
These are for accessing whole subnets or programs (so GMS type
nodes) after they have been sent a workflow/xml_structure to process
(ie. a whole bunch of connected nodes), right?
My question is, do we really need this level of control so that
someone can
manipulate a process so much while it is running? The way I was
thinking of the GUI and processing engine working together are that
the user spends some time getting a nice process of connected nodes
set up, and then hits run and waits for the output to come out at the
specific nodes/subnets they are interested in. If this is the case,
then why and when would they need to access a process to remove,
activate, destruct, add, etc. nodes and subnets?
Am I being naive here in thinking that we don't need all of this
control of a running process? Perhaps what we do need though it a
method for cancelling and run and getting as much information as you
can from it...
So can we drop these following functions out and leave it up to
the processor to get this information from the xml that is sent?
uri_t new(in string dname, in string ddescription, in string
datadescription, in string allowedfilter);
boolean destruct(in uri_t uri);
boolean init(in uri_t uri);
boolean activate(in uri_t uri);
uri_t duplicate(in uri_t uri);
boolean SETdname(in uri_t uri, in string displayedname);
boolean SETallowedFilter(in uri_t uri, in string allowedfilter);
boolean SETconfiguration(in uri_t uri, in string configruntime);
boolean SETdataDescription(in uri_t uri, in string
datadescription);
string GETdataDescription(in uri_t uri);
string GETdname(in uri_t uri);
For the following functions--do we need the processor to know about
the description of the program? Can all of this type of information by
stored in xml in the "middle scripting thingy"?
boolean SETdDescription(in uri_t uri, in string
displayeddescription);
string GETdDescription(in uri_t uri);
For the following functions: I don't really understand the set status
(how does the scripting engine set the status of a process?). I tried
to include GETstatus type stuff in my query_process function. But
maybe we should split this querying to be specific for a subnet or
node?
boolean SETstatus(in uri_t uri, in status_t status);
status_t GETstatus(in uri_t uri);
For the following, I'm not really positive why the middle would need
to know this stuff? Do you want the GUI to restrict only allowed
things to be connected? This seems *really* hard to maintain--maybe it
would be better to have the processing engine generate errors and then
propogate them back to the GUI so the user can fix them? The idl
probably does need a better way to return back error messages.
string GETallowedFilter(in uri_t uri);
string GETconfiguration(in uri_t uri);
For the following, do we still need the processing engine to store a
log/history of events, or should this be handled by the middle
scripting part, which can maintain logs for all its communication.
MDO_t GEThistoricdata(in uri_t uri, in long history);
For the NODE interface:
I think the same kind of comments I made above apply here: how
about if we just send all of this information to the middle as XML. I
think that the current Overflow XML will be a good point to start with
and we can work from there. What I need to get working is a way to
turn the directory/heirarchy based file storage system that Loci
currently has into the type of flat XML that Overflow uses, so I can
pass this. While the heirarchial structure is best for dealing with
the GUI (since I have to make lots of changes to it as the GUI
changes, it is easier to break it up into smaller chunks for
manageability and speed), the flat file format is what we need so that
we can pass a single file to the processing engine to process (and to
stay compatible with what Overflow does since they have a good thing
going). We also will not want to pass all of the info that is stored
in XML in the middle (like descriptions of programs, etc.) to the
processing engine, so some kind of transformation will be needed. I
need to start trying to think about how to do this, but I hope it
shouldn't be too bad...
Thanks again for checking out the idl, Jarl. Hopefully all of us
can get it hashed out over the next few days without a problem.
Brad
From gvd at redpoll.pharmacy.ualberta.ca Sat Mar 25 15:21:30 2000
From: gvd at redpoll.pharmacy.ualberta.ca (Gary Van Domselaar)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] 3/1 and 1/3
References: <38DA7ED9.9D3F46A1@hermes.usherb.ca>
<38DA94D7.E40E84B4@casema.net> <38DAE9FA.9919576C@geoserve.net> <38DAFBB3.FB7B40@hermes.usherb.ca> <38DBD8BF.10AC39FA@geoserve.net>
Message-ID: <38DD1FCA.427709C4@redpoll.pharmacy.ualberta.ca>
"J.W. Bizzaro" wrote:
> > About the architecture... what about this: Everything that's done locally
> > (including running other exceutables) is handled by Overflow and all networking
> > stuff would be handled by GMS, which would take care of connecting all Overflow
> > processes (here I'm talking about "process" in a weak sense) through a network.
> > This way there wouldn't be any duplication. Also, every node-to-node connection
> > in the GMS part of the GUI would be assumed to be "network-able".
>
> This is EXACTLY what I was thinking of. Brad and Jarl, is this not what you
> guys were thinking?
I'll add my $cdn 0.02 here. This seems like the most sensible solution.
Integrating Overflow and GMS this way allows the data to flow
transparently, >and< preserves Overflow's speed-optimized data flow
protocol.
>
> > Concerning the GUI, I don't think it would be hard to plug in what we've got so
> > far in another app. Or we can just embed the current GUI in the new app using
> > bonobo. I don't know enough about this to say which is best.
>
> I don't dislike Overflow's GUI. I just believe GMS and Overflow should have
> GUIs that work alike. Plus, we've come up with some very nice GUI features
> for Loci that I'd like to see VSH have.
I agree. From the user's perspective, both GMS and Overflow behave
alike; they should a common interface. That way, the end user need not
be aware of which 'engine' is behind the interface, which is the way is
should be.
Regards,
g.
--
Gary Van Domselaar
gary@bioinformatics.org
http://www.bioinformatics.org/~gary
----------------------------------------------------
bioinformatics.org: The Open Lab
http://www.bioinformatics.org/
From bizzaro at geoserve.net Sat Mar 25 22:06:36 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] XML compression
Message-ID: <38DD7EBC.15FA77B7@geoserve.net>
http://www.xml.com/pub/2000/03/22/deviant/index.html
Jeff
From jarl at casema.net Sun Mar 26 07:46:58 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] Naming of three layers
References: <38DD7EBC.15FA77B7@geoserve.net>
Message-ID: <38DE06C2.7A5E54D3@casema.net>
Hi all,
Bard and I are doing some work defining the IDL of the
CORBA communications between
the GUI and the CORE, and we need to have so naming
settled:
I propose using this labelling for the three layers
VSH will be build from:
- The DDL, or Dataflow Definitions Layer. This name will
replace 'GUI', because it doesn't need to be graphical, it
only needs to supply a XML document.
- The DBL, or Dataflow Brokering Layer, which will replace
'gms'.
- The DPL, or Dataflow Processing Layer, which replaces
'Overflow'
Some feedback please, maybe remove 'Dataflow' in all
three?
bye,
jarl
From jarl at casema.net Sun Mar 26 09:43:56 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] Idl2
References: <200003251809.NAA124632@archa12.cc.uga.edu>
Message-ID: <38DE222C.E3EEEC24@casema.net>
Hi,
Checked the syntax and compiled the idl :)
bye,
jarl
-------------- next part --------------
// DDL2DBL.idl
//
// IDL for dealing with communication between the GUI (buffered by a small
// middle) and the data processing engine.
//
// Changelog:
// 23 Mar 2000 : Brad, creation
// 25 Mar 2000 : Jarl, added gms naming
// 26 Mar 2000 : Renamed again :) added\remove some functions
// Actually compiled this :)
/**
* Organization of modules.
* vsh: The overall module (the name can change when we decide on a formal
* name).
* gui2dp: idl for communication between the GUI (interpeter?) and the
* data processing engine.
* ADM: Automatic Definition Maker, a GUI or script that defines structures.
* DFB: DataFlow Broker, layer that does the distribution\authentication\etc
* DFP: DataFlow Procesor, layer that does the 'real' dataflow work.
*
*/
module VSH {
/**
* Functions exported by the DataFlow Broker
*/
module DBL {
// ##### exceptions
// ----------------
// Requested Id is already being used for another gui.
exception DDLIdInUse {};
// Id number used for requested operation was not found in the list of
// current gui ids being served by the data processor.
exception DDLIdNotFound{};
// The information for a node is not yet available because the process
// has not completed.
exception DDLInfoNotAvailable{};
// The DBL\DFP couldn't accept the XML document and so didn't allocate an uri.
exception URIUndefined{};
// The uri is already defined.
exception URIInUse{};
// The uri cant be found, it does not excist or is not accessable.
exception URINotFound{};
// Requested information was not found.
exception INFONotAvailable{};
// ##### structs, enums and typedefs
// ---------------------------------
// A sequence/list of strings. Useful for returning info like a list of
// program ids for available programs.
typedef sequence stringlistT;
// DDL identification number, or 'account name'.
typedef long ddlidT;
// Passwords
typedef string passwordT;
// Connection type:
// -1 = Unconnected
// 0 = Unknown
// 1 = Plain connection
// 2 = Encrypted connection, based on {TODO:type} encryption
enum connectionE {
UNKNOWN,
UNCONNECTED,
PLAIN,
ENCRYPTED1
};
// Status type:
// -1 = Error (TODO: Other negative values to define various errors)
// 0 = Unknown
// 1 = Passing
// 2 = Blocking
// 4 = Temporary
// 8 = Isolated
typedef long statusT;
// URI type, a 128bits locating id:
// bits 0-31 : instance id
// bits 32-63 : brokering id, or subnet id
// bits 64-127 : node id
struct uriT {
long instanceID;
long subnetID;
long nodeID;
};
// ##### interfaces
// ----------------
// Functions for dealing with a front to middle connection.
// TODO: define 'front' and 'middle' ??
//interface Connection {
interface CONNECTION {
// TODO: maybe introduce a 'access level', so ADM's can be limited?
/** setup
* Initialize a connection from the gui to the data processing engine.
* @parm ddl_id - An unique id to represent the gui connection
* @parm password - The password associated with this id.
* @parm connecttype - requested connection type.
* =returns A boolean indicating the success of the initialization
* +raises IdInUse - The passed gui_id is already in use by another gui.
*/
boolean setup(in ddlidT ddlid, in passwordT password, in connectionE connecttype)
raises (DDLIdInUse);
/** release
* Close the connection between the gui and data processing engine.
* Used when closing down a GUI.
* @parm ddl_id - An unique id to represent the gui connection
* @parm password - The password associated with this id.
* =returns A boolean indicating the success of the initialization
* +raises IdNotFound - The passed id was not found in the list of
* ids registerd with the data processing engine.
*/
boolean release(in ddlidT ddlid, in passwordT password)
raises (DDLIdNotFound);
/** check
* Checks if the DDL with id 'ddl_id' has been connected
* @parm ddl_id - An unique id to represent the gui connection
* =returns type of connection
* +raises DDLInfoNotAvailable - this connection isn't setup correctly
*/
connectionE check(in ddlidT ddlid)
raises (DDLInfoNotAvailable);
};
/**
* Functions for passing XML information to the data processing engine.
*/
interface REPRESENTATION {
// Functions dealing with XML document syncronisation.
/** upload
* Uploads a XML document to the DBL, which will pass most of it to the DPL.
* @parm xml_to_process: A big string of xml describing the nodes/loci
* to be processed and the relationship between them.
* @parm ddl_id - The ID of the DDL that uploads the document
* @parm password - The password associated with this id.
* =returns the URI the uploaded structure got assigned by the DBL.
* +raises URIUndefined, the DBL\DFP couldn't accept the XML document. Use
* DATAFLOW::check to see what is wrong
*/
uriT upload(in string xmldocument, in ddlidT ddlid, in passwordT password)
raises (URIUndefined);
/** update
* Updates an excisting structure.
* @parm xml_document - The XML document
* @parm uri - the uri id of the structure to be overwritten
* @parm ddl_id - The ID of the DDL that uploads the document
* @parm password - The password associated with this id.
* =returns boolean success status.
* +raises URIInUse, the uri is currently running or the DDL is not authorized
* to overwrite it.
*/
boolean update(in string xmldocument, in uriT uri, in ddlidT ddlid, in passwordT password)
raises (URIInUse);
/** download
* Downloads a XML document from the DBL to the DDL.
* @parm uri - uri of the structure to be downloaded.
* @parm ddl_id - The ID of the DDL that uploads the document
* @parm password - The password associated with this id.
* =returns XML document.
* +raises URINotFound when uri doesn't excist or is not reachable.
*/
string download(in uriT uri, in ddlidT ddlid, in passwordT password)
raises (URINotFound);
/** status
* Used for checking the status of an URI
* @parm uri - uri of the to be checked structure
* @parm ddl_id - The ID of the DDL that uploads the document
* @parm password - The password associated with this id.
* =returns status of the structure uri
* +raises URINotFound when uri doesn't excist or is not reachable.
*/
statusT check(in uriT uri, in ddlidT ddlid, in passwordT password)
raises (URINotFound);
};
/**
* Functions dealing with a process that has been sent to the middle.
*/
interface STATUS {
// Functions that give status information of the core (DBL and DPL)
// Functions for getting information about programs and libraries registered
// with the processing engine.
// TODO: Jarl should put more work in checking these :)
/**
* Request information the status of the overall process.
* @parm process_id - the unique id associated with a process.
* @returns A double representing the progress towards completion.
* 1 indicates completion, 0 indicates the process has not
* started, numbers between 0 and 1 represent the percent
* completion, and -1 indicates an error in the process
* @raises IdNotFound - If the passed process_id is not found.
*/
//TODO: this function is replace by REPRESENTATION::check ???? double query_process(in string process_id) raises (IdNotFound);
/**
* Request information about a particular node/locus in a process.
* @parm process_id - the unique id associated with a process.
* @parm node_id - the unique id associated with a node.
* @returns A double representing the progress towards completion.
* 1 indicates completion, 0 indicates the process has not
* started, numbers between 0 and 1 represent the percent
* completion, and -1 indicates an error in the process.
* @raises IdNotFound - if either the process or node id were not
* found.
*/
//TODO: see above?? double query_process_node(in string process_id, in string node_id)
// raises (IdNotFound);
/**
* Get the information for a node so that is can be displayed in the
* GUI.
* @parm process_id - the unique id associated with a process.
* @parm node_id - the unique id associated with a node.
* @returns A string with the info from the node.
* TODO: Need a structured and generalized way to return info
* and pass it to a visual so it can be seen in the GUI
* Strings aren't going to cut it for everything,
* I don't think.
* @raises InfoNotAvailable - If the node currently doesn't have any
* information to send (ie. process is not complete.
*/
string getnodeinfo(in passwordT processid, in uriT uri)
raises (INFONotAvailable);
/**
* Get a list of all the program ids of programs registered functional
* (ie. loaded) with the processing engine.
* @returns A sequence of strings (list) with the node_ids of availeble
* nodes.
*/
stringlistT getprogramids();
/**
* Query a specific node to see if it is available.
* @parm node_id - the unique id of a node (program/function).
* @returns 1 if the program is loaded, 0 if it is not.
*/
boolean isavailable(in uriT uri);
};
};
};
From chapmanb at arches.uga.edu Sun Mar 26 12:00:39 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] Naming of three layers
Message-ID: <200003261703.MAA80502@archa12.cc.uga.edu>
Jarl wrote:
> I propose using this labelling for the three layers
> VSH will be build from:
As you suggested, I'd be for dropping the leading dataflow (otherwise
they all seem too much alike :)
> - The DDL, or Dataflow Definitions Layer. This name will
> replace 'GUI', because it doesn't need to be graphical, it
> only needs to supply a XML document.
My only comment on this is that the DDL (or DL or whatever) is
actually made up of two sections. The first is the GUI, or text based
front that the user will interact with. The second is the 'scripting
layer' which communicates with the GUI through a streaming XML dialog.
These are very separate entities, since the plan is that the
current Gnome UI could also be web interface or a 'natural language'
interface, running with the same 'scripting layer'.
So we should have two different terms to describe these (although
I'm not creative enough to come up with good ones :-)
Brad
From jarl at casema.net Sun Mar 26 12:51:47 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] Naming of three layers
References: <200003261703.MAA80502@archa12.cc.uga.edu>
Message-ID: <38DE4E33.4F59B7DC@casema.net>
>
> As you suggested, I'd be for dropping the leading dataflow (otherwise
> they all seem too much alike :)
OK, fine to me.
SO: what about this:
GL : Graphical layer - GUI
DL: Definition Layer - scripting\XML layer
BL: Brokering Layer - brokering
PL: Processing Layer - dataflow handler
Comments?
From jarl at casema.net Sun Mar 26 14:58:42 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] 3/1 and 1/3
References: <38DA7ED9.9D3F46A1@hermes.usherb.ca>
<38DA94D7.E40E84B4@casema.net> <38DAE9FA.9919576C@geoserve.net> <38DAFBB3.FB7B40@hermes.usherb.ca> <38DBD8BF.10AC39FA@geoserve.net> <38DD1FCA.427709C4@redpoll.pharmacy.ualberta.ca>
Message-ID: <38DE6BF2.6761C03F@casema.net>
> > > About the architecture... what about this: Everything that's done locally
> > > (including running other exceutables) is handled by Overflow and all networking
> > > stuff would be handled by GMS, which would take care of connecting all Overflow
> > > processes (here I'm talking about "process" in a weak sense) through a network.
> > > This way there wouldn't be any duplication. Also, every node-to-node connection
> > > in the GMS part of the GUI would be assumed to be "network-able".
> >
> > This is EXACTLY what I was thinking of. Brad and Jarl, is this not what you
> > guys were thinking?
We'll disable (do not use) the features that collide with this.
>
>
> I agree. From the user's perspective, both GMS and Overflow behave
> alike; they should a common interface. That way, the end user need not
> be aware of which 'engine' is behind the interface, which is the way is
> should be.
Yes, even the gui wont notice the diff., there will be one function 'upload()'
called on the BL ('gms') orb.
From jean-marc.valin at hermes.usherb.ca Sun Mar 26 15:32:13 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] Naming of three layers
References: <200003261703.MAA80502@archa12.cc.uga.edu> <38DE4E33.4F59B7DC@casema.net>
Message-ID: <38DE73CD.4505B80D@hermes.usherb.ca>
> GL : Graphical layer - GUI
> DL: Definition Layer - scripting\XML layer
> BL: Brokering Layer - brokering
> PL: Processing Layer - dataflow handler
Fine with me! (what about Visual Layer for the GUI, it's VSH after all...)
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Sun Mar 26 17:02:02 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] Naming of three layers
References: <200003261703.MAA80502@archa12.cc.uga.edu> <38DE4E33.4F59B7DC@casema.net> <38DE73CD.4505B80D@hermes.usherb.ca>
Message-ID: <38DE88DA.25044FA2@geoserve.net>
Jean-Marc Valin wrote:
>
> > GL : Graphical layer - GUI
> > DL: Definition Layer - scripting\XML layer
> > BL: Brokering Layer - brokering
> > PL: Processing Layer - dataflow handler
>
> Fine with me! (what about Visual Layer for the GUI, it's VSH after all...)
The only trouble I had was with the names GL and DL. I agree with Brad that
'DL' doesn't really cover the user interface and should be part of 'the core'.
But 'Graphical Layer' doesn't allow for non-graphical user interfaces, such as
web and text-based interfaces.
Jean-Marc's suggestion of 'Visual Layer' is nice, since it COULD be applied to
non-graphical interfaces. But what about a speech-based interface? Or a
session-recording interface? Those certainly are not 'visual'.
I was thinking that 'Interfaces Layer' (IL) might work, but the word
'interface' does not always mean USER interface and could be confusing in the
context of VSH. So, how about we bring back 3 letters and do this?
UIL: User Interfaces Layer - user interfaces
DDL: Dataflow Definition Layer - scripting\XML layer
DBL: Dataflow Brokering Layer - brokering
DPL: Dataflow Processing Layer - dataflow handler
(BTW, the argument that 'Dataflow' is redundant could also be applied to
'Layer' ;-))
There are also the 'foreign applications' and 'objects' to consider. We could
add a...
OAL: Objects and Applications Layer
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From chapmanb at arches.uga.edu Sun Mar 26 17:07:08 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] new idl
Message-ID: <200003262209.RAA86676@archa12.cc.uga.edu>
Hello all;
Jarl and I did some more talking and work on the idl, and here is
the updated version for your reading pleasure. Note that I am using
the DL, BL, PL naming conventions, but this can be easily changed
depending on what we decide for names (how about D, B, P for maximum
lack of redundancy :-). This is a sort of _finalized_ idl for now (ie.
Jarl and I both seem to like it) so comments from everyone are *very*
welcome. Have fun with it!
Brad
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/octet-stream
Size: 15419 bytes
Desc: not available
Url : http://bioinformatics.org/pipermail/pipet-devel/attachments/20000326/bba091d0/attachment.obj
From chapmanb at arches.uga.edu Sun Mar 26 17:16:03 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] new idl
Message-ID: <200003262218.RAA71008@archa11.cc.uga.edu>
Oops, I screwed stuff up and that last idl didn't attach so well. (I'm
also using an open source beta version mailer with lots o' bugs, so
maybe I can pretend to blame it on that :-) How about if I just paste
it on in?
Hope this is better :)
Brad
// dl2bl.idl
//
// IDL for dealing with communication between the GUI (buffered by a
small
// middle) and the data processing engine.
//
// Changelog:
// 23 Mar 2000 : Brad, creation
// 25 Mar 2000 : Jarl, added gms naming
// 26 Mar 2000 : Renamed again :) added\remove some functions
// Actually compiled this :)
// 27 Mar 2000 : Brad, case changes, moved a few functions
around
// Added a struct for returning more info about
a
// node/process.
/**
* Acronyms
* vsh: The overall module (the name can change when we decide on a
formal
* name).
* dl2bl: idl for communication between the scripting/XML layer and
the
* data processing engine.
* dl : definition layer, involved in the creation of an XML script to
define
* structures.
* bl: Brokering Layer, layer that does the
distribution\authentication\etc
* pl: Processing Layer, layer that does the 'real' dataflow work.
*
*/
module vsh {
/**
* Communication between the definition layer (XML script generator)
and
* the brokering layer, which distributes the XML info to the
processing
* layer.
*/
module dl2bl {
// ##### exceptions
// ----------------
/**
* Requested Id is already being used for another gui.
*/
exception DLIdInUse {};
/**
* Id number used for requested operation was not found in the
list of
* current gui ids being served by the data processor.
*/
exception DLIdNotFound{};
/**
* The information for a node is not yet available because the
process
* has not completed.
*/
exception DLInfoNotAvailable{};
/**
* The definition layer couldn't accept the XML document and so
didn't
* allocate an uri.
*/
exception URIUndefined{};
/**
* The uri is already defined.
*/
exception URIInUse{};
/**
* The uri cant be found, it does not excist or is not accessable.
*/
exception URINotFound{};
/**
* Requested information was not found.
*/
exception InfoNotAvailable{};
// ##### structs, enums and typedefs
// ---------------------------------
/**
* DL identification number, or 'account name'.
*/
typedef long DLIdT;
/**
* Passwords.
*/
typedef string passwordT;
/**
* Connection type:
* -1 = Unconnected
* 0 = Unknown
* 1 = Plain connection
* 2 = Encrypted connection, based on {TODO:type} encryption
*/
enum connectionE {
UNKNOWN,
UNCONNECTED,
PLAIN,
ENCRYPTED1
};
/**
* Current state of a node or process:
* -1 = Error (TODO: Other negative values to define various
errors)
* 0 = Unknown
* 1 = Passing
* 2 = Blocking
* 4 = Temporary
* 8 = Isolated
*/
typedef long stateT;
/**
* A value between zero and one indicating the process towards
completion
* for a process, subnet or node. This is useful if you have
really long
* programs and want to check on their status.
* 1 -> finished (100% done)
* intermediate -> % towards completion
* 0 -> not started (0% done)
*/
typedef double progressT;
/**
* Struct for returning the status of a particular node or process.
* @mem state - The current state of the node or process.
* @mem progress - The progress towards completion of the node or
* process.
*/
struct statusT{
stateT state;
progressT progress;
};
/**
* URI type, a 128bits locating id:
* bits 0-31 : instance id
* bits 32-63 : brokering id, or subnet id
* bits 64-127 : node i
* uriT is in a IP (Internet protocol) style
* uriT = 2.0.0 -> All subnets and nodes local in instance 2
* uriT = 74.35.0 -> All nodes in subnet 35 of instance 74.
* uriT = 1.2.3 -> Node 3 in subnet 2 of instance 1.
*/
struct uriT {
long instanceID;
long subnetID;
long nodeID;
};
/**
* A sequence/list of uriTs. Useful for returning info like a list
of
* program ids for available programs.
*
*/
typedef sequence uriListT;
// ##### interfaces
// ----------------
/**
* Functions for establishing a connection between the definition
layer
* and brokering layer (which controls access to the processing
layer).
*/
interface Connection {
// TODO: introduce a 'access level', so ADM's can be limited
/** setup
* Initialize a connection from the dl to the
brokering/processing
* layer.
* @parm dlid- An unique id to represent the connection.
* @parm password - The password associated with this id.
* @parm connecttype - requested connection type.
* @returns A boolean indicating the success of the
initialization.
* @raises DLIdInUse - The passed dlid is already in use by
another
* gui.
* TODO: Add more exceptions to raise as we see what problems
come up.
*/
boolean setup(in DLIdT dlid, in passwordT password, in
connectionE
connecttype)
raises (DLIdInUse);
/** release
* Close the connection between the definition layer and the
brokering
* processing layer
* @parm dlid - An unique id to represent the connection.
* @parm password - The password associated with this id.
* @returns A boolean indicating the success of the
initialization
* @raises DLIdNotFound - The passed id was not found in the
list of
* ids registerd with the data processing engine.
*/
boolean release(in DLIdT dlid, in passwordT password)
raises (DLIdNotFound);
/** checkConnection
* Checks if the DL with id 'dlid' has been connected.
* @parm dlid - An unique id represting the connection.
* @returns type of connection
* @raises DLInfoNotAvailable - this connection isn't setup
correctly
*/
connectionE checkConnection(in DLIdT dlid)
raises (DLInfoNotAvailable);
};
/**
* Functions for passing XML information to the data processing
engine
* and synchronizing the document.
*/
interface XmlRepresentation {
/** upload
* Uploads a XML document to the DL, which will pass most of
it to the
* PL.
* @parm xmldocument: A big string of xml describing the
nodes/loci
* to be processed and the relationship between them.
* @parm dlid - The ID of the DL that uploads the document
* @parm password - The password associated with this id.
* @returns the URI the uploaded structure got assigned by the
DL.
* @raises URIUndefined, the DL/PL couldn't accept the XML
document.
* Use RetrieveInfo::check to see what is wrong.
*/
uriT upload(in string xmldocument, in DLIdT dlid, in passwordT
password)
raises (URIUndefined);
/** update
* Updates an excisting structure.
* @parm xmldocument - The XML document
* @parm uri - the uri id of the structure to be
overwritten.
* @parm dlid - The ID of the DL that uploads the document
* @parm password - The password associated with this id.
* @returns boolean success status.
* @raises URIInUse, the uri is currently running or the DDL
is not
* authorized to overwrite it.
*/
boolean update(in string xmldocument, in uriT uri, in DLIdT
dlid,
in passwordT password)
raises (URIInUse);
/** download
* Downloads a XML document from the BL to the DL.
* @parm uri - uri of the structure to be downloaded.
* @parm dld - The ID of the DL that uploaded the document
* @parm password - The password associated with this id.
* @returns An XML document.
* @raises URINotFound when uri doesn't exist or is not
reachable.
*/
string download(in uriT uri, in DLIdT dlid, in passwordT
password)
raises (URINotFound);
};
/**
* Functions to provide status information for the core (brokering
and
* processing layers), and for getting information about programs
and
* libraries registered with the processing engine.
*/
interface RetrieveInfo {
/** checkStatus
* Used for checking the status of an URI
* @parm uri - uri of the structure to be checked.
* @parm dlid - The ID of the DL that uploads the document
* @parm password - The password associated with this id.
* @returns Status of the structure uri.
* @raises URINotFound when uri doesn't excist or is not
reachable.
*/
statusT checkStatus(in uriT uri, in DLIdT dlid, in passwordT
password)
raises (URINotFound);
/**
* Get the information for a node so that is can be displayed
in
* the visual user interface.
* @parm processid - the unique id associated with a process.
* @parm uri - uri of the node to be checked.
* @returns A string with the info from the node.
* TODO: Need a structured and generalized way to
return info
* and pass it to a visual so it can be seen in the
GUI
* Strings aren't going to cut it for everything,
* I don't think.
* @raises InfoNotAvailable - If the node currently doesn't
have any
* information to send (ie. process is not complete).
*/
string getNodeInfo(in passwordT processid, in uriT uri)
raises (InfoNotAvailable);
/**
* Get a list of all the program ids of programs registered
functional
* (ie. loaded) with the processing engine.
* @returns A sequence of uri's with ids of available
* nodes/subnets/programs. These will be returned
with leading
* zeros. For instance you could get back a list like
the
* following:
* ['0.0.27', '0.0.345', '0.0.123'...]
* It will be up to the definition layer to keep a
dictionary
* to translate between these uri's and the actual
program
* names.
*/
uriListT getProgramIds();
/**
* Query a specific node to see if it is available.
* @parm node_id - the unique id of a node (program/function).
* @returns 1 if the program is loaded, 0 if it is not.
* @raises URINotFound - If the requested URI can not be
located.
*/
boolean isAvailable(in uriT uri)
raises (URINotFound);
};
};
};
From bizzaro at geoserve.net Sun Mar 26 17:23:27 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] new idl
References: <200003262209.RAA86676@archa12.cc.uga.edu>
Message-ID: <38DE8DDF.914A9968@geoserve.net>
Brad Chapman wrote:
>
> Note that I am using
> the DL, BL, PL naming conventions, but this can be easily changed
> depending on what we decide for names (how about D, B, P for maximum
> lack of redundancy :-).
For maximum READABILITY, you could just use...
definitions
brokering
processing
:-)
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Sun Mar 26 17:36:07 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] Naming of three layers
References: <200003261703.MAA80502@archa12.cc.uga.edu> <38DE4E33.4F59B7DC@casema.net>
<38DE73CD.4505B80D@hermes.usherb.ca> <38DE88DA.25044FA2@geoserve.net>
Message-ID: <38DE90D7.AE208D29@hermes.usherb.ca>
> UIL: User Interfaces Layer - user interfaces
> DDL: Dataflow Definition Layer - scripting\XML layer
> DBL: Dataflow Brokering Layer - brokering
> DPL: Dataflow Processing Layer - dataflow handler
>
> (BTW, the argument that 'Dataflow' is redundant could also be applied to
> 'Layer' ;-))
Yes, what about:
-User Interface
-Definition
-Brokering
-Processing
Since we all know they are all layers and that everything's about dataflow
anyway.
> There are also the 'foreign applications' and 'objects' to consider. We could
> add a...
>
> OAL: Objects and Applications Layer
I don't consider objects to be a layer... they're just objects (now that's new
;-) )
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Sun Mar 26 17:54:34 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] Naming of three layers
References: <200003261703.MAA80502@archa12.cc.uga.edu> <38DE4E33.4F59B7DC@casema.net>
<38DE73CD.4505B80D@hermes.usherb.ca> <38DE88DA.25044FA2@geoserve.net> <38DE90D7.AE208D29@hermes.usherb.ca>
Message-ID: <38DE952A.E3CCE58C@geoserve.net>
Jean-Marc Valin wrote:
>
> I don't consider objects to be a layer... they're just objects (now that's new
> ;-) )
Technically, applications (and maybe objects) are not part of VSH. But in
Loci, they were called 'back-endware'. These 'dataflow * layers' were
collectively called 'middleware', and the user interfaces were called
'front-endware' in Loci. I think these terms can still be used.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Sun Mar 26 17:57:37 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:38 2006
Subject: [Pipet Devel] Naming of three layers
References: <200003261703.MAA80502@archa12.cc.uga.edu> <38DE4E33.4F59B7DC@casema.net>
<38DE73CD.4505B80D@hermes.usherb.ca> <38DE88DA.25044FA2@geoserve.net> <38DE90D7.AE208D29@hermes.usherb.ca>
Message-ID: <38DE95E1.F8E9E74E@geoserve.net>
Jean-Marc Valin wrote:
>
> Yes, what about:
> -User Interface
> -Definition
> -Brokering
> -Processing
Or messing around with word forms...
User Interfaces
Definitions
Brokers
Processors
And I still like...
Objects and Applications :-)
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Sun Mar 26 18:08:31 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Naming of three layers
References: <200003261703.MAA80502@archa12.cc.uga.edu> <38DE4E33.4F59B7DC@casema.net>
<38DE73CD.4505B80D@hermes.usherb.ca> <38DE88DA.25044FA2@geoserve.net> <38DE90D7.AE208D29@hermes.usherb.ca> <38DE95E1.F8E9E74E@geoserve.net>
Message-ID: <38DE986F.CCABCA7A@geoserve.net>
If we can agree on this:
User Interfaces -----------------> Front-endware
_______________
Definitions |
Brokers |------> Middleware
Processors _______________|
Objects and Applications --------> Back-endware
then DL, BL and PL are all 'layers' of the 'middleware' that you are writing
the IDL for. And we can probably continue to say 'front' and 'back' as we did
with Loci.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Sun Mar 26 18:57:39 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] hOpla
Message-ID: <38DEA3F3.EA19A1D1@geoserve.net>
-------------- next part --------------
An embedded message was scrubbed...
From: Brad Chapman
Subject: [Pipet Devel] Re: [Pipet Devel] hOpla
Date: Sun, 26 Mar 2000 18:37:24 -0500
Size: 3794
Url: http://bioinformatics.org/pipermail/pipet-devel/attachments/20000326/63692a50/attachment.mht
From jarl at casema.net Mon Mar 27 01:14:10 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Naming of three layers
References: <200003261703.MAA80502@archa12.cc.uga.edu> <38DE4E33.4F59B7DC@casema.net>
<38DE73CD.4505B80D@hermes.usherb.ca> <38DE88DA.25044FA2@geoserve.net> <38DE90D7.AE208D29@hermes.usherb.ca>
Message-ID: <38DEFC32.D0548BF@casema.net>
> > (BTW, the argument that 'Dataflow' is redundant could also be applied to
> > 'Layer' ;-))
>
> Yes, what about:
> -User Interface
> -Definition
> -Brokering
> -Processing
>
OK, but inside the source code I'm in favoir of using the 'L' (UI,DL,BL & PL),
just to keep track of the function names, I get mad if I have to stare a few houres
at single character names.
>
> Since we all know they are all layers and that everything's about dataflow
> anyway.
>
> > There are also the 'foreign applications' and 'objects' to consider. We could
> > add a...
> >
> > OAL: Objects and Applications Layer
> I don't consider objects to be a layer... they're just objects (now that's new
> ;-) )
I agree, the objects are making up the layers.
From jarl at casema.net Mon Mar 27 01:15:31 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Naming of three layers
References: <200003261703.MAA80502@archa12.cc.uga.edu> <38DE4E33.4F59B7DC@casema.net>
<38DE73CD.4505B80D@hermes.usherb.ca> <38DE88DA.25044FA2@geoserve.net> <38DE90D7.AE208D29@hermes.usherb.ca> <38DE952A.E3CCE58C@geoserve.net>
Message-ID: <38DEFC83.8BA603B5@casema.net>
>
> > I don't consider objects to be a layer... they're just objects (now that's new
> > ;-) )
>
> Technically, applications (and maybe objects) are not part of VSH. But in
> Loci, they were called 'back-endware'. These 'dataflow * layers' were
> collectively called 'middleware', and the user interfaces were called
> 'front-endware' in Loci. I think these terms can still be used.
>
OK, but they are a step futher into detail as the 'layer view'.
From jean-marc.valin at hermes.usherb.ca Mon Mar 27 01:22:49 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Naming of three layers
References: <200003261703.MAA80502@archa12.cc.uga.edu> <38DE4E33.4F59B7DC@casema.net>
<38DE73CD.4505B80D@hermes.usherb.ca> <38DE88DA.25044FA2@geoserve.net> <38DE90D7.AE208D29@hermes.usherb.ca>
<38DEFC32.D0548BF@casema.net>
Message-ID: <38DEFE39.9A5E3A86@hermes.usherb.ca>
> > > OAL: Objects and Applications Layer
> > I don't consider objects to be a layer... they're just objects (now that's new
> > ;-) )
>
> I agree, the objects are making up the layers.
Then, it would be "toolbox" (well, there might be a better name) layer, since
the objects can't be separated from their methods/algorithms. Then I could
consider my neural net class library (toolbox) to be part of this layer.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Mon Mar 27 23:49:34 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] overflow<->loci translation and 3 basic gui objects
Message-ID: <38E039DE.BFA7B00B@geoserve.net>
It's an understatement to say that VSH is a complex system. But from the
user's point of view, it should be simple. So, my motto for the development
of the VSH GUI is K.I.S.: Keep It Simple!
That said, I want define 3 basic objects for the GUI. I started out with 4
under Loci:
(1) Workspace
(2) Locus (node)
(3) Connector
(4) Windowlet
But thinking about this more recently, I believe (1) and (4) are the same.
Afterall, workspaces are always in windowlets (windows) and windows always
contain workspaces.
So, how about this. The 3 basic GUI objects:
(1) Window
(2) Locus (node)
(3) Connector
(Note: a 'network' is a collection of nodes and probably shouldn't be
considered a separate object by the GUI.)
This way we have wonderful nesting and recursion: Windows contain nodes, nodes
contain connectors and windows, windows contain nodes, etc., etc.
Okay, now this brings me to how objects are named in both Overflow and Loci.
As we have seen, both applications are remarkably similar, varying (so it
seems) mostly by how things are named. Here is a quick translation between
the two:
Overflow Loci
-------- --------
Document Windowlet/workspace
Network/subnet Workflow diagram
Node Locus
Link Connector
We need to standardize on these names. I can settle with using Overflow's
terminology in every case except for 'document'. Since VSH will be dealing
with large text files often called 'documents', I think that name is
confusing. So, I propose we (including Overflow) change this to something
else.
Since the Loci equivalent to 'document' is 'windowlet' (and 'workspace'), and
since I mention above those two can be considered the same object, I propose
'document' be changed to 'window'.
Also, I'm not sure whether I like 'link' or 'connector' better. What do you
guys like? We could also consider 'line' and 'branch'.
So, maybe VSH could use the following (basic and collective) object names:
Overflow Loci VSH
-------- -------- ---------
Document Windowlet/workspace Window
Network/subnet Workflow diagram Network
Node Locus Node
Link Connector Link (or connector)
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 00:13:27 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net>
Message-ID: <38E03F77.6751C58F@geoserve.net>
"J.W. Bizzaro" wrote:
>
> So, how about this. The 3 basic GUI objects:
>
> (1) Window
> (2) Locus (node)
> (3) Connector
Also, in GUI terms, the node is an icon.
You know, if we really want to go wacky, the core can define 3 basic objects:
(1) Network
(2) Node
(3) Link
Networks contain nodes, nodes contain links and networks, networks contain
nodes, nodes contain links and networks, networks contain nodes, nodes contain
links and networks, networks contain nodes, nodes contain links and networks,
networks contain nodes, nodes contain links and networks, networks contain
nodes, nodes contain links and networks, networks contain nodes, hahaha!
So, in Overflow, 'document' can be replaced with 'node', no?
Why not?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 00:12:56 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net>
Message-ID: <38E03F58.BBBD4343@hermes.usherb.ca>
> It's an understatement to say that VSH is a complex system. But from the
> user's point of view, it should be simple. So, my motto for the development
> of the VSH GUI is K.I.S.: Keep It Simple!
Well, maybe we should have more than one GUI, or at least a GUI with a couple
"modes". There are many applications that require a different interface:
-a GUI equivalent to something like "ls -l | awk '{print $2}' | sed 's/aa/bb/'
| sort -u > somewhere" (a la Loci)
-a system to run complex distributed tasks (a la GMS)
-a signal processing framework a la Matlab/Simulink/Lab View (a la Overflow)
I don't see how the same interface can handle all those correctly.
>
> That said, I want define 3 basic objects for the GUI. I started out with 4
> under Loci:
>
> (1) Workspace
> (2) Locus (node)
> (3) Connector
> (4) Windowlet
>
> But thinking about this more recently, I believe (1) and (4) are the same.
> Afterall, workspaces are always in windowlets (windows) and windows always
> contain workspaces.
>
> So, how about this. The 3 basic GUI objects:
>
> (1) Window
> (2) Locus (node)
> (3) Connector
>
> (Note: a 'network' is a collection of nodes and probably shouldn't be
> considered a separate object by the GUI.)
Well, a network would be the equivalent of a "group" in a vector drawing app.
>
> This way we have wonderful nesting and recursion: Windows contain nodes, nodes
> contain connectors and windows, windows contain nodes, etc., etc.
>
> Okay, now this brings me to how objects are named in both Overflow and Loci.
> As we have seen, both applications are remarkably similar, varying (so it
> seems) mostly by how things are named. Here is a quick translation between
> the two:
>
> Overflow Loci
> -------- --------
> Document Windowlet/workspace
> Network/subnet Workflow diagram
> Node Locus
> Link Connector
I prefer workspace de document (which is too generic). I prefer Node though, a
month ago I had never heard the word Loci/Locus (sorry, engligh is my second
language). I don't mind Link of Connector (link is shorter, bout that's all)...
pipe, maybe?..
As for Network... we have to be careful... I Overflow (though it's not
implemented exactly that way), you can see "Network" as a base class and
"subnet", "iterator" and "threadedIterator" (possibly more later) as subclasses
of Network.
>
> We need to standardize on these names. I can settle with using Overflow's
> terminology in every case except for 'document'. Since VSH will be dealing
> with large text files often called 'documents', I think that name is
> confusing. So, I propose we (including Overflow) change this to something
> else.
>
> Since the Loci equivalent to 'document' is 'windowlet' (and 'workspace'), and
> since I mention above those two can be considered the same object, I propose
> 'document' be changed to 'window'.
>
> Also, I'm not sure whether I like 'link' or 'connector' better. What do you
> guys like? We could also consider 'line' and 'branch'.
>
> So, maybe VSH could use the following (basic and collective) object names:
>
> Overflow Loci VSH
> -------- -------- ---------
> Document Windowlet/workspace Window
> Network/subnet Workflow diagram Network
> Node Locus Node
> Link Connector Link (or connector)
>
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Tue Mar 28 00:20:38 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca> <38DC484E.781D6528@geoserve.net> <38DC9F81.5431E931@casema.net>
Message-ID: <38E04126.BA262981@geoserve.net>
jarl van katwijk wrote:
>
> > Jean-Marc Valin wrote:
> > >
> > > OK, I'll try to summerize the way XML is used in Overflow with an example:
> >
> > Brad and Jarl, perhaps GMS can reuse much of Overflow's code for handling XML
> > and network construction?
>
> As said before, gms will just act passive on most of the XML descriptions.
I don't know about that. GMS will need to construct, parse and execute
Internet-distributed networks just as Overflow does with local networks.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 00:29:32 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net>
Message-ID: <38E0433C.2B97AB08@hermes.usherb.ca>
> So, in Overflow, 'document' can be replaced with 'node', no?
No. You're confusing two things here: in C we's say "function call" vs "function
implementation". The tag refers to a function call (a node
instantiation), while the or can be viewed as a function
implementation (node definition) from other nodes.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> y="131.000000">
>
>
>
>
>
>
>
>
>
>
>
>
> Why not?
>
> Jeff
> --
> +----------------------------------+
> | J.W. Bizzaro |
> | |
> | http://bioinformatics.org/~jeff/ |
> | |
> | BIOINFORMATICS.ORG |
> | The Open Lab |
> | |
> | http://bioinformatics.org/ |
> +----------------------------------+
>
> _______________________________________________
> pipet-devel maillist - pipet-devel@bioinformatics.org
> http://bioinformatics.org/mailman/listinfo/pipet-devel
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From bizzaro at geoserve.net Tue Mar 28 00:52:56 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Idl
References: <200003251809.NAA124632@archa12.cc.uga.edu>
Message-ID: <38E048B8.8DAE0B9C@geoserve.net>
Brad Chapman wrote:
>
> For the SUBNET interface:
>
> These are for accessing whole subnets or programs (so GMS type
> nodes) after they have been sent a workflow/xml_structure to process
> (ie. a whole bunch of connected nodes), right?
> My question is, do we really need this level of control so that
> someone can
> manipulate a process so much while it is running? The way I was
> thinking of the GUI and processing engine working together are that
> the user spends some time getting a nice process of connected nodes
> set up, and then hits run and waits for the output to come out at the
> specific nodes/subnets they are interested in. If this is the case,
> then why and when would they need to access a process to remove,
> activate, destruct, add, etc. nodes and subnets?
I for one am very much in favor of this level of control. As computational
biologists, we may be working on analyses involving terabytes of data and days
of calculations. Should the network just sit there unusable during these
analyses? Should entire jobs be scrapped if it turns out one node needs to be
moved?
I think this level of control is akin to the use of threading in an
application. If threading is not used for compute-intensive tasks, the GUI
freezes up and the application is unusable. Sure, it's still running, and you
can always stop it. But the loss in usability is both perceived by the user
and quite real.
> Am I being naive here in thinking that we don't need all of this
> control of a running process? Perhaps what we do need though it a
> method for cancelling and run and getting as much information as you
> can from it...
Well, it may be simpler to not worry about it at this stage.
> For the following functions--do we need the processor to know about
> the description of the program? Can all of this type of information by
> stored in xml in the "middle scripting thingy"?
This is mostly useful to the user and should be kept as XML meta-data. I
don't know what use the core has for it.
> For the following functions: I don't really understand the set status
> (how does the scripting engine set the status of a process?). I tried
> to include GETstatus type stuff in my query_process function. But
> maybe we should split this querying to be specific for a subnet or
> node?
The back-end or applications should set the status, which is reported back to
the user through the datastream.
> For the following, I'm not really positive why the middle would need
> to know this stuff? Do you want the GUI to restrict only allowed
> things to be connected? This seems *really* hard to maintain--maybe it
> would be better to have the processing engine generate errors and then
> propogate them back to the GUI so the user can fix them? The idl
> probably does need a better way to return back error messages.
Hmmm. I have been in favor of the GUI allowing only compatible connections
(same data type). If we assign types (e.g., mime) to data, we can determine
what will and won't work.
> For the following, do we still need the processing engine to store a
> log/history of events, or should this be handled by the middle
> scripting part, which can maintain logs for all its communication.
We can make a 'front' that records the datastream to a file.
> I think the same kind of comments I made above apply here: how
> about if we just send all of this information to the middle as XML. I
> think that the current Overflow XML will be a good point to start with
> and we can work from there.
Okay by me.
> What I need to get working is a way to
> turn the directory/heirarchy based file storage system that Loci
> currently has into the type of flat XML that Overflow uses, so I can
> pass this. While the heirarchial structure is best for dealing with
> the GUI (since I have to make lots of changes to it as the GUI
> changes, it is easier to break it up into smaller chunks for
> manageability and speed), the flat file format is what we need so that
> we can pass a single file to the processing engine to process (and to
> stay compatible with what Overflow does since they have a good thing
> going).
You pretty much summed up Gary's and my own thoughts on this network structure
defined with XML. A flat file is easy to store and pass but difficult to
query. Breaking it up makes it easy to query but difficult to store and
pass. The solution seemed to be the use of a real database.
> We also will not want to pass all of the info that is stored
> in XML in the middle (like descriptions of programs, etc.) to the
> processing engine, so some kind of transformation will be needed. I
> need to start trying to think about how to do this, but I hope it
> shouldn't be too bad...
EVERYTHING THAT IS NOT PASSED THROUGH THE INFRASTRUCTURE IS GIVEN A URI! XML
descriptions of GUIs, libraries of widgets, etc. are not put into this
datastream but given a link so that the fronts and backs can get the stuff
themselves. This way, the system remains neutral about protocol, and things
can be spread throughout the Internet.
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 01:13:25 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca>
Message-ID: <38E04D85.811D236C@geoserve.net>
Jean-Marc Valin wrote:
>
> Well, maybe we should have more than one GUI, or at least a GUI with a couple
> "modes". There are many applications that require a different interface:
> -a GUI equivalent to something like "ls -l | awk '{print $2}' | sed 's/aa/bb/'
> | sort -u > somewhere" (a la Loci)
> -a system to run complex distributed tasks (a la GMS)
> -a signal processing framework a la Matlab/Simulink/Lab View (a la Overflow)
>
> I don't see how the same interface can handle all those correctly.
Ahhh, but this is where we use XML to define GUIs! As I mentioned earlier,
XML documents can be arranged according to the arrangement of nodes in a
network. Then the XML can be translated into a Gtk interface using something
like libglade.
What I haven't brought up yet is that 'windows' can switch between views. At
one moment, a window can show a network of nodes. The next moment, this
window can be switched to show Gtk widgets arranged as I mention above.
> I prefer workspace de document (which is too generic). I prefer Node though, a
> month ago I had never heard the word Loci/Locus (sorry, engligh is my second
> language).
Loci/locus is actually a Latin word, meaning location :-)
> I don't mind Link of Connector (link is shorter, bout that's all)...
> pipe, maybe?..
Pipe may be confused with Unix pipes, which are local. Link is okay, and is
reminiscent of HTML links.
> As for Network... we have to be careful... I Overflow (though it's not
> implemented exactly that way), you can see "Network" as a base class and
> "subnet", "iterator" and "threadedIterator" (possibly more later) as subclasses
> of Network.
So, what are nodes a subclass of?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 28 00:12:30 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net>
Message-ID: <38E03F3E.8DB57A50@casema.net>
> So, my motto for the development
> of the VSH GUI is K.I.S.: Keep It Simple!
maybe Super Simpel :-)
but serious: good, and consistant naming is very important.
> (1) Window
> (2) Locus (node)
> (3) Connector
What is the function of a 'connector'?
> Also, I'm not sure whether I like 'link' or 'connector' better. What do you
> guys like? We could also consider 'line' and 'branch'.
So a 'link'\'connector' is a relation between nodes?
>
>
> So, maybe VSH could use the following (basic and collective) object names:
>
> Overflow Loci VSH
> -------- -------- ---------
> Document Windowlet/workspace Window
> Network/subnet Workflow diagram Network
> Node Locus Node
> Link Connector Link (or connector)
What is the diff. between a Window and a Network?
From bizzaro at geoserve.net Tue Mar 28 01:17:05 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
Message-ID: <38E04E61.B2634CC5@geoserve.net>
Jean-Marc Valin wrote:
>
> No. You're confusing two things here: in C we's say "function call" vs "function
> implementation". The tag refers to a function call (a node
> instantiation), while the or can be viewed as a function
> implementation (node definition) from other nodes.
You can't say the tag refers to BOTH function calls AND
implementations, to make it more recursive?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 01:18:52 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E04D85.811D236C@geoserve.net>
Message-ID: <38E04ECC.7B84B42D@hermes.usherb.ca>
> So, what are nodes a subclass of?
The Node class doesn't have any parent, though it might inherit from Object if
we need to (probably). ...and Network inherits from Node.
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 01:22:11 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net>
Message-ID: <38E04F93.C45AC9FE@hermes.usherb.ca>
> > No. You're confusing two things here: in C we's say "function call" vs "function
> > implementation". The tag refers to a function call (a node
> > instantiation), while the or can be viewed as a function
> > implementation (node definition) from other nodes.
>
> You can't say the tag refers to BOTH function calls AND
> implementations, to make it more recursive?
If you can find a way to do that in C, you have found how to do it with
Overflow. If not, forget it :-). I don't see how, it's really two different
things... If I had to replace Document by something existing, I'd choose Network
(which, remember, derives from Node!).
Jean-Marc
--
Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01@gel.usherb.ca
From jarl at casema.net Tue Mar 28 00:29:51 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net>
Message-ID: <38E0434F.F5096E45@casema.net>
>
> Also, in GUI terms, the node is an icon.
>
> You know, if we really want to go wacky, the core can define 3 basic objects:
>
> (1) Network
> (2) Node
> (3) Link
>
1) Strictly technical a 'network' defines a 'border' around a set of nodes. Every
node
and link within this border has the same brokering characteristics: all is local,
all
has the same security, the same accessability, etc.
2) From the users point of view this definition of a network doesn't apply: a
user
defines the network by 'functionality' or by 'a project'.
You people have 2) in mind dont you?
From bizzaro at geoserve.net Tue Mar 28 01:35:11 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui
objects
objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E04D85.811D236C@geoserve.net> <38E04ECC.7B84B42D@hermes.usherb.ca>
Message-ID: <38E0529F.4CEED298@geoserve.net>
Jean-Marc Valin wrote:
>
> > So, what are nodes a subclass of?
>
> The Node class doesn't have any parent, though it might inherit from Object if
> we need to (probably). ...and Network inherits from Node.
Maybe I should say 'subset' rather than 'subclass', so that I'm not confusing
OO terminology with ordinary logic.
This is what I'm trying to saying in logical terms:
The Overflow way:
'Documents' contain networks
Networks are of types subnet and iterator
Networks contain nodes and links
But can't we say...
Nodes contain links and networks
Networks are of types subnet and iterator
Networks contain nodes
Nodes contain links and networks
...
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 28 00:32:41 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca> <38DC484E.781D6528@geoserve.net> <38DC9F81.5431E931@casema.net> <38E04126.BA262981@geoserve.net>
Message-ID: <38E043F9.8F59E6F7@casema.net>
> > >
> > > Brad and Jarl, perhaps GMS can reuse much of Overflow's code for handling XML
> > > and network construction?
> >
> > As said before, gms will just act passive on most of the XML descriptions.
>
> I don't know about that. GMS will need to construct, parse and execute
> Internet-distributed networks just as Overflow does with local networks.
>
Yes, but the BL (former gms) will only detect the 'borders', based on
accesability\security
and locallity. All other 'detail' XML code wont be parsed, it will be passes to the
PL.
From bizzaro at geoserve.net Tue Mar 28 01:43:15 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F3E.8DB57A50@casema.net>
Message-ID: <38E05483.20A45B19@geoserve.net>
jarl van katwijk wrote:
>
> > Also, I'm not sure whether I like 'link' or 'connector' better. What do you
> > guys like? We could also consider 'line' and 'branch'.
>
> So a 'link'\'connector' is a relation between nodes?
In Loci terminology, a connector=link is passage for data to flow between
nodes. It also indicates relations, such as which runs first and parent-child
relations.
Maybe it means something different in Overflow terminology. Jean-Marc?
> > So, maybe VSH could use the following (basic and collective) object names:
> >
> > Overflow Loci VSH
> > -------- -------- ---------
> > Document Windowlet/workspace Window
> > Network/subnet Workflow diagram Network
> > Node Locus Node
> > Link Connector Link (or connector)
>
> What is the diff. between a Window and a Network?
Okay, these are PURELY GUI TERMS. A window is pretty much an X-Window that
gives you a view of the network or networks. They can't be the same, because
they look very much different to the user. Plus, a window can contain more
than one network.
But I think the core can combine window and node.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 01:48:39 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E0418D.A96D3D63@casema.net>
Message-ID: <38E055C7.ECE117C0@geoserve.net>
jarl van katwijk wrote:
>
> Have different modes like you suggest:
> - normal mode: editing nodes and 'relations'
> - access mode: editing the security\accessabilities (of the brokering level)
> - detail mode: editing the PL (overflow) nodes
I see 3 modes/views:
(1) Network normal view: Nodes and relations are visible at
full size (icons and subwindows shown)
(2) Network world view: Nodes and relations are visible and
fit entirely in the window (icons and subwindows not shown)
(3) GUI view: Gtk widgets from all nodes are visible
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 01:51:18 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0434F.F5096E45@casema.net>
Message-ID: <38E05666.499068C@geoserve.net>
jarl van katwijk wrote:
>
> 2) From the users point of view this definition of a network doesn't apply: a
> user defines the network by 'functionality' or by 'a project'.
>
> You people have 2) in mind dont you?
I suppose 2). But I'd define a network as simply 'a contiguously connected
collection of nodes'.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 28 00:49:30 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:39 2006
Subject: [Pipet Devel] Idl
References: <200003251809.NAA124632@archa12.cc.uga.edu> <38E048B8.8DAE0B9C@geoserve.net>
Message-ID: <38E047E9.1DCA2937@casema.net>
> > My question is, do we really need this level of control so that
> > someone can manipulate a process so much while it is running?
>
> I for one am very much in favor of this level of control. As computational
> biologists, we may be working on analyses involving terabytes of data and days
> of calculations. Should the network just sit there unusable during these
> analyses? Should entire jobs be scrapped if it turns out one node needs to be
> moved?
>
> I think this level of control is akin to the use of threading in an
> application. If threading is not used for compute-intensive tasks, the GUI
> freezes up and the application is unusable. Sure, it's still running, and you
> can always stop it. But the loss in usability is both perceived by the user
> and quite real.
>
For all non corba techies: the DL (or gui) is corba based, this means the DL runs
as a seperate application, and never freeses. Calling a corba function will
always
have a response, so it is the non-threaded corba server (the BL) that would
freeze. This freeze will only take as long as the processing that corba call will
take,
being a few nano seconds.
>
> > For the following functions--do we need the processor to know about
> > the description of the program? Can all of this type of information by
> > stored in xml in the "middle scripting thingy"?
>
> This is mostly useful to the user and should be kept as XML meta-data. I
> don't know what use the core has for it.
The 'description' is merly a identification for the security meganism.
>
> The back-end or applications should set the status, which is reported back to
> the user through the datastream.
Also. But the DL must be able to modify the status of a node\subnet too.
This wont happen too often, but things like renicing or stalling will be needed.
>
> Hmmm. I have been in favor of the GUI allowing only compatible connections
> (same data type). If we assign types (e.g., mime) to data, we can determine
> what will and won't work.
The BL will be able to marchall (data conversion). This wont conflict with the
type-casting
the PL has, the marchalling will be like manipulating High-endian\Low-endian
formatting,
plain-encrypted formats, etc.
>
> > For the following, do we still need the processing engine to store a
> > log/history of events, or should this be handled by the middle
> > scripting part, which can maintain logs for all its communication.
>
> We can make a 'front' that records the datastream to a file.
The BL (gms) already does this (see messaging_mobject_structs.h -> histryIO)
But logging the PL nodes wont be touched by this. This should be optional,
because logging every node will have huge CPU load.
From bizzaro at geoserve.net Tue Mar 28 01:53:44 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: Ideas for network distributed objects
References: <38D7AA11.3796AA@geoserve.net>
<38D88B34.69264157@casema.net> <38D8DB07.46B392E8@geoserve.net> <38D9C34F.83A85DCF@casema.net>
<38DADC83.F000D7B@geoserve.net> <38DB172F.E77443B6@casema.net> <38DB1935.E2A18780@hermes.usherb.ca>
<38DBC301.819DF35A@casema.net> <38DBEA04.C5CBD3BD@geoserve.net> <38DC0B32.F42D6405@hermes.usherb.ca> <38DC484E.781D6528@geoserve.net> <38DC9F81.5431E931@casema.net> <38E04126.BA262981@geoserve.net> <38E043F9.8F59E6F7@casema.net>
Message-ID: <38E056F8.FFA5A9FB@geoserve.net>
jarl van katwijk wrote:
>
> Yes, but the BL (former gms) will only detect the 'borders', based on
> accesability\security
> and locallity. All other 'detail' XML code wont be parsed, it will be passes to the
> PL.
And the PL is....Overflow? What precisely will be constructing and executing
this Internet-based network? Is this Brad's DL?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 01:58:45 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E0418D.A96D3D63@casema.net> <38E055C7.ECE117C0@geoserve.net>
Message-ID: <38E05825.851881C1@geoserve.net>
"J.W. Bizzaro" wrote:
>
> > Have different modes like you suggest:
> > - normal mode: editing nodes and 'relations'
> > - access mode: editing the security\accessabilities (of the brokering level)
> > - detail mode: editing the PL (overflow) nodes
I actually want to try and hide these 'modes' from the user. They should be
indistinguishable from each other.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 02:01:00 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca>
Message-ID: <38E058AC.26F3FA21@geoserve.net>
Jean-Marc Valin wrote:
>
> If you can find a way to do that in C, you have found how to do it with
> Overflow. If not, forget it :-). I don't see how, it's really two different
> things... If I had to replace Document by something existing, I'd choose Network
> (which, remember, derives from Node!).
I didn't realize Overflow had that limitation. Perhaps then the GMS layer can
provide the recursion?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 02:08:42 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Idl
References: <200003251809.NAA124632@archa12.cc.uga.edu> <38E048B8.8DAE0B9C@geoserve.net> <38E047E9.1DCA2937@casema.net>
Message-ID: <38E05A7A.6B78395A@geoserve.net>
jarl van katwijk wrote:
>
> > This is mostly useful to the user and should be kept as XML meta-data. I
> > don't know what use the core has for it.
>
> The 'description' is merly a identification for the security meganism.
Alright, I was talking about a 'GUI description' :-)
> > The back-end or applications should set the status, which is reported back to
> > the user through the datastream.
>
> Also. But the DL must be able to modify the status of a node\subnet too.
> This wont happen too often, but things like renicing or stalling will be needed.
However it happens, I'd like the core to be continuously reporting status
information back to the GUI. I'll make some little (animated?) indicators to
show the user the status of each node.
> > Hmmm. I have been in favor of the GUI allowing only compatible connections
> > (same data type). If we assign types (e.g., mime) to data, we can determine
> > what will and won't work.
>
> The BL will be able to marchall (data conversion). This wont conflict with the
> type-casting the PL has, the marchalling will be like manipulating
> High-endian\Low-endian formatting, plain-encrypted formats, etc.
Will the core be able to say 'yes, this connection will work' and 'no, this
connection won't work'?
> > We can make a 'front' that records the datastream to a file.
>
> The BL (gms) already does this (see messaging_mobject_structs.h -> histryIO)
> But logging the PL nodes wont be touched by this. This should be optional,
> because logging every node will have huge CPU load.
Oh, okay. Yes, very much a resource hog.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 02:22:42 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F58.BBBD4343@hermes.usherb.ca> <38E0418D.A96D3D63@casema.net> <38E055C7.ECE117C0@geoserve.net> <38E04920.78735DA3@casema.net>
Message-ID: <38E05DC2.BB77F60D@geoserve.net>
jarl van katwijk wrote:
>
> > (1) Network normal view: Nodes and relations are visible at
> > full size (icons and subwindows shown)
> > (2) Network world view: Nodes and relations are visible and
> > fit entirely in the window (icons and subwindows not shown)
> > (3) GUI view: Gtk widgets from all nodes are visible
>
> The "GTk widget" from a node?
> A node has a gtk-widget or is a gtk-widget 'created' by the gui to visualise it?
Each node has user-settable parameters (see what pops up when you double-click
on an Overflow node). As I mentioned before, these parameters are
'represented by XML' tags and translated into Gtk widgets so that the
parameters can be set. This XML makes up the 'XML representation of a GUI'.
The XML can then be arranged according to the arrangement of nodes in a
network. The result is a 'composite' GUI.
This seems to be difficult for everyone to grasp. I'm not sure anyone on the
Loci list understood me either, except maybe Gary. Gary, can you explain this
differently?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 02:27:16 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca> <38E058AC.26F3FA21@geoserve.net> <38E04BFF.85220082@casema.net>
Message-ID: <38E05ED4.2DA647A5@geoserve.net>
jarl van katwijk wrote:
>
> > > If you can find a way to do that in C, you have found how to do it with
> > > Overflow. If not, forget it :-). I don't see how, it's really two different
> > > things... If I had to replace Document by something existing, I'd choose Network
> > > (which, remember, derives from Node!).
> >
> > I didn't realize Overflow had that limitation. Perhaps then the GMS layer can
> > provide the recursion?
>
> Uhh.. sorry, dont get it what this 'call\implementation' is about?
> Somebody could explain?
In procedural languages you define a procedure with its parameters. This is
what Jean-Marc means by 'implementation'. Then somewhere else in the program
you give the procedure 'call'.
But Jean-Marc, you can call a procedure from within its implementation, giving
you some recursion, right? Can Overflow do that?
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Tue Mar 28 02:36:41 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca>
Message-ID: <38E06109.7F52F78E@geoserve.net>
Jean-Marc Valin wrote:
>
> If you can find a way to do that in C, you have found how to do it with
> Overflow. If not, forget it :-). I don't see how, it's really two different
> things... If I had to replace Document by something existing, I'd choose Network
> (which, remember, derives from Node!).
Then how about this:
...
...
Or what would these be called in the newspeak? BLNode, PLNode?
There will be SOME differences between the 2 types of networks, so we probably
shouldn't use the same words/tags for both.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Tue Mar 28 02:21:48 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Idl
References: <200003251809.NAA124632@archa12.cc.uga.edu> <38E048B8.8DAE0B9C@geoserve.net> <38E047E9.1DCA2937@casema.net> <38E05A7A.6B78395A@geoserve.net>
Message-ID: <38E05D8C.B6EDD876@casema.net>
>
> However it happens, I'd like the core to be continuously reporting status
> information back to the GUI. I'll make some little (animated?) indicators to
> show the user the status of each node.
No problem, in the IDL there's this function :
statusT uriStatus(in uriT uri, in DLIdT dlid, in passwordT password)
> Will the core be able to say 'yes, this connection will work' and 'no, this
> connection won't work'?
No. Neither will it ruin data transactions that are incompatible, it will marshal
them automatically. But this surly does have it's limitations, we'll have to work
on what will and what wont be converted by the BL and PL. This is something
which hasn't high priority right now.
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 08:53:06 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca> <38E058AC.26F3FA21@geoserve.net> <38E04BFF.85220082@casema.net> <38E05ED4.2DA647A5@geoserve.net>
Message-ID: <38E0B942.85996C69@hermes.usherb.ca>
"J.W. Bizzaro" a ?crit :
>
> jarl van katwijk wrote:
> >
> > > > If you can find a way to do that in C, you have found how to do it with
> > > > Overflow. If not, forget it :-). I don't see how, it's really two different
> > > > things... If I had to replace Document by something existing, I'd choose Network
> > > > (which, remember, derives from Node!).
> > >
> > > I didn't realize Overflow had that limitation. Perhaps then the GMS layer can
> > > provide the recursion?
> >
> > Uhh.. sorry, dont get it what this 'call\implementation' is about?
> > Somebody could explain?
>
> In procedural languages you define a procedure with its parameters. This is
> what Jean-Marc means by 'implementation'. Then somewhere else in the program
> you give the procedure 'call'.
>
> But Jean-Marc, you can call a procedure from within its implementation, giving
> you some recursion, right? Can Overflow do that?
Yes, you can do that in Overflow. There are two ways to do it, but you don't
need to have mean two different things. You can see in TimeFilter.cc that
the getOutput method calls this->getOutput() so the output is the node is fed
back in the node. I'd call this implicit recursion. The other way is not fully
implemented yet. When it is, you'll be able to explicitly connect the output of
a node to its input (or the input of a node "upstream"). The overflow model
already supports that, but for now, the network initialization will fail.
Also, about node parameters. I think there's a little misunderstanding. The
tag in the doesn't say which parameters are available, but
which argument is passed to the node. The parameter "declarations" are in two
places:
-For built-in nodes (.cc files), the parameters are declared as an argument to
NODE_INFO on top of the file.
-For networks (that can be used as nodes), every time there's an argument of
type "subnet_param" for a node in that network, the network will have this
parameter. example:
Here, when including network "foo" as a node, you will need to provide a
parameter named "myParam" that will be substituted as "param2" in node bar.
Jean-Marc
From jean-marc.valin at hermes.usherb.ca Tue Mar 28 09:04:11 2000
From: jean-marc.valin at hermes.usherb.ca (Jean-Marc Valin)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca> <38E06109.7F52F78E@geoserve.net>
Message-ID: <38E0BBDB.E94607F4@hermes.usherb.ca>
>
>
>
>
>
>
> ...
>
> ...
>
>
>
You can't say GMSNode, since this could also be included as an Overflow Node.
BTW, the reason for "Document" is that XML requires ONE toplevel tag and since I
can have many networks in my file, I used Document, which only refers to the
fact that everything is in a file. But, hat about using the same type of things
that Pascal programs have: Nested functions. You'd have a toplevel network,
which would contain other networks...
.
.
..
JEan-Marc
From jarl at casema.net Tue Mar 28 08:31:04 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <38E039DE.BFA7B00B@geoserve.net> <38E03F77.6751C58F@geoserve.net> <38E0433C.2B97AB08@hermes.usherb.ca>
<38E04E61.B2634CC5@geoserve.net> <38E04F93.C45AC9FE@hermes.usherb.ca> <38E06109.7F52F78E@geoserve.net> <38E0BBDB.E94607F4@hermes.usherb.ca>
Message-ID: <38E0B418.8C7E04B4@casema.net>
>
> You can't say GMSNode, since this could also be included as an Overflow Node.
Yes, do not take notice of the BL while defining the XML structure, it will
detect\parse
tags like . Just ignore the brokering layer.
>
> BTW, the reason for "Document" is that XML requires ONE toplevel tag and since I
> can have many networks in my file, I used Document, which only refers to the
> fact that everything is in a file. But, hat about using the same type of things
> that Pascal programs have: Nested functions. You'd have a toplevel network,
> which would contain other networks...
The brokering layer will come heavy into play during runtime when these nested
structures are setup, the BL will cut them into pieces, or brokering nodes.
From gvd at martin.pharmacy.ualberta.ca Tue Mar 28 15:49:16 2000
From: gvd at martin.pharmacy.ualberta.ca (Gary Van Domselaar)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
In-Reply-To: <38E05DC2.BB77F60D@geoserve.net> from "J.W. Bizzaro" at Mar 28, 2000 07:22:42 AM
Message-ID: <200003282049.NAA32328@martin.pharmacy.ualberta.ca>
>
> jarl van katwijk wrote:
> >
> > > (1) Network normal view: Nodes and relations are visible at
> > > full size (icons and subwindows shown)
> > > (2) Network world view: Nodes and relations are visible and
> > > fit entirely in the window (icons and subwindows not shown)
> > > (3) GUI view: Gtk widgets from all nodes are visible
> >
> > The "GTk widget" from a node?
> > A node has a gtk-widget or is a gtk-widget 'created' by the gui to visualise it?
>
> Each node has user-settable parameters (see what pops up when you double-click
> on an Overflow node). As I mentioned before, these parameters are
> 'represented by XML' tags and translated into Gtk widgets so that the
> parameters can be set. This XML makes up the 'XML representation of a GUI'.
>
> The XML can then be arranged according to the arrangement of nodes in a
> network. The result is a 'composite' GUI.
>
> This seems to be difficult for everyone to grasp. I'm not sure anyone on the
> Loci list understood me either, except maybe Gary. Gary, can you explain this
> differently?
Sure. There are three basic 'interface' concepts here. The first concept deals with
dynamically obtaining and generating an interface from 'back-end' application or object. This
interface is for supplying the user definable options to the back end during execution.
The interface is supplied (from Overflow) as a high-level XML document to the client/user
interface. Of course, the XML contains extra information that may not be seen or manipulated
by the user, but is important in describing the application or object. But I digress.
Assuming a Gtk/GNOME-based client, the 'application' would appear as an icon. Double-clicking
the icon reveals its interface for adjusting options. The client communicates this information
to the DL, which updates that application's XML representation, and stores it in a database.
The second concept concerns the connections/links made from one application/node/icon to
another. The user creates a 'network' by connecting the applications together. The XML
representations get updated by the DL to reflect their relationships. In the end you have a
number of small XML files, one per application. The connectivity information is included a)in
the XML files, or b) in a 'parent' file (also XML). I prefer b) because it aids in nesting
networks, as described below.
The third concept concerns nesting of 'networks'. This is what Jeff refers to as a 'composite
locus'. Essentially the idea is that once a network is created, it would be nice to treat the
network as a 'node', considering that once the options have been set, so it is essentially
'static' at this point: it need only have its input and output defined. The 'network' can be
encapsulated, and treated like an elementary node. The user can create place this (sub)network
into a new new network. The icon that represents this network can be double clicked to reveal
the subnetwork. If we used strategy b) to store our node relationships, then the XML that
represents this network would be contained in this parent file. Incidentally X,Y coordinates
for the icons/nodes could also be stored in this parent file, thus preserving the original
layout of the network. It would be faster, too, because you wouldn't have to query the XML
file associated with each node in the network for connectivity information.
In this fashion, networks can be infinitely nested, and the XML representation of the network
would be fast, manageable, and easy to parse by the DL for execution.
At least, that's how I understand it. Jeff?
I understand that these concepts are heavily user-and-XML-representation-oriented, and may not
jive exactly with the architectures of Overflow or GMS. But I hope it clarifies a bit the
Loci 'grand scheme'.
Regards,
g.
--
Gary Van Domselaar
gary@bioinformatics.org
http://www.bioinformatics.org/~gary
----------------------------------------------------
bioinformatics.org: The Open Lab
http://www.bioinformatics.org/
From bizzaro at geoserve.net Tue Mar 28 16:08:55 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] [Fwd: BOND. The Distributed Object Multi-Agent System.]
Message-ID: <38E11F67.F5C303C6@geoserve.net>
-------------- next part --------------
An embedded message was scrubbed...
From: Jennifer Steinbachs
Subject: [Pipet Devel] BOND. The Distributed Object Multi-Agent System.
Date: Tue, 28 Mar 2000 09:57:28 -0600 (CST)
Size: 2140
Url: http://bioinformatics.org/pipermail/pipet-devel/attachments/20000328/c84612b6/attachment.mht
From bizzaro at geoserve.net Tue Mar 28 16:43:37 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:40 2006
Subject: [Pipet Devel] Re: overflow<->loci translation and 3 basic gui objects
References: <200003282049.NAA32328@martin.pharmacy.ualberta.ca>
Message-ID: <38E12789.EC9F05F5@geoserve.net>
Gary Van Domselaar wrote:
>
> The second concept concerns the connections/links made from one application/node/icon to
> another.
...
> The third concept concerns nesting of 'networks'.
...
Thanks Gary. Basically, XML representations of the GUI are concatonated
(placed end-to-end) when the nodes are related by simple link:
But when the nodes are related by nesting (a node contains a network of
nodes), XML representations are nested:
And both formats can be translated directly to Gtk: The first format places
widgets/GUIs in adjacent cells in a table, and the second format places one
widget/GUI inside of another (NodeGUI 1 is the container for NodeGUI 2).
(Remember, the widget/GUI appears in the window of the node that is parent to
the network.)
Now, you may be thinking 'Hey, this is going to produce one very big GUI, if
the parent has a network containing 100s of nodes!' But the trick (and a very
neat one at that) is that the GUIs from individual nodes can be switched on
and off. Recall that I mentioned you can switch between network and GUI views
in each window. Well, switch a node's window view to network (and not GUI),
and its GUI won't appear in its parent's GUI. And this can all be saved! The
result is, you have custom-taylored GUIs for each node.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From bizzaro at geoserve.net Wed Mar 29 01:01:06 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] summary for web
Message-ID: <38E19C22.11E00BE9@geoserve.net>
Brad or Jarl,
Could I get a quick description of how all three projects will be tied
together and ordered? If you give me the text, I can make a Dia flowchart and
put it on the web page.
You should probably organize the summary into 5 sections, according to the
layers or parts of VSh:
Front
Gnome Interface (Loci)
Middle
Definitions Layer (Loci)
Brokering Layer (GMS)
Processing Layer (Overflow)
Back
Foreign Applications
Thanks.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Wed Mar 29 00:34:55 2000
From: jarl at casema.net (jarl van katwijk)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] summary for web
References: <38E19C22.11E00BE9@geoserve.net>
Message-ID: <38E195FF.95EA974A@casema.net>
> Could I get a quick description of how all three projects will be tied
> together and ordered? If you give me the text, I can make a Dia flowchart and
> put it on the web page.
Sure, but first this:
Brad and I are allmost done with the DL2BL idl, but there's one thing we need you
people to think about, this name:
"interface RetrieveInfo"
which holds a set of functions that indeed retreive info, but I think this name
is no good.
Anyone has a better, single, word that has the same meening ("being informed")?
When we got this right the idl is final and we can start implementing the corba
functions.
(and I'll give the VSH overview a try)
bye,
jarl
From jarl at casema.net Thu Mar 30 02:09:40 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] summary for web
References: <38E19C22.11E00BE9@geoserve.net>
Message-ID: <38E2FDB3.FE0BC7DB@casema.net>
>
OK, here comes MY partial view on vsh. Jean & Brad & Jeff: please fix and expand
this!
-------------------
Interface internal:
Jeff: This one is for you?
Interface <-> DL:
Brad: This one is for you?
DL internal:
Brad: This one is for you?
DL <-> BL:
There will be three lines of CORBA communication, or ORBs, of which 2 are used
during runtime, 1 is for authentication only. The DL will 'login' to the BL, and
when succesfull the Representation- and the RetreiveInfo communications are
brought up. 'Representation' handles the XML stream ('upload', 'download',
'update'), and 'RetreiveInfo' (until we got a better name) will supply various
information about the 'core'. The XML data is communicated by upload(),
download() and update(), the tags are filtered out and used as a basis
for brokering.
BL internal:
Runtime optimalisation like internet traffic, cpu load balansing and
representation sharing.
BL <-> PL:
Communications:The PL will be a library, or a 'dynamic loadable binairy', or
simply a '.so' file. So after the initialisation both the BL and PL are merged
into one process\application. They both have the same unix uid, same address
space, etc. The runtime loop is inside the BL, the PL is event based.
(Technically this aint true, the BL wil be attached to a glib-timer and to the
ORbit main loop, which is a glib loop to.. but forget this )
PL internal:
Jean: This one is for you?
PL <-> FA:
Jean: This one is for you?
From bizzaro at geoserve.net Thu Mar 30 23:38:14 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] interface RetrieveInfo
References: <38E19C22.11E00BE9@geoserve.net> <38E195FF.95EA974A@casema.net>
Message-ID: <38E42BB6.D687E359@geoserve.net>
jarl van katwijk wrote:
>
> Brad and I are allmost done with the DL2BL idl, but there's one thing we need you
> people to think about, this name:
> "interface RetrieveInfo"
> which holds a set of functions that indeed retreive info, but I think this name
> is no good.
Why is it no good?
> Anyone has a better, single, word that has the same meening ("being informed")?
Exactly what does this function do?
How about...
Get
Learn
Acquire
Obtain
Discover
Ascertain
Determine
Memorize
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From chapmanb at arches.uga.edu Fri Mar 31 03:01:50 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] summary for web
Message-ID: <200003310804.DAA130078@archa10.cc.uga.edu>
Jarl wrote:
> OK, here comes MY partial view on vsh. Jean & Brad & Jeff: please
fix and
> expand
> this!
I took a stab at my two assigned parts. Comments are very welcome :-)
Interface <-> DL:
The user interface communicates with the functional parts of vsh
through a streaming XML dialog with the definition layer. This dialog
occurs in the form of a request and response interchange between the
user interface and the definition layer through a local socket. For
instance, to request the addition of a processor node (program) to
the workspace, the user interface would send the following XML request
to the definition layer:
The definition layer would then process this message, perform the
requested operation, and if the operation was successful, return
information to the user interface in the response:
or return an error message if there were problems.
The design of this interface to definition layer communication allows
multiple user interfaces to be created on the same definition and
processing layer internals. In addition, these user interfaces can be
created in any programming language supporting XML manipulation tools
and sockets.
DL internal:
Thw definition layer provides the glue which connects the user
interfaces with the processing internals of vsh. It is responsible for
a number of functions:
1. Maintaining communication with multiple user interfaces through a
streaming XML dialog communication protocol.
2. Storing of work-flow diagrams from the user interfaces in an XML
format. This XML models the nodes present in the user interface and
the
connections/interrelationships between them.
3. Maintaining a permanent storage location for specially designed
nodes
that represent specific programs and libraries. The information for
these nodes will be stored as XML and be available directly available
to the user interface through the streaming XML dialog.
4. Communication with the processing portion of the program be
implementing a CORBA client to a server in the brokering layer.
This communication allows work flow diagrams to be passed to the
processing layers for implementation, and allows a process to be
queried while running.
5. Communication with remote vsh programs as both a client and a
server
using corba (through an idl that still has to be defined). This allows
a
specific implementation of vsh to serve out a specialized node or set
of
nodes to be utilized by other vsh implementations at remote locations.
The processing layer will handle the specifics of this communication,
but the middle will define a protocol to authenticate remote vsh
implementations and provide access only to available nodes.
The definition layer is implemented in the python programming
language and relies on freely available XML and DOM libraries. CORBA
communication will occur using the Fnorb ORB implementation, but will
eventually move to ORBit (using ORBit-python) as work on python
bindings
for ORBit continues.
From jarl at casema.net Fri Mar 31 03:27:06 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] interface RetrieveInfo
References: <38E19C22.11E00BE9@geoserve.net> <38E195FF.95EA974A@casema.net> <38E42BB6.D687E359@geoserve.net>
Message-ID: <38E4615A.B735F06A@casema.net>
> Obtain
Yes, this one, thnx!
Brad, you're ok 2?
From jarl at casema.net Fri Mar 31 04:31:08 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] summary for web
References: <200003310804.DAA130078@archa10.cc.uga.edu>
Message-ID: <38E4705C.C1B703C2@casema.net>
>
> 5. Communication with remote vsh programs as both a client and a
> server
> using corba (through an idl that still has to be defined). This allows
> a
> specific implementation of vsh to serve out a specialized node or set
> of
> nodes to be utilized by other vsh implementations at remote locations.
> The processing layer will handle the specifics of this communication,
> but the middle will define a protocol to authenticate remote vsh
> implementations and provide access only to available nodes.
When the DL is authenticated by the BL, shoudn't 5) also be located inside the
BL?
From chapmanb at arches.uga.edu Fri Mar 31 07:02:02 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] summary for web
Message-ID: <200003311204.HAA147434@archa10.cc.uga.edu>
>>
>> 5. Communication with remote vsh programs as both a client and a
>> server
>> using corba (through an idl that still has to be defined). This
allows
>> a
>> specific implementation of vsh to serve out a specialized node or
set
>> of
>> nodes to be utilized by other vsh implementations at remote
locations.
>> The processing layer will handle the specifics of this
communication,
>> but the middle will define a protocol to authenticate remote vsh
>> implementations and provide access only to available nodes.
>
> When the DL is authenticated by the BL, shoudn't 5) also be located
inside
> the
> BL?
Yes, I think so. I'm not at all clear on how the specifics of the node
sharing are going to work eventually, although this is a very
important part of vsh.
I'll try and describe my ideas on this by an example. Lets say I'm
running a vsh implementation at home, and I want to connect with a
high speed machine of Jeff's running vsh at a remote location. My
rough idea was that things would work as follows:
1. From within the user interface, I would request to see the
available nodes at Jeff's computer, and enter a password for
connection.
2. My definition layer would get access to Jeff's machine via some
repository of IORs and machines, and connect with his corba server.
3. My dl would authenticate with his dl, and then would send a request
of all nodes that I have permissions to use.
4. My definition layer would recieve this list and make these nodes
known to the user interface. I would then use one of them in a
work-flow diagram.
5. I would send this work-flow diagram with the remote node (as XML)
to the brokering layer in a processing request.
(okay, this is where things get pretty hazy).
6. The brokering/processing layer would set up its path of processing
(by whatever method) and start processing.
7. When it needed the info from that node, it would need to connect
with Jeff's computer remotely (this connection would occur somewhere
inside the brokering/processing layers), send the node the info it
needs, let it process it, and then get the results back.
8. Then the results can be fetched from the brokering layer on my
computer in the same way as for the execution of a local node.
Okay, that my cloudy idea of how things would work. Is this what you
all were thinking? Is this at all feasible?
Brad
From jarl at casema.net Fri Mar 31 07:38:11 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] summary for web
References: <200003311204.HAA147434@archa10.cc.uga.edu>
Message-ID: <38E49C33.EC2A67FA@casema.net>
Brad Chapman wrote:
> >>
> >> 5. Communication with remote vsh programs as both a client and a
> >> server
> >> using corba (through an idl that still has to be defined). This
> allows
> >> a
> >> specific implementation of vsh to serve out a specialized node or
> set
> >> of
> >> nodes to be utilized by other vsh implementations at remote
> locations.
> >> The processing layer will handle the specifics of this
> communication,
> >> but the middle will define a protocol to authenticate remote vsh
> >> implementations and provide access only to available nodes.
> >
> > When the DL is authenticated by the BL, shoudn't 5) also be located
> inside
> > the
> > BL?
>
> Yes, I think so. I'm not at all clear on how the specifics of the node
> sharing are going to work eventually, although this is a very
> important part of vsh.
> I'll try and describe my ideas on this by an example. Lets say I'm
> running a vsh implementation at home, and I want to connect with a
> high speed machine of Jeff's running vsh at a remote location. My
> rough idea was that things would work as follows:
>
> 1. From within the user interface, I would request to see the
> available nodes at Jeff's computer, and enter a password for
> connection.
>
> 2. My definition layer would get access to Jeff's machine via some
> repository of IORs and machines, and connect with his corba server.
>
> 3. My dl would authenticate with his dl, and then would send a request
> of all nodes that I have permissions to use.
>
> 4. My definition layer would recieve this list and make these nodes
> known to the user interface. I would then use one of them in a
> work-flow diagram.
>
> 5. I would send this work-flow diagram with the remote node (as XML)
> to the brokering layer in a processing request.
>
> (okay, this is where things get pretty hazy).
>
> 6. The brokering/processing layer would set up its path of processing
> (by whatever method) and start processing.
>
> 7. When it needed the info from that node, it would need to connect
> with Jeff's computer remotely (this connection would occur somewhere
> inside the brokering/processing layers), send the node the info it
> needs, let it process it, and then get the results back.
>
> 8. Then the results can be fetched from the brokering layer on my
> computer in the same way as for the execution of a local node.
>
> Okay, that my cloudy idea of how things would work. Is this what you
> all were thinking? Is this at all feasible?
>
> Brad
If you want to accomplise 1) you do a ReteiveInfo::uriStatus() on the BL.
5) will work by Representation::upload()
Look again at the uriS structure.
What we'll need ain't a DL <-> DL communication line, but a BL -> DL one.
(opposing the DL -> BL commmunication we've described by the
vsh-pilot.idl)
This way all authentication will remain at one layer, otherwise we'll get
some
serious syncronising problems.
Please do doubt & discus my opinion!
bye,
jarl
From chapmanb at arches.uga.edu Fri Mar 31 10:06:08 2000
From: chapmanb at arches.uga.edu (Brad Chapman)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] locus vs. node naming
Message-ID: <200003311508.KAA15338@archa10.cc.uga.edu>
Hello all;
I know before you all kind of decided that it would be best to
refer to individual elements as nodes, as opposed to loci. And this
was fine with, but I started thinking about it and I see one big
problem with this: DOM. In DOM, the base "thing" is a node.
So, if I start referring to everything as a node, this is going to
make things really confusing really fast, because the definition layer
code uses *a lot* of DOM.
Can we either use "locus/loci" in the definition layer, or think
up a new term that won't clash with DOM so much?
Brad
From bizzaro at geoserve.net Fri Mar 31 18:36:50 2000
From: bizzaro at geoserve.net (J.W. Bizzaro)
Date: Fri Feb 10 19:19:41 2006
Subject: [Pipet Devel] locus vs. node naming
References: <200003311508.KAA15338@archa10.cc.uga.edu>
Message-ID: <38E53692.AA350910@geoserve.net>
Brad Chapman wrote:
>
> I know before you all kind of decided that it would be best to
> refer to individual elements as nodes, as opposed to loci. And this
> was fine with, but I started thinking about it and I see one big
> problem with this: DOM. In DOM, the base "thing" is a node.
> So, if I start referring to everything as a node, this is going to
> make things really confusing really fast, because the definition layer
> code uses *a lot* of DOM.
> Can we either use "locus/loci" in the definition layer, or think
> up a new term that won't clash with DOM so much?
This is a 'simple' namespace problem, which can usually be solved by appending
the application's name. So, instead of 'node', you can use...
vshnode
or if we want to distinguish between layers...
blnode
plnode
BTW, about the BL nodes, I was thinking that since these always have an
Internet location, they could be referred to as a node of type 'locus'.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
From jarl at casema.net Wed Mar 15 13:00:10 2000
From: jarl at casema.net (Jarl van Katwijk)
Date: Fri Feb 10 19:20:14 2006
Subject: [Pipet Devel] TODO
References: <39563C56.5C93A748@geoserve.net>
Message-ID: <38CFCFA9.800E15A3@casema.net>
Both my laptop and smtp relay seem to work now, jippy :)
I forgot one item for the BL TODO list : "Rewrite the push methode into a pull
one". Maybe Jeff can add this to the 'official' list ?
bye,
jarl