<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Bug Hunting Contest - NetBeans Mobility Pack 5.0 for CDC </title>
    
<link rel="stylesheet" href="https://netbeans.org/netbeans.css" type="text/css"></head><body>
    <h1>Bug Hunting Contest - NetBeans Mobility Pack 5.0 for CDC </h1>
    <br>

    <p>
        NetBeans Mobility Pack 5.0 for CDC supports development for Sony Ericsson CDC Platform 1 and Nokia S80 platform. 
        The product contains wizards that will help you with creation of CDC projects, with composition of Symbian MultiBitmap icons and more other issues.
        You can use the NetBeans' GUI designer (known as <a href="https://netbeans.org/projects/guibuilder/">Matisse</a>) to quickly design your CDC application.
        The IDE helps you with the Symbian packaging. There is integrated support for creating applications that installs and run on the Symbian operating system.
        Debugging on the emulator is supported too. There is integrated support for testing of a CDC application using JUnit test framework. 
    </p>

    <br>
    <h2>Bug Hunting Contest</h2>
    <p>
        Help us with testing of the NetBeans Mobility Pack 5.0 for CDC. It can happend that you'll find a bug in the product. Let us know about it!<br>
        <a href="#FillBug">Fill the bug to Issuezilla</a> bug tracking system on netbeans.org and the <a href="#Award">best hunters will win an award</a>.
    </p>

    <p>
    The pack was designed by our best knowledge and requirements gathered from the market. We would welcome all of your comments, ideas and request for enhancements. 
    You can let us know about your ideas either on the <a href="mailto:mobility-cdc@netbeans.org">mobility-cdc@netbeans.org</a> mailing list  
    or you can <a href="#FillBug">fill a new enhancement</a> to IssueZilla.
    </p>
    <br>
    <h2>How to Register for the Contest</h2>
    <p>In order to participate in the contest it is necessary to subscribe to <i>mobility-cdc@netbeans.org</i> mailing list. There is no start day of the contest. 
        <b>The contest will end on April 30th.</b>       
    </p>

    <h3>Subscribe to the List</h3>
    <p>
    <ul>
    <li><a href="mailto:mobility-cdc-subscribe@netbeans.org"><img src="https://netbeans.org/images_www/v4/btn_subscribe.gif" title="Subscribe" width=63 height=13 border=0 vspace=3></a>
        Subscribe to <i>mobility-cdc@netbeans.org</i> mailing list</li>
    <li><a href="mailto:mobility-cdc-subscribe@netbeans.org"><img src="https://netbeans.org/images_www/v4/btn_unsubscribe.gif" title="Unubscribe" width=63 height=13 border=0 vspace=3></a>

        Unsubscribe to <i>mobility-cdc@netbeans.org</i> mailing list</li>
    </ul>
    </p>
    <br>
    <a name="Award" />
    <h2>Awards for the Best Hunters</h2>

    <p>Five best bug hunters get a new T-Shirt and a surprise from the Mobility team.<br>
        We will count only <u>valid</u> issues and enhancements filled in IssueZilla. 
        You will get more detailed informations about how we'll count the bugs for the participants before the 30th of April on the mailing list. 
    </p>
    <br>   
    <a name="FillBug"></a>
    <h2>How to report bugs</h2>
    <p>Detailed steps how to report bugs on NetBeans Mobility Pack 5.0 for CDC:
    <ol>

        <li> Go to <a href="https://netbeans.org/bugzilla/enter_bug.cgi?component=3rd-party&amp;version=5.0">report issue</a> page. Select <tt>mobility cdc</tt> subcomponent.
        </li><li> Write a descriptive summary.</li>
        <li> Write details about a defect - steps how to reproduce it. </li>
        <li> Click the Submit button.</li>

    </ol>
    Please add exception stack traces or log files as attachments. Do not paste large blocks
    of text into the issue's description area.</p>
    <br>
    <h2>New features in NetBeans Mobility Pack 5.0 for CDC</h2>
    <p>
        Detailed list of features is available at the <a href="https://netbeans.org/kb/archive/index.html">NetBeans Mobility Pack 5.0 For CDC </a> page.
    </p>  
    <br>

    <h2>Tutorials</h2>
    <p>
        <ul>
            <li><a href="https://netbeans.org/kb/archive/index.html">NetBeans Mobility Pack 5.0 for CDC Quick Start Guide</a></li>
            <li><a href="http://developer.sonyericsson.com/site/global/newsandevents/latestnews/newsmar06/p_cdc_getting_started_doc.jsp">Getting Started with Java ME CDC Development</a></li>
        </ul>
    </p>

   
    <br>
    <h2>Usefull links</h2>
    <p>
        <ul>
            <li><a href="https://netbeans.org/bugzilla/buglist.cgi?issue_type=DEFECT&issue_type=ENHANCEMENT&component=3rd-party&subcomponent=mobility+cdc&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&order=%27Importance%27">All opened bugs about NetBeans Mobility Pack 5.0 for CDC</a></li>       
            <li><a href="https://netbeans.org/projects/www/lists/mobility-cdc/archive">Archive of mobility-cdc mailing list</a></li>
            <li><a href="https://netbeans.org/kb/archive/index.html">NetBeans Mobility Pack 5.0 for CDC</a> page</li>

            <li><a href="http://developer.sonyericsson.com/site/global/newsandevents/latestnews/newsmar06/p_cdc_getting_started_doc.jsp">Getting started with Java ME CDC development with Sony Ericsson</a></li>
        </ul>
    </p>   
</body></html>
