[Pipet Devel] Gnome stuff

J.W. Bizzaro bizzaro at geoserve.net
Sun Dec 19 12:12:27 EST 1999


Brad Chapman wrote:
> 
> So, bonobo is just for embedding a component of one
> program inside the container of another program. Okay.

Right, and I think only GUI components.

> Okay--will this be stored directly in the XML representing the workspace
> graphical script? For instance if we had a container representation like
> the following:
[cut]
>  <location>/usr/local/loci/workspace</location>

But since the network is transparent to Loci, all <locations>s have a URI. 
So, the above location would be something like this:

    <location>locus://localhost/</location>

where

    /usr/local/loci/

Is the root directory for Loci.

***JUST USE APACHE AS AN EXAMPLE***

    /home/httpd/html/

Is the root directory for Apache Web pages (on RedHat), and this is given the
URI/URL

    http://localhost/

Note that Apache can access _local_ directories using the same URL mechanism
for _remote_ access.  THIS IS HOW LOCI WILL WORK.

Perhaps Loci's root should be

    /home/loci/

(I can see we'll get some arguments about this from BSD users :-))

>  <container>
>    <name>my_seq_files</name>
>    <location>/usr/home/chapmanb/my_seq_files</location>
> 
>    <file>
>     <name>gb_file_1.gb</name>
>    </file>
> 
>    <file>
>     <name>gb_file_2.gb</name>
>    </file>
> 
>    <container>
>     <name>fasta_files</name>
>     ...the contents of the directory
>    </container>
> 
>    <container>
>     <name>phylip_files</name>
>     ...the contents of the directory
>    </container>
>  </container>
> </container>

Right.  When the container locus is made, all of the XML is generated,
including that of the windowlet contents, which in the case of a container, is
the _directory_ contents.

> If /usr/local/loci/workspace is where everything is analagous to the root
> directory in a web server, this is where the "Loci filesystem" starts.

You're correct that Loci should not have access to '/'.  This would be a
security problem, especially when a container can point to (via URI) the
filesystem of a remote computer.  Maybe we should have 2 branches under Loci's
root directory:

    /home/loci/public/
    /home/loci/private/

Remote Loci can then only access what is in the public directory.

> Then
> if a user double clicks on the my_seq_files container icon, we would go
> through the XML to look for my_seq_files and find it at
> loci_root.my_seq_files, which would by default be located at
> /usr/local/loci/workspace/my_seq_files.

Yes.

> In this example, I figured that the
> user would probably have their sequence files located in some home
> directory and not on the loci filesystem (/usr/home/chapmanb/my_seq_files,
> in this example). So then we have something analagous to a symbolic link,
> with /usr/local/loci/workspace/my_seq_files ->
> /usr/home/chapmanb/my_seq_files. So my idea here is that the location of a
> file or directory would be with respect to the loci_root directory unless
> there is a <location> tag directly specifying to look elsewhere.

Good idea.  You get a star.

Regarding a user accessing things in his home directory, and even making some
things public, we can do what Apache does and have

    locus://bradcom.com/~brad/

point to

    /home/brad/loci/

and you would have

    /home/brad/loci/public/
    /home/brad/loci/private/
    /home/brad/loci/workspace/

too.

>         Anyways, is this along the lines of what people were thinking for
> the representation? I haven't really said anything about how to actually
> generate this kind of XML, but I just wanted to make sure I was on the
> right track!

You are correct, sir!

> Okay, so if in the above example I wanted to move gb_file_1.gb from the
> container to the main workspace, I would drag it into the workspace and in
> the real directory structure, the file would move from
> /usr/home/chapmanb/my_seq_files/gb_file_1.gb to
> /usr/local/loci/workspace/gb_file_1.gb? Do you want the file to actually
> move, or just to create a link to the file from inside the
> /usr/local/loci/workspace directory system?

Hmmmm.  I suppose the user can either 'copy' or 'move' something onto/from the
Workspace (and other areas) just like using a file manager (copy means the
original stays, and move means the original is deleted).  But I don't think
the user should be able to 'move' a file to/from a _remote_ system, so only
copying would be allowed in such a case.  I'd say that by default a DnD would
move a locus, unless it is remote (not on the local filesystem).

Keep in mind though, that when the user manipulates loci, he/she is only
manipulating an XML _representation_ of something that can exist anywhere on
the Internet (and is _always_ referenced to via URI).  Since that XML
representation should be small (about the size of a typical Web page), the
transfer of it should be trivial.  So, I wouldn't create symlinks but just
copy or move the XML representations.

The transfer of the actual program or data that the locus represents is
another case altogether.  I think this can be handled (in a GUI sense) via
pop-up menu option and not DnD.


Cheers.
Jeff
-- 
                      +----------------------------------+
                      |           J.W. Bizzaro           |
                      |                                  |
                      | http://bioinformatics.org/~jeff/ |
                      |                                  |
                      |           THE OPEN LAB           |
                      |    Open Source Bioinformatics    |
                      |                                  |
                      |    http://bioinformatics.org/    |
                      +----------------------------------+




More information about the Pipet-Devel mailing list