﻿<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>OOoCon 2006 CFP</title>
    
    <!-- Include the common CSS stylesheet -->
    <link rel="stylesheet" type="text/css" href="default.css" />
</head>

<body>

<div id="content">
    
    <div id="logo">
        <a href="/conference/index.html">
            <img style="border: 0px solid" 
                src="OpenOfficeConference_Logo_s.gif" 
                alt="OpenOffice.org Conferences logo" />
        </a>
    </div>
    
    <div id="title">
        <h3>OpenOffice.org Conference (OOoCon 2006)</h3>
        <p>Call for papers</p>
    </div>
    
    <p><em>Your proposal should be sent before <strong>1 June 2006</strong> 
    in order to guarantee that it will be considered for inclusion in the 
    Conference.</em></p>

    <p> We are soliciting 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. This conference is meant to be a forum for 
    technical as well as general examinations of OpenOffice.org's place in the 
    expanding world of FOSS.</p>

    <h3>Covered topics</h3>
    <p> The conference will cover the following OpenOffice.org topics, 
    organized into five tracks: </p>

    <h4>General</h4>

    <ul>
	    <li>OpenOffice.org 3.0</li>
    	<li> Commercializing, integrating, and supporting OpenOffice.org</li>
	    <li> Migration methodology</li>
    	<li> Marketing</li>
	    <li> Funding the project, defining the product, and extending it</li>
    	<li> Attracting people (programmers, documentation writers, 
            linguists, support, marketing...)</li>
	    <li> The OpenOffice.org Community: Past, Present and Future</li>
    </ul>


    <h4>Education</h4>

    <ul>
	    <li>OpenOffice.org in schools and universities</li>
    	<li>Case studies of student's/pupil's help in 
            developing OpenOffice.org</li>
	    <li>Skill recognition</li>
    </ul>


    <h4>Public Administration</h4>

    <ul>
	    <li>Case studies of OpenOffice.org in government</li>
	    <li> Government support of OpenOffice.org (and FOSS in general)</li>
	    <li> Collaboration of PA in developing, deploying and using 
            OpenOffice.org</li>
	    <li> Government support</li>
    </ul>


    <h4>Enterprises</h4>

    <ul>
	    <li>Case studies of OpenOffice.org in private sector 
            (SME - Small to Medium-sized Enterprise)</li>
	    <li> Collaboration of SME in developing, deploying and using 
            OpenOffice.org</li>
    	<li> How the use of OpenOffice.org can expand beyond that of a mere
            office suite (ODF opens up new horizons)</li>
    </ul>


    <h4>Development</h4>

    <ul>
	    <li> The source and how to work with it</li>
    	<li> The Roadmap</li>
	    <li> Tools for development</li>
    	<li> Integration and localization</li>
	    <li> UNO and what it can do</li>
    	<li> QA, user interface, and development processes</li>
	    <li> Macros and installers</li>
    	<li> Extensions</li>
	    <li> Filters and other topics....</li>
    </ul>


    <h4>XML & OASIS OpenDocument Format</h4>

    <ul>
    	<li>OASIS OpenDocument XML format</li>
	    <li> Introduction to XML</li>
    	<li> Examples of XML technology</li>
	    <li> XML: bridge between OpenOffice.org and other tools</li>
    </ul>

    <h3>Submiting</h3>

    <p style="text-align:left">Please submit a proposal by 
    <a href="http://marketing.openoffice.org/ooocon2006/paper_template.odt">filling
    out the template</a> and sending it to: 
    <a href="mailto:callforpapers@openoffice.org">callforpapers@openoffice.org</a></p>


    <p><strong>Note</strong>. As the OpenOffice.org community consists of members 
    from countries all over the world the talk must be in English.</p>
    
    <p><em>Please limit your presentation to <strong>50 minutes</strong>, 
    including questions.</em></p>


    <p>Your proposal (abstract) must be sent before <b>1 June 2006</b> in order 
    to be considered for inclusion in the Conference.</p>

    <p>A <em>presentation</em> is a general discussion of some topic, including 
    (but not limited to) the software, the community, relationships with other 
    software or communities, and political or philosophical issues.</p>

    <p>A <em>case study</em> is a specific type of presentation that tells what you
    did to achieve some result; this is usually a success story, but could 
    include a discussion of what mistakes you made and how you overcame them.</p>

    <p>A <em>workshop</em> is a "how-to" session, in which the presenter gives 
    step-by-step instructions for doing some task such as writing macros,
    setting up a database, or developing a complex spreadsheet. Workshops 
    usually include some audience activities.</p>

    <p>A <em>BoF</em> ("Birds of a Feather" meeting) is an informal gathering of 
    people in a particular group, or interested in a specific topic. Examples
    include the members of a native-language group, the marketing project, 
    documentation writers, or Macintosh coders.</p>

    <p>A <em>panel discussion</em> involves a group of people (usually 3 or 4) led 
    by a moderator. The participants make opening and closing statements on
    the topic, may discuss the topic among themselves, and may answer questions
    from the audience (usually submitted in advance).</p>

    <p>A <em>lightning talk</em> is a brief presentation on any topic 
    relevant to the conference. It could be an interesting format to give 
    many people the chance to make their point in a series of exactly 5 
    minute slots.</p>

    <p>The template for paper submission includes a section for requesting a
    travel subsidy. At this point we are not in a position to offer funding 
    for all speakers, and those speakers who do get a subsidy are unlikely to 
    have their full expenses covered. Each request will be considered on the
    basis of both merit and need, so if you are requesting a subsidy, please 
    give as much information as possible to help us evaluate your request. 
    Please note that someone presenting only a lightning talk is unlikely to 
    receive assistance.</p>

    <p>An OpenOffice.org Impress template recommended for use for the
    conference presentations will be published around 1 June 2006.</p>

    <p>... and keep a watch on <a href="http://marketing.openoffice.org/ooocon2006/" 
    target="_blank">http://marketing.openoffice.org/ooocon2006/</a> for more 
    information ...</p>

</div>

<!-- Right menu -->
<div id="menu">
    <h3>What is OOoCon</h3>
        <p><a href="index.html">Home</a></p>
    <h3>How to participate</h3>
        <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>
    <h3>Programme</h3>
        <p><a href="schedule.html">Overview</a></p>
        <p><a href="schedule/monday.html">Monday</a></p>
        <p><a href="schedule/tuesday.html">Tuesday</a></p>
        <p><a href="schedule/wednesday.html">Wednesday</a></p>

</div>


</body>
</html>
