<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>OpenOffice.org Conference 2007 - Registration</title>
  
  <!-- Include the common CSS stylesheet -->
  <link rel="stylesheet" type="text/css" href="default.css">
  
</head>


<body>

<div id="content">

  <div id="title">
    <a href="/conference/index.html">
      <img style="border: 0px solid; margin-left: 25px; float: left;" 
           src="images/ooocon2007_176x105.png"
           alt="OpenOffice.org Conference logo" />
    </a>
    <h3>OpenOffice.org Conference (OOoCon 2007)</h3>
    <p>19th-21st.September 2007<br />Barcelona, Spain<br /><br />
    <a href="attendees.html#register"><span class="register">Register Now</span></a>
    </p>
  </div>
  </div>

  <br style="clear: left;"/>
  <br />

  <div id="midtabs">
    <ul>
      <li><a href="index.html">Home</a></li>
      <li><a href="news.html">News</a></li>
      <li><a href="venue.html">Venue</a></li>
      <li><a href="travel.html">Travel</a></li>
      <li><a href="programme.html">Programme</a></li>
      <li class="th"><a href="speakers.html">Speakers</a></li>
      <li><a href="attendees.html">Attendees</a></li>
      <li><a href="sponsorship.html">Sponsors</a></li>
   </ul>
 </div>

   <div class="contentpart" id="contextualinformation">
    <br />
    <br />
   </div>

    <h3>Call for Papers</h3>
    
    <p><span class="content">
       The organisers welcome papers from the broad OpenOffice.org community on topics ranging from 
       developing OpenOffice.org to marketing it; from the global politics of the free and open-source 
       software (FOSS) movement to the technical challenges of localization. OOoCon is a forum for 
       technical as well as general examinations of OpenOffice.org's place in the expanding world of FOSS.
    </span></p>

    <h3>Prepare your Proposal</h3>

    <p><span class="content">
       If you would like to present a paper at OOoCon2007, please study the 
       <a href="cfp.html">Call for Papers</a> 
       and prepare the following information. Note that items marked (P) will be published in the Programme.
    </span></p>
    <ul>
    <li>Title of your paper (P)</li>
    <li>Session description (P)</li>
    <li>Target Audience (P)</li>
    <li>Proposed Track (P) (see the list in the Call for Papers)</li>
    <li>Preferred Session Type (P) (see the list in the Call for Papers)</li>
    <li>Your Full Name (P)</li>
    <li>Short Biography (P) <i>optional</i></li>
    <li>URL of your home page / blog etc (P) <i>optional</i></li>
    <li>Job Title / Position in the Community (P) <i>optional</i></li>
    <li>Company / OpenOffice.org Project Name (P) <i>optional</i></li>
    <li>Email Address</li>
    <li>Postal Address</li>
    <li>Contact Telephone Number (Mobile / cell phone preferred for use at OOoCon) <i>optional</i></li>
    <li>Request for travel subsidy (amount and reason) <i>optional</i></li>
    </ul>
<!--    
    <p><span style="color: red; font-weight: bold">Warning - registration is not yet open. We are still
       testing the form. Any data you enter will be discarded.
    </span></p>
-->
    <h3>Submit your Proposal</h3>

    <p><span class="content">
       Please submit your proposal using the 
       <a href="http://survey.services.openoffice.org/forms/public/survey.php?name=CfP2007">on-line form</a> 
       before 1 June 2007.
    </span></p>
          
    <h3>Notification to Speakers</h3>

    <p><span class="content">
      Once the closing date has passed, the Selection Committee will review and vote on
      all the proposals with a view to creating a balanced and attractive programme.
      The Committee will aim to let all the proposers know whether they have been
      selected or not by the middle of June. A small number of speakers may be asked whether
      they are happy to remain on a 'wait list' in case of cancellations.
    </span></p>

    <h3>Presentation materials</h3>

    <p><span class="content">
       An OpenOffice.org Impress template recommended for use for the conference 
       presentations will be published around 1 June 2007. All speakers are required to 
       file a copy of their presentations with the Conference organisers. These 
       presentations will be made publicly available on the Conference website.
    </span></p>
    <p><span class="content">
       Please note that your session may be streamed as a live broadcast and 
       may be recorded and made available for download from the Conference website.
    </span></p>

    <h3>Keep informed&nbsp;</h3>
        
    <p style="text-align: left;">Keep up to date with the latest news - subscribe to the conference delegates' mailing list 
        <a href="/servlets/SummarizeList?listName=ooocon2007_discuss">
        ooocon2007_discuss@marketing.openoffice.org</a> by sending an empty message to 
        <a href="mailto:ooocon2007_discuss-subscribe@marketing.openoffice.org">
        ooocon2007_discuss-subscribe@marketing.openoffice.org</a>.</p>

</div>
<!-- Right menu
<div id="menu">


    <p id="langLine">
		<span class="thisLang">En</span> -
		<a class="lang" href="index_fr.html">Fr</a>
	</p>

    <h3>OOoCon 2007</h3>
        <p><a href="indox.html">Home</a></p>
        <p><a href="news.html">News</a></p>
        <p><a href="travel.html">Travel</a></p>    
        <p><a href="programme.html">Programme</a></p>
        <p><a href="sponsorship.html">Sponsors</a></p>

    <h3>How to participate</h3>
        <p><a href="schedule.html">Programme</a></p>
        <p><a href="sponsorship.html">Sponsors</a></p>
        <p><a href="registration.html">Registration</a></p>
    <h3>Travel informations</h3>
        <p><a href="travel.html">Travel</a></p>    
        <p><a href="accommodation.html">Accommodation</a></p>
        <p><a href="map.html">Map</a></p> 
-->
</div>

</body>
</html>
