<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
        <title></title>
        <meta name="GENERATOR" content="OpenOffice.org 2.4  (Unix)">
        <style type="text/css">
        &lt;!--
                @page { size: 8.5in 11in; margin: 0.79in }
                P { margin-bottom: 0.08in }
        --&gt;
        </style>

<p><span style="text-decoration: none;">Practice Made (More) Perfect</span></p>
<p style="margin-bottom: 0in;">2009 Summer of Code Application</p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;">David Capel</p>
<p style="margin-bottom: 0in;"><a href="mailto:wot.narg@gmail.com">wot.narg@gmail.com</a></p><p style="margin-bottom: 0in;">narg on Freenode</p><br><p style="margin-bottom: 0in; text-decoration: none;">Note: If anyone
has further ideas or suggestions for goals, I would be happy to
incorporate them into my proposal.</p>
<p style="margin-bottom: 0in; text-decoration: none;"><br>
</p>
<p style="margin-bottom: 0in; text-decoration: none;"><b>Summary</b></p>
<p style="margin-bottom: 0in; text-decoration: none;">        I propose, in
sum, to make the new (previously-made but currently disabled) practice modes of Parley release-quality –
this entails improvements,  bug-fixes and polishing. Unfortunately, I
ran out of time last summer and I have been extremely busy during my
first year of university, so some issues remain in my original work from last summer.
However, bringing the practice modes to release-quality level allows us to address once and for all
many of the issues that my project last summer aimed to fix. 
</p>
<p style="margin-bottom: 0in; text-decoration: none;">        Because it is
fixing a variety of issues, my proposal is more of a collection of
smaller projects than one overarching goal. A benefit of this is it
will break well into small, manageable, and easily-scheduled chunks.</p>

<p style="margin-bottom: 0in; text-decoration: none;"><b>Goals</b></p>
<p style="margin-bottom: 0in; text-decoration: none;">There are four
major categories to focus on: UI consistency, Themes, New modes, and
New Features. 
</p>
<p style="margin-bottom: 0in; text-decoration: none;"><br>
</p>
<p style="margin-bottom: 0in; text-decoration: none;">Specific goals
for UI (these include both issues with the program itself and with the
default themes):</p>
<ul><li><p style="margin-bottom: 0in; text-decoration: none;">Intelligent tab order (this is harder than it might appear, since the interface
        is themable)</p>
        </li><li><p style="margin-bottom: 0in; text-decoration: none;">Ensure accelerators and actions are sane and universal</p>
        </li><li><p style="margin-bottom: 0in; text-decoration: none;">Consistent
        UI between modes (this is a theme issue)</p>
        </li><li><p style="margin-bottom: 0in; text-decoration: none;">Improved
        conjugation UI (this is a thorny issue, and will require some
        planning to get right)</p>
        <p style="margin-bottom: 0in; text-decoration: none;"></p>
</li></ul>
<p style="margin-bottom: 0in; text-decoration: none;">Goals for themes:</p>
<ul><li><p style="margin-bottom: 0in; text-decoration: none;">Extensive
        documentation:</p>
</li></ul>
<ul><ul><li><p style="margin-bottom: 0in; text-decoration: none;">More than
                one reference</p>
                </li><li><p style="margin-bottom: 0in; text-decoration: none;">Detailed
                tutorial</p>
                </li><li><p style="margin-bottom: 0in; text-decoration: none;">Fleshing
                out the current theming guide</p>
        </li></ul><li><p style="margin-bottom: 0in; text-decoration: none;">KNS2
        support working</p>
        </li><li><p style="margin-bottom: 0in; text-decoration: none;">Theme
        manager working</p>
</li></ul>
<p style="margin-bottom: 0in; text-decoration: none;"><br>
</p>
<p style="margin-bottom: 0in; text-decoration: none;">Goals for new modes:  (See
attached mock-ups)</p>
<ul><li><p style="margin-bottom: 0in; text-decoration: none;">Crossword</p>
        </li><li><p style="margin-bottom: 0in; text-decoration: none;">Word find</p>
        </li><li><p style="margin-bottom: 0in; text-decoration: none;">Others?</p>
</li></ul>
<p style="margin-bottom: 0in; text-decoration: none;"><br>
</p>
<p style="margin-bottom: 0in; text-decoration: none;">Goals for new features:</p>
<p style="margin-bottom: 0in; text-decoration: none;">Printing support</p>
<p style="margin-bottom: 0in; text-decoration: none;">(This is
especially important for Crossword and word find – these will work
on a computer, but         are something that a user might want to do by
hand, too.)</p>
<p style="margin-bottom: 0in; text-decoration: none;"><br>
</p>
<p style="margin-bottom: 0in; text-decoration: none;"><br>
</p>
<p style="margin-bottom: 0in; text-decoration: none;"><b>Tentative
Timeline </b><span style="">(~13 weeks total)</span></p>
<p style="margin-bottom: 0in; text-decoration: none;">
The first half would be focused towards UI and themes.</p>
<p style="margin-bottom: 0in; text-decoration: none;">2 weeks – Accelerators / actions / tab order<br></p><p style="margin-bottom: 0in; text-decoration: none;">2 weeks – UI improvements (for default theme)</p>
<p style="margin-bottom: 0in; text-decoration: none;">
1 week – Conjugation</p>
<p style="margin-bottom: 0in; text-decoration: none;">
1 week – Documentation</p>
<p style="margin-bottom: 0in; text-decoration: none;">
1 week -- Theme manager / KNS2</p>
<p style="margin-bottom: 0in; text-decoration: none;">
----</p>
<p style="margin-bottom: 0in; text-decoration: none;">
The second half would be focused on new features and modes. 
</p>
<p style="margin-bottom: 0in; text-decoration: none;">
Printing would be developed in parallel to these, since they are
intertwined:</p>
<p style="margin-bottom: 0in; text-decoration: none;">3 weeks – Crossword</p>

<p style="margin-bottom: 0in; text-decoration: none;">
2 weeks – Word find</p><p style="margin-bottom: 0in; text-decoration: none;">1 week – Polishing / Other modes? Any suggestions?</p>
<p style="margin-bottom: 0in; text-decoration: none;"><br>
</p>
<p style="margin-bottom: 0in; text-decoration: none;"><b>Qualifications</b></p>
<p style="margin-bottom: 0in; text-decoration: none;">I am a
(soon-to-be sophomore) freshman at the University of Wisconsin at
Madison majoring in computer science (I&#39;ve completed about half the
degree, however ;) ) and I&#39;ve been programming for ~7 years, mostly
in C++ and Python. I know C++, Qt, and the KDE libraries proficiently
. Noteworthy projects I previously have worked on include Parley, a
few other minor open source projects, and a reasonably successful MUD
(text-only ancestors of mmorpgs).</p>

<p style="margin-bottom: 0in; text-decoration: none;">Additionally, I
am interested in languages in general and I am actively learning
Spanish, which means I will eat my own dog food (by using Parley as
more than just a developer) and I already have a set of test files created for the classes I have taken.<br></p>
<p style="margin-bottom: 0in; text-decoration: none;"><br>
</p>
<p style="margin-bottom: 0in; text-decoration: none;"><b>Other</b></p>
<p style="margin-bottom: 0in; text-decoration: none;">
Since I worked on Parley last summer, I am familiar with both the
codebase and the KDE build and development processes, which will
allow me to be immediately productive.</p>
<p style="margin-bottom: 0in; text-decoration: none;">
If accepted, I would treat my project as a full time job during the
summer, which would preclude other summer jobs or courses.</p>