<?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>

<h2>The Technology Top-Level Project</h2>       

<? include "description.html" ?>

<a href="/projects/listofprojects.php#technology"><img src="http://dev.eclipse.org/huge_icons/categories/applications-internet.png" align="left" hspace="5" border="0"></a><p>
For a complete list of the Technology Projects, please see the 
<a href="/projects/listofprojects.php#technology">"Eclipse Technology Project" section of the list of all Eclipse projects</a>.
</p>

<p>For technical discussions and questions, please go to the <a href="http://www.eclipse.org/newsportal/thread.php?group=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);
?>
