Monday 7/8

I'm starting to get oriented. I'm clear on the FM, and on what the current scene generator does, what Emily does, and that Todd's browser does. I've looked at all (I think) of the documentation on the SIG site that has to do with the scene generator. I'm familiar with CVS from before, so that's no problem.

And I think I understand the basic task: write something that will allow things like Emily and the FMB to send information to the scene generator so that it can display scenes to the user.

Questions:
  1. Is there any code (like the DSG interface stuff, maybe?) that I should study?
  2. Are there any particular languages (like LISP) that I'll be using, but may not know, and should read up on?
  3. Am I going to be writing something that stands alone, or actually changing Emily or the FMB?


Tuesday 7/9

First task: I need to end up with a Java program that calls the scene generator, gets back scenes from it, and displays them. Later, it needs other DSG capabilities. The interface design is the important thing, next to getting it to work, and I should be talking to other people about that as I do it.

Stuff to do next:
  1. Bring in my zip disk with old code to refer to.
  2. Get CVS set up so I can check out stuff. (Ask Chris.)
  3. Talk to Andrew about the project in general; he's supposed to be the one who knows about it.
  4. Get familiar with (and try to operate) Bruce Campbell's java toolkit for doing this very thing, so that we're not reinventing the wheel here. See: bdc@hitl.washington.edu, a website I've marked, and a cvs module. (Questions: Does it work? Where are the .pl files it calls for?)
  5. Get familiar with (and try to operate) Elizabeth Walter's java program for doing something similar. See: a cvs module, possibly find her alum blitz address.
Observations from today about the interface:
  1. Permanent buttons on the GUI for as many functions as possible, with short titles, so they're easy to find and pretty. Maybe a popup explanation of what it does on mouseover, so that it's really nice and user-friendly. Make it like a graphical editor, so it's familiar-looking... that's pretty much what this is.
  2. Should be able to undo/redo steps.
  3. All existing functions, including save/load to a (fixed?) disk location.
  4. Bruce's part list is nice, because you can see what parts exist at a glance.
  5. Clicking on a part should tell you what it is. Should highlight it only if that isn't as slow as the current DSG is.
  6. Should take care of the problem of zooming in to blackness. Disable the button if that would happen, probably.
  7. Repaint as little area as possible, to make it faster.
Questions:
  1. Do I make this as if it's going to use the current FM, or still the out-of-date one that the scene generator uses?
  2. Should it be an applet or an application? Should it use Swing, even if old browsers aren't compatible with it?
  3. Where do I find a Java book?


Wednesday 7/10

Progress:
Got CVS working, found a Java book, blitzed Andrew, and tried to compile both Elizabeth's and Bruce's stuff. Neither of them work because for some reason importing classes isn't working right. It may be something I'm doing wrong in JBuilder.

Clarification:
The program I'm writing will take a list of terms, and call the current SG to create the scene, and then allow the user to push buttons that access the SG for command execution. But when the SG gets updated to use the new FM, the program might have to change in order to use the new capabilities- but I'm not sure about that. Yana is the one who will be updating the SG, eventually.

Future Note:
After this, a later project could be making Emily into an applet. Might involve recoding some Prolog into Java.

Observations:
  1. Elizabeth's program seems to have a bunch of panels, one of which is the 3d scene one (class SkanInternal). It has buttons and shows the images by calling the file if_termserv, which does the actual connecting to the graphics server.
  2. Bruce's toolkit uses if_termserv as well, with slight heading and println differences, but same essential function.
  3. Seems like the best thing to do is make something that combines the best aspects of E and B: use Swing, nice buttons, parts list, etc., and is ready for the new SG and new FM, if that's relevant.
To do:
  1. Get GSC and ExplorerStart projects working (ask Todd/Kurt), and check them out.
  2. Meet with Onard about differences between new and old FM at 10am tomorrow.
  3. Talk to Yana (yana@cs.washington.edu) about what kinds of changes might be made to the SG, and when, if she knows yet.
  4. Figure out whether the program would have to change when the SG changes, and if it would, try to plan how to minimize changes.
  5. Ask Todd about whether it should be an applet or application. Probably applet, but just in case.


Thursday 7/11

Note:
The SG changes aren't a consideration after all. The only things that will change, I think, are the hierarchies. The 'cgi-action' function has a parameter for the hierarchy, even though it's not fully used now. My program just has to send the structure and the hierarchy to that function. When the SG changes, the alterations will only have to go as far as the level of the 'cgi-action' function, and not up to my program.

Issues:
- After talking to Todd about the applet/application question, my assignment seems to have a few parts.
  1. an API in Java; a set of classes/functions that talk to the SG and can be used by any program to send info and get scenes. Todd and Kurt say they would use this if they had it, and they don't want it tied directly to a GUI.
  2. a GUI that uses the API just as any other program would, with the kind of interface that Professor Shapiro wants.
- There's also the question of what the API would send back. A flat image, or some kind of 'scene description', which is what Kevin's handout seems to indicate but Professor Shapiro didn't mention. (Asked her about all that; waiting to hear back.)

To do:
  1. Use the computer 'distal' to look at the unpacked version of Bruce's code, which is hopefully still on there somewhere, because the CVS repository seems to be missing some files.
  2. Find out if his thing is or has an acceptable API- ask Todd and Kurt.
  3. Keep trying to get Elizabeth's to work, because it is just a JBuilder thing, after all. Has to do with the way the projects are organized or something. Really annoying.
  4. Keep asking questions until I find out what everyone really wants. Maybe get Professor Shapiro in here to talk with Todd and Kurt, just to make sure.


Friday 7/12

Progress:
Fixed all the class-not-found errors, except for a few missing files in both projects. They still don't work because of connection problems. I'm basically suffering from lack of clear communication of what I need to do, just now.

Notes:
The API business doesn't make any sense after all. There is one already in Lisp, and there's really no reason to make a Java one.

I should start by returning a flat image. What it returns (and what's in the GUI) will be topics of a Tuesday meeting with Professor Shapiro, Todd, Kurt, Rati, and Onard.

Bruce's code doesn't make a Java API- it seems to be oriented towards presentations, in fact. You can arrange the GUI somewhat, so that the icons you need are available, and then you can use them to manipulate an image. It doesn't function quite correctly on the applet, but it's good enough to get an idea. I can also get a decent idea of Elizabeth's.

Possibly what Professor Shapiro wants is a Java applet version of the 3D part of Elizabeth's program, with a more complete GUI. (Better interface, more portable.) Todd isn't really sure if that's necessary, but that may be it. Should it include adding parts and opening new scenes? Or printing/saving an image or scene?

To do:
  1. Get Chris's help to fix explorer's connection, if possible. Either the graphics server or the old FM server was on quad with port 21072, but it isn't now.
  2. Get ready for Tuesday meeting.
    - Prepare demos of the two programs.
    - Gather pros/cons of their GUIs, and ideas.
    - Remind Professor Shapiro and ask for a meeting time.
    - Contact Kevin Hinshaw about what he intended?