<html><head>
<link rel="stylesheet" href="../default_style.css">
<title>Eclipse Foundation</title>
</head>
<body bgcolor="#ffffff">
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align=left width="72%"> <font class=indextop> eclipse foundation <br>
      board member nominations</font><br>
      <font class=indexsub> the open community driving the eclipse platform</font> </td>
    <td width="28%"><img src="../images/Idea.jpg" height=86 width=120></td>
  </tr>
</table>
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
		<tr> 
  </tr>
		<tr bgcolor="#999999">
    <td align="left" valign="top" bgcolor="#0080C0"><strong><font color="#FFFFFF" face="Arial,Helvetica">eclipse board election  </font></strong></td>
		</TR>
		<tr> 
    <td> <p><br>
  As defined by the <a href="documents/Eclipse BYLAWS 2003_11_10 Final.pdf">Bylaws</a> of the Eclipse Foundation, each year elections are held for representatives of two groups within the Eclipse community: </p>
      <ul>
        <li><strong>Add-in Providers</strong>: Each year, Board members are elected to represent the interests of the Add-In Provider class of Members. Each Add-In Provider Member receives one vote.
          <br>
          <br>
        </li>
        <li><strong>Committers</strong>: Each year, Board members are elected to represent the interests of the Committers working on Eclipse projects. Each Committer receives one vote. However, all of the committers who work for a single company have their votes combined to comprise a single vote.</li>
      </ul>
      </td> 
		</tr>
</table>
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
		<tr> 
  </tr>
</table>
		<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align="left" valign="top" bgcolor="#0080C0"><strong><font color="#FFFFFF" face="Arial,Helvetica">nominees</font></strong></td>
  </tr>
  </table>
        <p>The nominees for the 2005 Add-In Provider and Committer representatives on the Eclipse Board of Directors are: </p>
        <table width="90%" border="0" cellspacing="0" cellpadding="1" align="center">
  <tr> 
    <td width="22%"><div align="center"><strong>Add-In Provider </strong></div></td>
    <td width="24%"><div align="center"><strong>Committer</strong></div></td>
    </tr>
  <tr> 
    <td width="22%">&nbsp;</td>
    <td width="24%">&nbsp;</td>
    </tr>
  <tr> 
    <td width="22%"><div align="center"><a href="../elections/addin_jkrause.html">Jochen Krause</a></div></td>
    <td width="24%"><div align="center"><a href="../elections/committer_slewis.html">Scott Lewis</a></div></td>
  </tr>
  <tr> 
    <td width="22%"><div align="center"><a href="../elections/addin_hlewis.html">Howard Lewis</a></div></td>
    <td width="24%"><div align="center"><a href="../elections/committer_kmaetzel.html">Kai-Uwe Maetzel</a></div></td>
  </tr>
  <tr> 
    <td width="22%"><div align="center"><a href="../elections/addin_rmain.html">Rich Main</a> </div></td>
    <td width="24%"><div align="center"><a href="../elections/committer_tthessin.html">Tyler Thessin</a></div></td>
  </tr>
  <tr> 
    <td width="22%"><div align="center"><a href="../elections/addin_smalhotra.html">Sumeet Malhotra</a></div></td>
    <td width="24%"><div align="center"><a href="../elections/committer_gwagenknecht.html">Gunnar Wagenknecht</a></div></td>
  </tr>

  <tr> 
    <td width="22%"><div align="center"><a href="../elections/addin_twilliams.html">Todd Williams</a> </div></td>
    <td width="24%"><div align="center"><a href="../elections/committer_jwiegand.html">John Wiegand</a> </div></td>
  </tr>
  <tr> 
    <td width="22%"><div align="center"><SPAN class=491194419-07012005><a href="../elections/addin_dzygmont.htm">David Zygmont</a> </SPAN></div></td>
    <td width="24%">&nbsp;</td>
    </tr>
</table>
<p> </p>
		<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align="left" valign="top" bgcolor="#0080C0"><strong><font color="#FFFFFF" face="Arial,Helvetica">key dates</font></strong></td>
  </tr>
  </table>
  
<p> The key dates for the Add-in Provider representative elections are: </p>
  <ul>
    <li>January 24, 2005: List of nominees and their personal pages made available on www.eclipse.org. Discussion of the issues on the eclipse.foundation newsgroup will be encouraged.</li>
    <li>February 7, 2005: Voting begins. </li>
    <li> February 18, 2005: Voting ends.</li>
    <li>February 28, 2005: New  representatives announced</li>
  </ul>
  The key dates for the Committer representative elections have been extended 
and are: 
<ul>
  <li>February 7-11, 2005: Nominations to be sent by email to emo at eclipse.org</li>
  <li> February 16-18, 2005: List of new nominees and their personal pages made 
    available on www.eclipse.org. Discussion of the issues on the eclipse.foundation 
    newsgroup will be encouraged.</li>
  <li>February 21, 2005: Voting begins.</li>
  <li>February 25, 2005: Voting ends.</li>
  <li>February 28, 2005: New representatives announced</li>
</ul>
</body></html>
