Directory Structure
We have created two directories: "projects/webtech" and "projects/resources". The first will hold all of the NPAC created materials for the CDROM and the second will hold the outside or copyrighted materials. The materials that Shrideep collected have been copied to a subdirectory in webtech called "book".
The current plan is to copy "projects/tutorials", which is where most of the remaining materials are, to both webtech and to resources. Then all the outside or copyrighted stuff will be weeded out of webtech and the NPAC stuff will be weeded out of resources. In addition to projects/tutorials, there is some material on carver under "reference-docs/cwou" for database tutorials that should also be copied to webtech. I propose that the projects/tutorials subdirectories (the main content ones are CGI, DHTML, Database, HTML, JDBC, Java, JavaBeans, JavaCSE, JavaScript, UNIX, VRML, XML, applications, and servlets) be moved directly underneath projects/webtech in order to keep one level out of the directory tree. I think that reference-docs/cwou should be copied under the Database subdirectory.
This collects the material for the CDROM almost entirely in the webtech directory, which will be declared to the be original maintainable copy. There are two exceptions that I know of. The first exception would be certain programming examples that are required to live on carver in order to run. This includes both CGI examples and applets which must be downloaded from carver in order to connect to a server on carver. It does not include the servlets. This copy would then have to be the original maintainable copy. But we could put into the script which processes the CDROM directory that it should copy examples from the carver directories reference-docs and reference-cgi instead of making an outside link.
The second exception is that talks, both HTML and PPT versions, should keep the original version on users/gcf. Again the CDROM script would have to be able to copy things at the time that a CD is actually cut.
In order to preserve legacy links, the directories projects/tutorials and reference-docs/cwou would then be modified so that all content would be replaced by soft links to the new home of the material, either webtech, resources or carver.
The weeding out process would also have to include eliminating duplicate examples between the book, projects/tutorials, and reference-docs.
Web Page Structure
One question that has been discussed is whether there should be one front door to this material or two. I think that Shrideep and I both favor having two front doors. With one front door, we would extend Shrideep's pages to have additional topics. The difficulty is that this would dilute the focus, for example, of the code examples to have all the examples there and not just the ones directly supporting the book material.
So with two front doors, we would have Shrideep's book page be the front door to what is essentially the CPS616 material, and make another front door that is essentially CPS606 and other background material from projects/tutorials. I'm not sure we should directly associate the courses with these two top-level web pages as the material for CPS616 changes a lot with time and may not be in the book, like servlets. And material may move from CPS616 to CPS606. Of course, the two front doors may both mention material in common (but only one copy is in the directory webtech).
Content
I understand that Harish is doing some reformatting of the top-level web pages in the book. There would also need to be some reformatting in the projects/tutorials section of the webtech directory.
At the top level pages of both the book and the current projects/tutorials, it would be good to have some more text about what the material covers and why it is useful.
I have just been teaching the CORBA examples, and the RMIImaging, CORBA Imaging and the CORBA Counter examples are not in the code section. Also, the "how-to" run Visibroker material is buried in the Random Number code section and is not clearly labelled in the directories.
A more general question for the CORBA section is what to do about the Visigenic ORB? Lots of the code examples and the main CORBA chapter are based on code for Visibroker, and we do not currently have a running ORB. It appears that one does exist.
Shrideep says we need to update the foilset section to reflect the latest foilsets, and we need to make an ongoing procedure so that when new foilsets are put into users/gcf, they also get put on the lists for the pages. We currently do that by hand (with medium success) in projects/tutorials. I don't know if it can be automated more.
The homework assignments could use some editing as there is some duplication from year-to-year, but it's not currently disastrous to release.
How to maintain the new web pages
Currently, Shrideep's section is maintained with FrontPage, and the projects/tutorials stuff is maintained by writing HTML by hand. I think that we could perhaps keep the top-level pages maintained in FrontPage, which would mean that if you wanted to make a change, you would have to copy everything to a PC, make the changes, and copy everything back. We would have to notify everyone when that happened so that only one person at a time was working on updating that part of the pages.
Further down in the directories, I think that it makes more sense to use technology that works in Unix on the examples as they sit in the directory. Far too often, I need to make last-minute updates before class, so I need something that works quickly. However, I'm getting tired of writing HTML by hand, so I was thinking of designing an XML definition of the technology descriptions and programming examples, and then having a style sheet for the display.
Currently, there is a script called update written by Tom Scavo, which is used in projects/tutorials both to make sure that the directory permissions are set for everyone in the group cpsedu to edit the pages, and also to do some formatting of pages. For example, in the Java section, for every file of the form .java, the script makes a file of the form .java.html, which does some formatting to diplay the code better. This script would need to be revised, and its role re-evaluated.
Preliminary list of tasks:
Directory Structure - Harish and Saleh, with advice from Nancy:
Web Page Structure
Contents
CDROM script
How to Maintain Pages (not necessary to cut first CD, but to maintain web pages in good order.)