<?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("_projectCommon.php");    # All on the same line to unclutter the user's desktop'

	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Galileo In Action";
	$pageKeywords	= "eclipse, Galileo, action, webinar, release, virtual conference";
	$pageAuthor		= "Lynn Gayowski";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank)
	# $Nav->addCustomNav("My Link", "mypage.php", "_self");
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank");

	# End: page-specific settings
	#
	
	# Paste your HTML content between the EOHTML markers!	

ob_start();
?>		

<style type="text/css">
.switchcontent{display:none;}
</style>

<script type="text/javascript">
function switchMenu(obj) {
	var el = document.getElementById(obj);
	el.style.display = ( el.style.display != "block" )? 'block':'none' 
}
</script>	
	
	<style>
		.paddedlist li {	padding-bottom:7px;	}
	</style>	


	<div id="maincontent">
	<div id="fullcolumn">
	<div id="midcolumn">
	
		<h1><?= $pageTitle ?></h1>

      	<p>
		On June 26, the Eclipse Foundation is presenting Galileo In Action - a virtual
      	conference where you can interact with project leads involved in the release and see
      	demos of the new features. The annual simultaneous release has now grown to 33 projects
      	with over 23 million lines of code, contributed by committers around the world.  With such
      	a large global community, Eclipse wants to bring Galileo to you!
      	</p>

      	<p> 
      	<a href="https://www2.gotomeeting.com/register/207615571" target="blank">
      	<img src="images/button_register.gif" style="padding-right: 25px;" alt="Register" border="0"></a>
      	</p>

 		<p>Galileo In Action is free to attend and registering gets you into all 5 sessions:</p>

		<p>10:00-10:45 am EST<br>
		<a href="javascript:switchMenu('intro');" title="Description">
		<img src="http://www.eclipse.org/newsgroups/images/plus.gif" alt="Description" title="Description">
		<b>What is Galileo and Why do I Love it?</b></a><br>
		Doug Schaefer (C/C++ Development Tooling) and John Graham (Data Tools Platform)
		</p>
		<div id="intro" class="switchcontent">
		<p>
			Doug and John will give an overview of what exactly the Galileo release is all about.  They
 			will explain what makes Eclipse projects want to participate in the simultaneoue release and
 			what is required for them to do so.  Doug and John will describe the improvements Galileo
 			brings to the community and from their perspective as project leads, what they see as the
 			impact to the Eclipse ecosystem.
		</p>
		</div>

		<p>11:00 am - 11:45 am EST<br>
		<a href="javascript:switchMenu('frameworks');" title="Description">
		<img src="http://www.eclipse.org/newsgroups/images/plus.gif" alt="Description" title="Description">
		<b>Frameworks Showcase</b></a><br>
		Scott Lewis (Eclipse Communication Framework) and Pascal Rapicault (p2)
		</p>
		<div id="frameworks" class="switchcontent">
		<p>
			ECF is a framework for supporting the development of distributed Eclipse-based tools and
 			applications. It can be used to create other plugins, tools or full Eclipse RCP applications
 			that require asynchronous point-to-point or publish-and-subscribe messaging.
			<br><br>
 			p2 provides a framework for provisioning Eclipse-based applications. It replaces Update Manager
 			as a mechanism for managing your Eclipse install, searching for updates and installing new
 			functionality. 
 			<br><br>
 			Scott and Pascal will give a short introduction to ECF and p2 and explain what these projects
 			have contributed to the Galileo release.
		</p>
		</div>

		<p>12:00 pm - 12:45 pm EST<br>
		<a href="javascript:switchMenu('runtime');" title="Description">
		<img src="http://www.eclipse.org/newsgroups/images/plus.gif" alt="Description" title="Description">
		<b>Runtime Showcase</b></a><br>
		Tom Watson (Equinox) and Shaun Smith (EclipseLink)
		</p>
		<div id="runtime" class="switchcontent">
		<p>
			From a code point of view, Equinox is an implementation of the OSGi R4 core framework
 			specification, a set of bundles that implement various optional OSGi services and other
 			infrastructure for running OSGi-based systems. The goal of the Equinox project is to be a
 			first class OSGi community and foster the vision of Eclipse as a landscape of bundles. As part
 			of this, it is responsible for developing and delivering the OSGi framework implementation
 			used for all of Eclipse.
 			<br><br>
 			EclipseLink, or the Eclipse Persistence Services Project, delivers a comprehensive open-source
 			Java persistence solution. It has a set of persistence services enabling developers to
 			efficiently develop applications that access data in a variety of data sources and formats.
			<br><br>
 			Join Tom and Shaun for a review of these runtime projects and the new features they bring
 			to Galileo.
		</p>
		</div>			

		<p>1:00 pm - 1:45 pm EST<br>
		<a href="javascript:switchMenu('tools');" title="Description">
		<img src="http://www.eclipse.org/newsgroups/images/plus.gif" alt="Description" title="Description">
		<b>Tools Showcase</b></a><br>
		Andreas Buchen (Memory Analyzer) and Roy Ganor (PHP Development Tools)
		</p>
		<div id="tools" class="switchcontent">
		<p>
			The Eclipse Memory Analyzer is a fast and feature-rich Java heap analyzer that helps you find
 			memory leaks and reduce memory consumption.  Developers use the Memory Analyzer to analyze
 			productive heap dumps with hundreds of millions of objects, quickly calculate the retained
 			sizes of objects, see who is preventing the Garbage Collector from collecting objects, and run
 			reports to automatically extract leak suspects.
 			<br><br>
			The PHP Development Tools project provides a framework for the Eclipse platform. The project
			encompasses all development components necessary to develop PHP and facilitate extensibility.
			It leverages the existing Web Tools Platform (WTP) and Dynamic Languages Toolkit (DLTK) i
			in providing developers with PHP capabilities.
			<br><br>
			Andreas and Roy will talk about the new and noteworthy features their respective
			projects will introduce in the Galileo release.
		</p>
		</div>	 			

		<p>2:00 pm - 2:45 pm EST<br>
		<a href="javascript:switchMenu('action');" title="Description">
		<img src="http://www.eclipse.org/newsgroups/images/plus.gif" alt="Description" title="Description">
		<b>Galileo In Action</b></a><br>
		Jason Weathersby (Business Intelligence and Reporting Tools) and Mik Kersten (Mylyn)
		</p>
		<div id="action" class="switchcontent">
		<p>
			Jason and Mik will take a look at Galileo from the perspective of an Eclipse adopter.  The
 			 release is important to Eclipse developers, but there is also an impact to the end user of
 			 commercial products based on Eclipse.  Jason and Mik will discuss how Galileo affects their
 			 product delivery and what value it brings to their end customers.
		</p>
		</div>	 			
 		
 		<p>To attend, register through <a href="https://www2.gotomeeting.com/register/207615571" target="blank">
 		GoToMeeting</a>.</p>
 		
 		<p>For an entertaining video describing what the virtual conference is all about, see 
 			<a href="http://blip.tv/file/2183199" target="blank">Galileo In Action!</a> on blip.tv:<br><br>
			<a href="http://blip.tv/file/2183199" target="blank"><img src="images/WayneGalileo.png" width="200" height="151" alt="Galileo In Action!"></a>
		</p>

 	<br><br>
	</div>
	</div>
</div>

<?php
	$html = ob_get_contents();
	ob_end_clean();

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

