Contrib Overview

  1. Introduction
  2. Often Overlooked Resources
  3. The Proposition
  4. Distributed Code
  5. Downloadable Code
  6. Tutorials

  1. Introduction
  2. Contrib...

        ... is a collection of gratis, public domain, unsupported material which
        ... is a valuable but commonly overlooked resource.
        ... contains myriad code that may be used "as-is" or modified for other purposes.
        ... needs to be easier to find and utilize.
        ... needs to be more uniform and better maintained.
        ... lacks quality pedagogically designed tutorials and exercises.
        ... contains a significant amount of out-dated code which may rarely get used.

  3. Often Overlooked Resources
  4. Every standard Daylight distribution already includes...

    dayhtml, which:
            ... contains full documentation and "man" pages for the Daylight products.
            ... is easy to setup.

        ... the make_index script which allows you generate a convenient summary of contrib programs:
          % $DY_ROOT/contrib/make_index -html > contrib_index.html.
        ... contributed perl CGIs which allow interactive problem solving and learning of Daylight languages.
            (e.g. $DY_ROOT/contrib/src/www/depictmatch.cgi and react.cgi)

    The Daylight Website already includes...

        ... contrib download page .
        ... summer school course content.

  5. The Proposition
  6. We May ...

        ... divide contrib into multiple logical categories.
        ... increase our commitment to one subset of contrib: Distributed Code
            ... more actively maintain it.
            ... distribute it with software releases.
            ... improve it from its current state.
            ... standardize it for consistency.
            ... increase pre-release testing and stability.

        ... continue to make the rest of the material accessible: Downloadable Code
            ... make available only via download from the
    contrib page of the Daylight website.
            ... exclude from future software releases.
            ... continue to allow maintainance by interested parties.

        ... create an entirely new category designed specifically for the purpose of learning Daylight: Tutorials
            ... design and build completely new learning tools.
            ... adapt and reengineer pertinent summer school content when possible.
            ... integrate appropriate contrib code.
            ... make Tutorials available via the Learn section of the Daylight website.
            ... include Tutorials in future software distributions at $DY_ROOT/dayhtml_tutorials.

  7. Distributed Code
  8. Should Include ...

        ... helpful programs and scripts that people use regularly e.g. the cansmi program
        ... more transparent internal behavior
        ... better comments and self-documentation
        ... increased standardization, e.g. -help:
            ... many programs have a help option,
            ... not all are implemented the same (-h -help -HELP etc,..)
            ... some don't have any at all but have comments in source code,
            ... others scarcely have any comments at all.

    Request: Please use the contrib survey CGI to let us know which parts of contrib you would like to see improved and included in future software distributions.

  9. Downloadable Code
  10. We Plan To ...

        ... increase the amount of content that will be available for download-only.
        ... separate code into several categories, including:
            User-contributed code
            Daylight staff-contributed code

  11. Tutorials
  12. Rationale:

    * Most of the current documentation is designed as reference material.
    * There are clear needs for incremental and interactive instructional learning tools.
    * Summerschool course content has been useful in the past but is stagnant, poorly designed and of inconsistent quality.
    * The Tutorials are an effort to provide complete, centralized, well maintained study tools.

    Tutorial Exercises...

        ... should be in the form of html text and form data, program code, shell scripts, and CGIs.
        ... should be at least as easy to setup and run as dayhtml, daycgi, and the contrib code.
        ... will include reference programs which contain properly contextualized example code
            ( e.g. $DY_ROOT/contrib/src/c/thor/testthor.c : Comprehensive "encyclopedia" of THOR Toolkit calls )

        ... already include several well-developed language exercises (e.g. smarts and smirks );
            ... linguistic mechanics are incrementally detailed and integrated with interactive CGIs.
            ... allow users to continue working an example or concept until they are satisfied that they understand it.

        ... should be developed to encompass other areas such as toolkit programing.
            ... The natural place to start is in the SMILES Toolkit, with the cansmi program, which:

               ... in its current form, is complicated by many options, error checking, etc.
               ... may be challenging to follow if you are just learning toolkit programming.
            ... A cansmi Tutorial program

               ... should include the minimum set of functionality.
               ... should allow new Toolkit programers to gradually and methodically step into the details of the Daylight Toolkit Paradigm.