<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../..//default_style.css" type="text/css">
<link rel="stylesheet" href="../..//webtools/wtp.css" type="text/css">
<title>
			Eclipse Web Tool Platform Project Team -&nbsp;
		PMC Member&nbsp;-&nbsp;David&nbsp;Williams</title>
</head>
<body>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<tbody>
<tr>
<td width="60%" align="left"><font class="indextop">david&nbsp;williams&nbsp;@ eclipse wtp</font>
<br>
<font class="indexsub">
			Eclipse Web Tool Platform Project Team -&nbsp;
		PMC Member&nbsp;-&nbsp;David&nbsp;Williams</font></td><td width="40%"><img width="120" hspace="50" height="86" align="middle" src="../..//images/Idea.jpg"></td>
</tr>
</tbody>
</table>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<col width="16">
<col width="*">
<tbody>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top"><img height="238" width="203" src="photos/large/david-williams.png"></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><b>Affiliation:&nbsp;</b><a target="_top" href="http://www.ibm.com">IBM</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><b>E-mail:&nbsp;</b><script language="JavaScript">var protocol = "mailto";
							function contact() { window.open(protocol +
							":" + user + "@" + server, "_self"); }
						</script><a href="javascript:contact()">david_williams&nbsp;at&nbsp;us&nbsp;dot&nbsp;ibm&nbsp;dot&nbsp;com</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><b>Home page:&nbsp;</b>n/a</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top"><script language="JavaScript">var user = "david_williams";var server = "us.ibm.com";
					
var bugzilla = "https://bugs.eclipse.org/bugs/buglist.cgi?product=Web+Tools";

function bugsIReported() { 
	var query_string = "&emailreporter1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" +
	server, "_top"); 
}

function bugsIOwn() { 
	var query_string = "&emailassigned_to1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToConfirm() { 
	var query_string = "&bug_status=UNCONFIRMED&emailassigned_to1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToResolve() { 
	var query_string = "&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToVerify() { 
	var query_string = "&bug_status=RESOLVED&emailreporter1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToClose() { 
	var query_string = "&bug_status=VERIFIED&emailassigned_to1=1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}
					
				</script></td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Bugs</font></b></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsIReported()">Bugs I Reported</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToVerify()">
					Bugs I Need to Verify
				</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsIOwn()">Bugs I Own</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToConfirm()">
					Bugs I Need to Confirm
				</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToResolve()">
					Bugs I Need to Resolve
				</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToClose()">
					Bugs I Need to Close
				</a></td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Contribution</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p xmlns:person="http://eclipse.org/webtools/person" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
			David is a committer for editors in the project (XML, HTML,
			CSS, JSP, and JavaScript), and serves on the WTP and EMO
			Architecture Group.
		</p>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Biography</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p xmlns:person="http://eclipse.org/webtools/person" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
			David is a senior programmer/team-lead at IBM&rsquo;s RTP
			Lab. For the past 4 years he has been responsible for the
			family of "Structured Source Editors" in the WebSphere
			Studio line of products (this includes source editing for
			XML, HTML, JSP, CSS, and JavaScript). Prior to this, he was
			a lab-based service consultant, directly helping IBM&rsquo;s
			customers adapt object oriented technology (using Smalltalk
			and then later Java) and design web-based applications.
		</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p xmlns:person="http://eclipse.org/webtools/person" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
			Prior to that, he worked on VisualAge for Java Components
			for Image Processing software, and prior to that he was
			responsible for Human Factors/Usability of a number of IBM
			Products. He has an MA in Quantitative/Cognitive Science
			from University of Colorado at Boulder. In his spare time he
			enjoys reading other's code and fixing their bugs they never
			even knew they had.
		</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="contributors.html#David-Williams">Contributor Activity</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="index.html#David-Williams">Contributor Index</a></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			Please see our
			<a target="_top" href="http://eclipse.org/legal/privacy.html">privacy policy</a>
			and website
			<a target="_top" href="http://eclipse.org/legal/termsofuse.html">terms of use</a>. 
			For problems with the eclipse.org site, please contact the
			<a href="mailto:webmaster@eclipse.org">webmaster</a>
			or read the
			<a target="_top" href="http://eclipse.org/webmaster/index.html">webmaster FAQ</a>
			for answers to common questions!
		</p>
</td>
</tr>
</tbody>
</table>
</body>
</html>
