<?php                                                                                                                          require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");    require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");     require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");     $App     = new App();    $Nav    = new Nav();    $Menu     = new Menu();        include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

    $pageTitle       = "Contributors to Photran";
    $pageKeywords    = "photran, contributors, developers";
    $pageAuthor      = "Jeffrey Overbey";
    
    # Paste your HTML content between the EOHTML markers!    
    $html = <<<EOHTML

<div id="maincontent">
  <div id="midcolumn">
    <h1>$pageTitle</h1>
    
    <p>Photran is primarily being developed at the University of Illinois at Urbana-Champaign,
    although we have received many valuable contributions from elsewhere.
    In alphabetical order by last name...</p>
    
    <div class="homeitem3col">
      <h3>Active Contributors and Committers</h3>
      <ul>
        <li><b>Matt Fotzler</b>, UIUC - PTP integration</li>
        <li><b>Bill Hilliard</b>, Intel - Managed build support (Intel Fortran)</li>
        <li><a href="http://st-www.cs.uiuc.edu/users/johnson">Ralph Johnson</a>, UIUC - Principal investigator</li>
        <li><b>Kurt Hendle</b> - Refactorings, editor folding</li>
        <li><b>Matthew Michelotti</b>, UIUC - C preprocessor support</li>
        <li><b>Stas Negara</b>, UIUC - Preliminary Fortran indexer, Move Save Variables to Common Block refactoring</li>
        <li><a href="http://jeff.over.bz/">Jeff Overbey</a>, UIUC - Lead developer; parser, analysis and refactoring infrastructure, refactorings, indexer/VPG, database, UI features, error parsers, CDT integration</li>
        <li><b>Greg Watson</b>, IBM - PTP project lead; release engineering</li>
        <li><b>Timofey Yuvashev</b>, UIUC - UI features, managed build support, refactorings</li>
      </ul>
    </div>
    
    <div class="homeitem3col">
      <h3>Past Contributors and Committers</h3>
      <ul>
        <li>Antonio Barbado - Spanish FAQ translation</li>
        <li><!--a href="http://www.fortran.com/fortran/walt.html"-->Walt Brainerd, <a href="http://www.fortran.com/">The Fortran Company</a> - F support (and more)</li>
        <li>Chin Fei Cheah, UIUC - UI features, MSI package</li>
        <li>Nicholas Chen, UIUC - UI features, MSI package</li>
        <li>Sarah de la Cruz, UIUC (CS427 Fa07) - Find All References</li>
        <li>Jeff Dammeyer, UIUC (CS427 Fa08) - Fortran Search</li>
        <li>Andrew Deason, UIUC (CS427 Fa08) - Fortran Search</li>
        <li>Kevin Decker, UIUC (CS427 Fa07) - Find All References</li>
        <li>Joe Digiovanna, UIUC (CS427 Fa08) - Fortran Search</li>
        <li>Charles Felish, UIUC (CS427 Fa07) - Find All References</li>
        <li><a href="http://www.laputan.org/">Brian Foote</a>, UIUC</li>
        <li>Feanil Patel, UIUC - Prototype Fortran debugger</li>
        <li>Craig Rasmussen, LANL - Managed build support, error parsers</li>
        <li>Dirk Rossow, Flensburger Schiffbau Gesellschaft - Fixed form lexer</li>
        <li>Ken Schultz, UIUC - Prototype Fortran debugger</li>
        <!--li>Mikhail Sennikovsky, Intel - Managed build support (Intel Fortran)</li-->
        <li>Nick Sexmith, UIUC (CS427 Fa08) - Fortran Search</li>
        <li>James Shepherd, UIUC (CS427 Fa07) - Find All References</li>
        <li>Shawn Temming, UIUC - Prototype Fortran debugger</li>
        <!--li>Leo Treggiari, Intel - Managed build support (Intel Fortran)</li-->
        <li><!--a href="http://leto.cs.uiuc.edu/%7Espiros"-->Spiros Xanthos, UIUC</li>
      </ul>
      <i>Special thanks to
      Prof. Ralph Johnson,
      Nicholas Chen,
      and TAs 
      Dustin Bortner,
      Yun Young Lee,
      Maurice Rabb,
      Mohsen Vakilian
      for supervising contributions completed as part of CS427 (Software Engineering I) at UIUC.
      </i>
    </div>

  </div> 
</div>    
EOHTML;

    # Generate the web page
    $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
