<?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 Committers and Contributors</h3>
      <ul>
        <li>Matt Fotzler, UIUC - PTP integration</li>
        <li>Bill Hilliard, 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>Kurt Hendle - Refactorings, editor folding</li>
        <li>Matthew Michelotti, UIUC - C preprocessor support</li>
        <li>Stas Negara, UIUC - Preliminary Fortran indexer, Move Save Variables to Common Block refactoring</li>
        <li><a href="http://jeff.over.bz/">Jeff Overbey</a>, UIUC - Parser, refactoring infrastructure, refactorings, indexer/VPG, UI features, error parsers, CDT integration</li>
        <li>Greg Watson, IBM - Release engineering, project lead (PTP)</li>
        <!--li>David Weiner, UIUC - FRUIT integration</li-->
        <li>Timofey Yuvashev, 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>, <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</a>, 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);
?>
