Google Code In Tasks

Here are tasks for Google Code-In 2011. This page might not be up-to-date, please see http://languagetool.wikidot.com/missing-features instead.

1. Code: Tasks related to writing or refactoring code

Simple tasks:

  • Write JUnit test case for SlovakVesRule
  • Make sentence tokenizer based on SRX for Italian
  • Make sentence tokenizer based on SRX for Lithuanian
  • Make sentence tokenizer based on SRX for Swedish
  • Port usable English rules from XML copy editor
    • Rules from XML Copy Editor for English could be interesting for LT (see its source in the xmlcopyeditor-1.0.9.5/src/rulesets directory).

Medium:

  • Modularize LanguageTool for OpenOffice.org
    • Current LT distribution gets too large. The idea would be to create standalone LT extensions for each language (and one common extension for all languages). It requires the change of the .xcu files and OOo tooling.
    • Difficulty: some work with OOo API, so it requires some knowledge of Java, and ant.
  • Modularize LanguageTool Web Start version
    • The additional task would be to enable similar modularization for our Java Web Start GUI code: the main extension would start with English, and additional languages would be downloaded on demand. This should allow the app to start much quicker.
  • Scribus plugin
  • Abiword plugin
  • Emacs integration
    • See here for inspiration.
  • Write 15 rules
    • Write at least 15 rules for your language.
  • Fix a bug from the bug tracker
    • There are some outstanding bugs on the tracker. Pick one and fix it.

Hard:

  • Add rule / false friends (online?) editor
    • Would simplify adding rules. It would be probably working in a web browser. Options:
      • XForms: this is XML standard for forms on the web, so using it you could implement any form-based UI. The bad thing is that it is not really supported by major web browsers.
      • XML database: use some native XML database system and create a web interface to query it and modify it. This way searching for rules would be easier.
      • Use a web-based WYSIWYM (what you see is what you mean) editor to create a new editing interface.
      • Create a Java-based UI.
    • The most important functionalities would be:
      • Search for a rule (rulegroup) by id and example.
      • Display a rule (and its rulegroup in a collapsed way).
      • Modify all elements of the rule.
      • Check validity.
      • Run tests on the file (via JUnit in LanguageTool).
      • Open, Save, Save as… options in the File menu.
      • Maybe integrate a wizard to create easy rules.

2. Documentation: Tasks related to creating/editing documents

Simple:

  • Add documentation for at least 20 rules.

Medium:

  • Write the English help page for the LibreOffice extension.
  • Write the Polish help page for the LibreOffice extension.
  • Write the French help page for the LibreOffice extension.
  • Write the Dutch help page for the LibreOffice extension.
  • Write the Chinese help page for the LibreOffice extension.

3 Outreach: Tasks related to community management and outreach/marketing

Medium:

  • Create a nice video that shows LT in action.

4. Quality Assurance: Tasks related to testing and ensuring code is of high quality

Simple tasks:

  • Go to community.languagetool.org and find rules that cause at least 30 false alarms on Wikipedia in your language, and propose fixes for rules.
  • Clean up rule descriptions so that they coherently contain the error or the rule (e.g., "did + baseform" vs. "did + non-baseform"). This is especially true for English rules.
  • Spell check the rules in your language to see if there are no typos left!
  • Find and fix a bug in LanguageTool.
  • Find overlapping rules in the rule set for a language.

5. Research: Tasks related to studying a problem and recommending solutions

Simple tasks:

  • Find a list of most common or most criticized errors in a language supported by LanguageTool but not yet found by LanguageTool. Propose an idea for a rule that might catch such an error.

Medium:

  • See if java.text.RuleBasedBreakIterator would be better for word tokenization than the current scheme (especially check performance)
  • Think of the best solution how to allow non-English users to submit errors they see: on the community website, via LibreOffice command, on some kind of localized issuezilla?
  • Find a new, non-trivial use for LanguageTool. Describe it on the wiki.

6. Training: Tasks related to helping others learn more

  • Make a screencast that shows how to setup LanguageTool from git in Eclipse.
  • Make a screencast that shows how to properly setup LanguageTool in LibreOffice under Ubuntu (show the dreaded missing Java implementation loader dialog and then show how to fix the problem).
  • Create a page for new language maintainers that would explain how to start working on a language.
  • Create a 'cheat sheet' for the XML rule syntax
  • Create a Moodle course for rule creation.
  • Write a 'HOWTO' for .srx rules

7. Translation: Tasks related to localization

  • Translate GUI to Malayalam.
  • Update the Lithuanian translation.
  • Update the Italian translation.
  • Update the Catalan translation.
  • Update the Romanian translation.
  • Update the Icelandic translation.
  • Update the Swedish translation.
  • Update the Khmer translation.

8. User Interface: Tasks related to user experience research or user interface design and interaction

Easy:

  • Create a prototype of the web interface for LT.

Medium:

  • Create a prototype of a better configuration dialog for LanguageTool in HTML / JavaScript.
  • Work with LibreOffice developers to create a better grammar checking dialog.
  • Change the simple GUI of LanguageTool so that it is more usable.
  • Create a prototype of the wizard to create new rules for people that do not know the formalism.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License