<?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 		= "";
$pageKeywords	= "";
$pageAuthor		= "";

ob_start();
?>
    <div id="maincontent">
	<div id="midcolumn">

<?php
include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php");
generate_header("Mylar");
?>
  
  
    <h1>Mylar</h1>
    <BR>
    

	
		<h2>
		Introduction</h2>
	
	

	
		



<p>The Mylar Project is a proposed open source 
project under the <a href="/technology/">Eclipse 
Technology Project</a>.</p>
<p>This proposal is in the Project Proposal Phase (as defined in the
<a href="/projects/dev_process/">
Eclipse Development Process document</a>) and is written to declare its intent 
and scope. This proposal is written to solicit additional participation and 
input from the Eclipse community. You are invited to comment on and/or join the 
project. Please send all feedback to the
<a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.mylar">
http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.mylar</a> newsgroup.
&nbsp; 
	
	

	
		<h2>
		Background</h2>
	
	
		
When used on large systems, Eclipse views become overloaded with elements.&nbsp; 
Tree views often contain deep hierarchies with thousands of nodes, search 
results often contain hundreds of elements, and each needs to be inspected 
carefully to find elements related to the task-at-hand.&nbsp; The end result is 
that developers spend more time looking for the information they need to get a 
task done than they do programming.&nbsp; Although the Eclipse IDE is better 
than most for working on large systems, features such as working sets still 
burden the developer with manual configuration as tasks change.&nbsp; The 
problem is that the current IDE user interface, 
which shows system wide slices of program structure, does not scale to very 
large systems.&nbsp; As systems continue to grow, this problem will continue to 
get worse.&nbsp; But no matter how complex a system is, for any task that 
developers work on--any defect they fix or feature they add--developers only care about a subset of the system.&nbsp; 
Mylar proposes that the Eclipse user interface only needs to show developers 
what they are working on. 
<p>The current Mylar prototype makes working with very large Java and plug-in projects in Eclipse as easy as it is to 
work with small projects.&nbsp; It does this by encoding developers' editing and 
navigation activity in a degree-of-interest model and using the standard Eclipse 
views to show only the relevant elements.&nbsp; It also finds related 
information by actively searching 
the source code and related artifacts.&nbsp; The result is that the Mylar 
plug-in 
dramatically reduces the need to navigate, search, inspect, and scroll around 
looking for the information needed for the task-at-hand.&nbsp; We propose Mylar 
as an Eclipse Technology Project with the intent of demonstrating how the core 
pieces of this technology are relevant to the Eclipse platform and tools 
projects, and in the process creating a useful plug-in with an active community.&nbsp; </p>
<p>Version 0.1 of Mylar was tested in an August 2004 user study at IBM Toronto, 
where 6 senior developers working on enterprise applications and plug-ins 
used the tool during one week of their daily work.&nbsp; As reported in the
		<a href="http://kerstens.org/mik/publications/mylar-aosd2005.pdf">AOSD 
2005 Mylar paper</a>, the tool resulted in a substantial productivity 
improvement.&nbsp; The
		<a href="http://www.cs.ubc.ca/~mylar/presentations/mylar-eclipsecon2005.ppt">
		first public presentation of Mylar</a> was given at EclipseCon 2005 and 
		was very well received.&nbsp; Email 
		feedback includes statements such as &quot;I thought Mylar was the most 
		exciting technology I saw at the conference (including all the 
		commercial vendor offerings)!&quot; [Sean Woodhouse, Technical Director of Verasta]. Several blog entries have also featured Mylar, including: </p>
		<ul>
			<li>
			<a title="Permanent Link: The coolest plug-in you&#8217;re not using" rel="bookmark" href="http://www.eclipsepowered.org/archives/2005/03/03/the-coolest-plug-in-youre-not-using/">
			The coolest plug-in you&#8217;re not using</a> (eclipsepowered.org)</li>
			<li><a href="http://jroller.com/page/werner/20050303">Mylar : 
			eclipse plugin to avoid information blindness</a> (jroller.com/page/werner)</li>
		</ul> 
	
	

	
		<h2>
		Scope</h2>
	
	
		
		<p align="left">The objectives of the Mylar project are to: </p>
		<ul>
			<li>
			<p align="left">Demonstrate that modeling task context is a core 
			concern of the IDE platform, and that it can be seamlessly 
			integrated into Eclipse to better support developers working with 
			large workspaces.</p></li>
			<li>
			<p align="left">Build the core models, infrastructure, and UI 
			components required to model and expose task context.&nbsp; The 
			reference implementation will be tools for Java and Eclipse plug-in 
			development.</p></li>
			<li>
			<p align="left">Solicit contributions to extend the interest model 
			to additional Eclipse development platforms as C/C++ and J2EE, and 
			to additional tools such as those for task management and 
			information visualization. </p></li>
			<li>
			<p align="left">Provide a platform for ideas and prototypes that help 
			scale the Eclipse user interface to very large systems.</p></li>
		</ul>
		
	


	
		<h2>
		Description</h2>
	
	
		
		<p align="left">The prototype implementation of Mylar is documented in the
		<a href="http://www.cs.ubc.ca/~mylar/presentations/mylar-eclipsecon2005.ppt">
		EclipseCon presentation</a>.&nbsp; The core Mylar component monitors the 
		developer's editing and navigation activity and builds a 
		degree-of-interest model.&nbsp; It exposes the degree-of-interest API, used by the Mylar UI 
		to 
		provide generic facilities for exposing interest in Eclipse workbench views and 
		editors.&nbsp; These facilities provide 
		interest-based highlighters, filters, sorters, and decorators.&nbsp; </p>
		<p align="left">Additional Mylar tools extend the core model and UI facilities 
		and add tool-specific interest encoding and search 
		facilities.&nbsp; For example, the Java development support provides Mylar extensions of views such as the Package Explorer, Type 
		Hierarchy and Java Editor, and drives the JDT's search.&nbsp; AOP support does the same for AJDT.&nbsp; 
		XML-specific extensions support J2EE and plug-in development.&nbsp; Task management support integrates issue tracking systems such as 
		Bugzilla.&nbsp; Future extensions include debugging support, Dynamic 
		Help integration, interest model visualization and C/C++ development 
		support.<br>
&nbsp; </p>
		
	


	
		<h2>
		Organization</h2>
	
	
		
		<p align="left"><b>Initial committers</b></p>
		<p align="left">The initial committers will focus on evolving and 
		hardening the Mylar model by delivering support for 
		Java development.&nbsp; Our agile development process will 
		follow eclipse.org's standards for openness and transparency.&nbsp; Our 
		goal is to provide the 
		infrastructure and APIs needed to integrate task and degree-of-interest 
		centric UIs to any Eclipse plug-ins whose users experience information 
		overload.&nbsp;As such we will actively encourage contributions to 
		Mylar.&nbsp; We also plan to help improve the Eclipse platform by 
		submitting patches and extension point suggestions.&nbsp; The initial committers are:</p>
		<ul>
			<li>
			<p align="left"><b><span style="font-weight: 400">Mik Kersten (UBC): </span></b>project lead </li>
			<li>
			<p align="left"><b><span style="font-weight: 400">Gail Murphy</span> <span style="font-weight: 400">(UBC): </span></b>project manager </li>
			<li>
			<p align="left"><b><span style="font-weight: 400">Shawn Minto</span> <span style="font-weight: 400">(UBC)</span></b>: component owner of Bugzilla integration and XML 
			support</li>
		</ul>
		<p align="left"><b>Interested parties</b><p align="left">The following 
		projects have expressed interest extending the model or tools, 
		contributing ideas, guidance and discussion. Key contacts listed.<ul>
			<li>
			<p align="left">CHISEL lab (University of Victoria): Margaret-Anne 
			Storey</li>
			<li>
			<p align="left">JDT (IBM): Philippe Mulet</li>
			<li>
			<p align="left">AspectJ/AJDT (IBM Hursley): Adrian Colyer</li>
			<li>
			<p align="left">CDT (Texas Instruments Canada): Winnie Lai</li>
			<li>
			<p align="left">Rational (IBM): Jin Li</li>
		</ul>
		<p align="left"><b>Developer community</b><p align="left">We expect to 
		extend the initial set of committers by actively supporting a developer 
		community.&nbsp; The initial community outside of UBC will 
		include 
		Margaret-Anne Storey's CHISEL lab, which is planning to extend Mylar to 
		their work on software visualization.&nbsp; We have two additional 
		developers working on Bugzilla integration, and will be working with CDT 
		developers to extend support to C/C++.&nbsp; Our goal is to have the 
		initial developer community harden the core Mylar APIs to the point 
		where it is easy for any other plug-in to incorporate the technology, 
		and we will encourage all active contributors to become committers.&nbsp; We will make it easy for interested parties to take an active role in the 
		project by making our planning and process transparent and remotely accessible.&nbsp;<p align="left">
		<b>User community</b><p align="left">
		Mylar is a new technology that 
		promises to improve the user interface and interaction model of Eclipse.&nbsp; 
		As such, supporting and soliciting feedback from a large user community 
		of commercial developers is critical to creating a scalable model and 
		usable UIs.&nbsp; We plan on doing this by using 
		the standard eclipse.org mechanisms of supporting an open project and community of early adopters.&nbsp; In addition, we will collect user feedback in the form of remotely conducted 
		user studies.&nbsp; These will take a similar form to the one 
		reported on in the
		<a href="http://kerstens.org/mik/publications/mylar-aosd2005.pdf">AOSD 
2005 Mylar paper</a>, and will involve users sending their feedback and usage 
		statistics on a weekly basis.&nbsp; This data will provide us with 
		detailed information on view usage, navigation patterns, and the 
		accuracy and predictability of the Mylar model.<p align="left">Since 
		the EclipseCon presentation over 75 people have signed up for the 
		summer user study.&nbsp; Those individuals will form our initial user community. &nbsp;With 
		the input of the study we plan on tuning the Mylar model and UIs, 
		and subsequently growing our user and developer communities.&nbsp; For information on 
		the user user study please refer to the
		<a href="http://www.cs.ubc.ca/~mylar/">Mylar page</a>.<br>
&nbsp; 
	


	
		<h2>
		Tentative Plan</h2>
	
	
		
		<p>2004-08 v0.1: internal release for IBM Toronto 
		user study<br>
		2005-02 v0.2: internal release for EclipseCon presentation<br>
		2005-04 v0.3: internal bootstrap release<br>
		2005-06 v0.4: public release for user study 
	


<p><b><span style="font-weight: 400; font-style:italic">&quot;Mylar&quot; is:</span></b><i><br>
a) An aluminized film used to avoid blindness when staring at a solar eclipse<br>
b) A user interface and interaction &#8216;skin&#8217; used to avoid information blindness 
when staring at Eclipse</i></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);
?>
