<?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 		= "Technology Project";
$pageKeywords	= "technology";
$pageAuthor		= "Bjorn Freeman-Benson Nov 20/05";

ob_start();
?>		
    <div id="maincontent">
	<div id="midcolumn">
        <h1><?= $pageTitle ?></h1>
        
        <ul class="midlist">
			<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/project-list.php"); ?>
            <?= project_list_as_html( "project-page-paragraph.html", "technology" ) ?>
        </ul>
       
<h2><a href="archived.php">The Technology Project Archives</a></h2>
<p>Projects under the Eclipse Technology Project have limited lifecycles. 
Unlike the other top-level Projects, the Technology Projects are meant 
to be technology explorations or incubators. When these projects have 
explored, proved, or disproved their associated technologies, the 
project comes to its <a href="archived.php">natural end</a>. For some projects, this end is 
a paper publishing the research results; for others, this end is 
to be incorporated into the base technology of another top-level 
project.
</p>

       <h2>About The Technology Top-Level Project</h2>
       
<p>The Eclipse Technology Project encapsulates three separate activity streams, 
Research, Incubators, and Education. All three streams are overseen 
by a single <a href="team-leaders.php">Project Management Committee (PMC)</a>. The PMC
has a weekly conference call and <a href="pmc-minutes.php">publishes its minutes</a>. The work is done 
in subprojects working against a <a href="http://dev.eclipse.org/viewcvs/index.cgi?cvsroot=Technology_Project">CVS repository</a>. The Eclipse 
<a href="technology-charter.html">Technology Project Charter</a> describes the organization of the 
project, as well as roles and responsibilities of the participants.</p>

<p>For technical discussions and questions, please go to the <a href="news://news.eclipse.org/eclipse.technology">eclipse.technology newsgroup</a>
 (for access see the <a href="/newsgroups/">newsgroups page</a>). If you are are developer and 
 want to participate in discussions relating to the implementation of the subprojects, there 
 are developer <a href="/mail/">mailing lists</a> and <a href="/newsgroups/">newsgroups</a> created for each of the projects. Downloads are 
 available from the project pages and the <a href="/downloads/">main downloads page</a>.</p>

      </div>
  </div>
<?php
	# Paste your HTML content between the EOHTML markers!	
	$html = ob_get_contents();
	ob_end_clean();

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