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

	#*****************************************************************************
	# leadership.php
	#
	# Description: DTP Leadership page
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse Data Tools Platform (DTP) Project Leadership";
	$pageKeywords	= "eclipse, data tools, dtp, datatools";
	$pageAuthor		= "Nathan Gervais";
	
	ob_start();
	?>
	
	<div id="midcolumn">
		<h1><?=$pageTitle; ?></h1>
		<div class="homeitem3col">
			<h3>Who's running this project?</h3>
			<p>This page lists the people that are currently playing the PMC and subproject leadership roles described in the <a href="charter.php">project charter.</a></p>
			<p>The Eclipse Project is managed by a small group known as the Eclipse Project Management Committee (PMC). The work of the Project is organized into subprojects. Each subproject has a leader who has overall responsibility for its success. Large subprojects are further divided into component teams, each of who has a leader that is responsible for its overall success.</p>
		</div>
		<div class="homeitem3col">
			<h3>Project Management Committee</h3>
			<p><b>Brian Payton (PMC Chair), IBM</b></p>
			<p>Brian has been a software developer at IBM for 25 years, working primarily on products that help users access database data.</p>
			<p><b>Linda Chan, Actuate</b></p>
			<p>Linda is a Software Architect at Actuate who has been one of the chief architects and contributors to Actuate products since 1997.  She is also the current lead of the BIRT project, in charge of Data Access development. Prior to joining Actuate, Linda performed management and systems architect roles in the development of large scale IT applications at companies such as Sun and TRW, with over twenty years of leadership experience.</p>
		</div>
		<div class="homeitem3col">
			<h3>Subproject Leads</h3>
			<p><b>Connectivity</b><br/>Brian Fitzpatrick (Red Hat)</p>
            <p>Brian has been in the software industry in one form or another for the last 20 years, and with Sybase and Red Hat in different capacities for the last 15. Though he has a degree in Technical Journalism and worked for several years writing software documentation for print or online consumption, he has always loved tinkering with code. Eventually he switched to the other side of the desk, working on several Sybase products in other programming languages before settling in with Eclipse and Java. For several years, he worked on Sybase's enterprise application integration products which led him to help with some of the bits that became the Connectivity sub-project of the Data Tools Platform. Now he's helping work on Red Hat's JBoss Developer Studio suite of tools.</p>
			<p><b>Enablement</b><br/>Brian Fitzpatrick (Red Hat)</p>
			<p><b>Incubator</b><br/>Linda Chan (Actuate)</p>
			<p><b>Model Base</b><br/>Hemant Kolwalkar (IBM)</p>
			<p><b>SQL Development Tools</b><br/>Brian Payton (IBM)</p>
		</div>
	</div>

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