<?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 Doug 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 & Michael Spector (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, Roy and Michael 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);
?>

