Difference between revisions of "Summer of Code 2007"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (add project list)
m (add project list)
Line 429: Line 429:
 
; Contact
 
; Contact
 
: mailto:dev@sw.openoffice.org
 
: mailto:dev@sw.openoffice.org
* Fong Lin (pflin@novell.com)
+
: Fong Lin (pflin@novell.com)
* Jian Hua (jjiao@novell.com)
+
: Jian Hua (jjiao@novell.com)

Revision as of 05:02, 20 March 2007

Similarly to the last year, OpenOffice.org would like to participate in the Google Summer of Code(tm) initiative sponsored by Google.

This page is here to collect the suitable suggestions. So - if you have a task that is challenging enough, and are willing to mentor the task, feel free to add it below. Each entry should contain the task description, required skills, proejct mailing list for discussion and personal contact. Links to the To-Dos are appreciated provided that the task is well described there ;-)

We would be glad to support a few projects. Mentoring capacities are limited, so we depend on your dedication during the preparation of the detailed specification and description of the outcome.

For further general questions about the initiative Google prepared a FAQ.

The Task Proposals

===Example entry===

This is just an example - the real entry must not start with a space at the beginning
of the line.
A full description of the task should be here; one that will help to see that this task
is important,  and interesting to hack on.  Alternatively it could be an exact link to
the description that is already in To-Dos.

* Required skills/knowledge: Language, technology1, technology2, ...

; Contact
: dev@project.openoffice.org
: The.Mentor at organization com

API

UNO specifications changes in Eclipse Integration

This project aims at improving the way to develop OpenOffice.org extensions and UNO components using Eclipse. This project should help the developer to changes its specifications easily. This project could be parted into several smaller parts.

See the Todo task description for further informations.

  • Required skills/knowledge: Java, Grammar & Compilers
  • Usefull skills: Eclipse API, JavaCC, UNO & UNO IDL
Contact
dev@api.openoffice.org
CedricBosdo at openoffice.org

Base

Joins in dBase Queries

Queries to dBase files can currently contain one table only. Scope of the project is to enhance Base' built-in simple query engine to be capable of executing statements line SELECT table1.field1, table2.field2 FROM table1, table2. The dBase driver, the text/csv driver, and the Spreadsheet driver would all benefit from this extension.

Be prepared to dig around here before starting the project, the project touches low-level core implementations, including some heavy-to-read STL stuff, so be prepared to invest some time before writing the first line of code.

  • required skills C++, SQL knowledge
  • useful skills: Lexx and Yacc
  • Contact: mailto:dev@dba.openoffice.org
  • Mentor: Ocke Janssen - Ocke.Janssen at Sun.Com

Dialogs with Form Functionality

When creating a form, the user always needs to bother with a Writer document. Very often, this is much too oversized. It would be sufficient to have a simple dialog which contains all the data access controls.

The advantage would be to not slay the user with things she does not bother – a writer document offers a lot of possibilities which are not relevant for a form. In some cases, a full writer document does even contradict to what users expect from a form – one thing to mention here is that documents are always freely sizable, which is nothing you expect from a carefully designed form, where controls are placed at concrete positions and have a fixed size.

The project is to - extend the dialog runtime engine to (optionally) include data-aware form controls - create a form designer for dialog-based forms (similar to the existing Basic Dialog IDE) - implement persistence of dialog-based forms - embed dialog-based forms into database documents (.odb)

Depending on more fine-grained planning, it might become apparent that not all of this can be done in the scope of a Google Summer of Code project, and reasonable milestones need to be defined.

  • required skills C++, UNO
  • useful skills: familiarity with OOo's database access and form API, as well as OOo's toolkit API
  • Contact: mailto:dev@dba.openoffice.org
  • Mentor: Frank Schönheit - Frank.Schoenheit at Sun.Com

Embed Derby into OpenOffice.org Databases

OpenOffice.org Base features an abstract mechanism to embed database backend files into OOo databases (.odb). Currently, this is implemented for HSQLDB, which is used as OOo's default database engine.

To allow this feature for other engines, one must:

  • virtualize the engine's file access, so that it re-routes all its file operations through an abstract API.
  • implement this API on the OOo Base side

The project is to do those implementations for Apache Derby database.

  • required skills Java, C++
  • useful skills: OOo's database access API, OOo's component technology (UNO)
  • Contact: mailto:dev@dba.openoffice.org
  • Mentor: Ocke Janssen - Ocke.Janssen at Sun.Com

Calc

Integration of R into Calc

Create an add-on component that allows a Calc user to let the R environment do calculations on data from Calc cells and put the results into the spreadsheet again.

This should include a dialog to select input parameters and options, and allow results to be values or graph images. Note that the incompatible licenses (R is under GPL) have to be taken care of, possibly by starting R as a separate process.

Some more thoughts on the subject have been collected at Statistical Data Analysis Tool#Third Party Library Integration.

  • Required skills/knowledge: Some familiarity with statistical methods
Contact
dev@sc.openoffice.org
Niklas.Nebel at sun.com
Leonard Mada
(on statistics and R syntax)
discoleo at openoffice.org

Watch Window

A Watch Window is a separate, small window that remains "on top" and enables users to monitor a selected set of cells, see issue 28386.

This could be implemented as an add-on component with a modeless dialog containing the list of watched cells as well as the UI to add or remove cells.

  • Required skills/knowledge: Java or C++
Contact
dev@sc.openoffice.org
Niklas.Nebel at sun.com

Unit Testing Framework for Optimization Solver

The Optimization Solver component needs a unit-testing framework for its linear optimizer. This task would involve collecting a load of test cases (small and large) with known solutions, and write an automated unit-testing program for the linear portion of the optimizer code.

  • Required skills/knowledge: C++
Contact
dev@sc.openoffice.org
kyoshida at novell dot com
jody at novell dot com

Additional AutoFilter Functionality

Add core and user interface support for additional forms of filtering

  • Date based filters (eg current year/quarter)
  • Multiple items without falling back on logical OR.
  • Statistical filters (eg within N stddev of mean)
  • Required skills/knowledge: C++, Familiarity with OOo frameworks.
Contact
mailto:dev@sc.openoffice.org
jody at novell dot com

Move Older Spreadsheet formats into an UNO Component

Support for several formats still lives in the core calc module, and bloat it with little used functionality. Moving the antiquated filters into a distinct component would be good introduction to UNO and the spreadsheet code. If time permits the new component could have support for other simple spreadsheet formats, such as Applix.

  • Required skills/knowledge: C++, Familiarity with OOo frameworks.
Contact
mailto:dev@sc.openoffice.org
jody at novell dot com

Extensions

OOo connector for External IDE for OOo scripting languages

This project will solve the problem of lack of IDE for scripting languages in OOo. Scripts can be seen as macros in various languages and are complementary to Extensions. Actually, only OOoBasic has its IDE embedded in OOo. Javascript and Beanshell have limited ones and python nothing. To avoid implementing different IDE for various languages into OOo, the proposed choice is to provide a connector to any external IDE

The project is dived into 2 complementary parts :

  • defining and implementing common tools at OOo side to put the scipts at the correct place and manage OOo scripts menus
  • implement an Eclipse extension as an IDE that could handle scripts in python language, using the previously defined OOo tools.
Requirements
  • Required skills/knowledge: java, python, UNO
  • Usefull skills: Eclipse API, OOo API, IDE general knowledge
Contact
dev@extensions.openoffice.org
LaurentGodard@openoffice.org

Framework

Shell Extensions for Desktop file search and showing meta data in windows explorer needs to be rewritten for Vista

Vista changed his mechanism to integrate those shell extensions incompatible. Extensions valid for Win98/2000/XP doesnt work any more. A set of new interfaces was designed. But they are available on Vista only. So OOo has to support two sets of shell extensions: one set for Win98/2000/XP and a new set for Vista and might following windows versions. For this project the new Vista extensions has to be implemented only. See 71112 and 70944 for further informations.

  • Required skills/knowledge: C++
  • Useful skills: Windows API knowledge
  • Requirements: Windows Vista 32 Bit
Contact
dev@framework.openoffice.org, Andreas.Schluens at sun.com

Status bar control to display/change the language

Currently the Writer lacks means to display the language in use. There's also no easy way to change the language as the user has to use the menu. A status bar control would help to solve these problems. It should help to determine about the language used at the cursor position or the document. The control should be implemented using existing UNO APIs.

  • Required skills/knowledge: C++
  • Useful skills: Basic UNO API knowledge
Contact
dev@framework.openoffice.org, Carsten.Driesner at sun.com
dev@sw.openoffice.org, Thomas.Lange at sun.com

Improving UI editing / coupling

Currently all dialogs (along with most translated strings) are stored in a rather unusual binary resource file format, that has not had much love in the last decade. We need to write some new code that separates the process of designing & laying out the UI from the code - to allow UE to make our UI more beautiful, and allow future re-factoring. The existing Basic GUI dialog editor and it's XML format should be re-used, a simple C++ compatibility API created, and a number of dialogs converted to the new format.

  • Required skills/knowledge: C++
  • Useful skills: courage, stickability, X-rated code reading
Contact
michael.meeks at novell.com
hfiguiere at novell.com

Graphics

Draw/Impress: SVG Import Filter

SVG (Scalable Vector Graphics) is a vector graphics format that describes 2D graphics in XML.

There's no native SVG import filter for OOo. There exists an external one, but unfortunately it has very strong dependencies - Java 5.0, and Batik. The goal of this task is to create a new implementation that does not require any too big libraries.

A proof of concept implementation written in C++ using the UNO Drawing API and a lighweight libsvg library exists here, but it needs a lot of work to be really usable. Another problem is that libsvg does not seem to be too actively maintained; so the real implementation should use OOo's internal XML parser.

More information is available in Kendy's blog.

  • Required skills/knowledge: C++, XML knowledge is a plus
Contact
Jan Holesovsky - kendy at openoffice org
Fridrich Strba - fridrich_strba at openoffice org

Impress: OpenGL rendered transitions

The goal is to add 3D transitions to the Impress application. Transition is an animation where one page is visible in the beginning and another in the end. It is used during presentation slideshow to switch pages.

In the process of implementing OpenGL transitions an UNO API should be added to slideshow code, so that OpenGL transitions engine might be created as standalone UNO component. Current transitions should be refactored to another UNO component.

The engine will get the previous and next pages and should render the transition at given speed.

The participant should also implement at least 5 OpenGL transitions, rendered by the UNO component.

  • Reguired skills/knowledge: C++, OpenGL. familiarity with UNO is welcomed
Contact
mailto:dev@graphics.openoffice.org
Thorsten Behrens - thb at openoffice org
Radek Doulik - radekdoulik at openoffice org

ODF Toolkit

Tools and best practice samples for ODF creation and manipulation

We already have some code snippets in Java and C# and looking for help to extend these tool sets or to provide tool sets in other languages. These tool sets are designed to offer basic ODF functionality even outside of OO.o.

  • Required skills/knowledge: Java or C# or Perl or C++ ...
  • Useful skills: ODF, XML
Contact
dev@odftoolkit.openoffice.org,
Dieter Loeschky at sun.com

Porting: Mac OS X native port

Complete User Interface respecting Aqua Human Interface Guidelines (Aqua Only)

  • Concerns: OpenOffice.org 2.x for Mac OS X Aqua only
  • Skills: Knowledge of languages C/C++ Mac OS X APIs and Application frameworks like Carbon

Original OpenOffice.org vcl widgets are not Aqua HIG compliant, and we need to implement all controls, respecting Aqua Human Interface Guidelines, some will use HIView, or HITheme or even other part of Carbon API.

  • Tasks: some controls are already implemented, but some are still missing.

The job consists in write the code and implement:

- tabs (implement and bind the TabitemValue class, using Carbon API)

- spinbuttons (implement and bind SpinbuttonValue class, using Carbon API)

- comboboxes (implement and use HICombobox)

- listboxes (work already started)

- texts in comboboxes / listboxes (better task definition to be completed)

- other types of controls: highlight, respect dimensions/spacing ..etc

- Windows background (using Aqua theme)

Proposed by
Eric Bachard
Contact
mac@porting.openoffice.org
ericb at openoffice dot org

Mac OS X native printing (Aqua only)

Concerns: OpenOffice.org 2.x for Mac OS X Aqua only

Objective: currently, the native printing implementation is missing on Aqua port and needs to be implemented.

The objective is to use the same box users have in any Mac application.

Skills: Knowledge of languages C/C++ Mac OS X APIs and Application frameworks like Carbon and /or Cocoa

Tasks:

Familiarize with the Mac OS X printing APIs

Familiarize with the current OOo printing API

Expected: Write code to Implement native printing with Aqua version of OpenOffice.org:

Contact
mac@porting.openoffice.org
fheckl at openoffice dot org
Proposed by
Florian Heckl
Mentor
Florian Heckl

Mac OS X Address book integration (Aqua / X11)

Synopsis: OOo currently is integrated with the Mozilla address book but not with the native Mac OS X address book. This is annoying for Mac OS X user. For better system integration it would be desirable to integrate with the Mac OS X address book.

Concerns: OpenOffice.org 2.x for Mac OS X (both Aqua and X11 versions)

Skills
Knowledge of languages C/C++, Mac OS X APIs and Application frameworks like Carbon or Cocoa for instance, knowledge of the Mac OS X address book APIs
Tasks

Familiarize with the Mac OS X address book APIs

Familiarize with the current OOo Mozilla address book integration

Make a prototype for OOo Mac OS X address book integration

Contact

mac@porting.openoffice.org

Mentor
Florian Heckl

VBA

Word macro compatibility

Recently Sun and Novell announced to pool resources to provide VBA macro compatability see here.

Currently work in the project is concentrated on providing Excel support by

  • providing the framework for the compatibiltiy api via a plugable component
  • modifying the basic engine to support more compatibility features
  • porting the helperapi code (for excel) to c++ (see. here & here)

Tasks

  • extend the base framework by developing helper objects and implementations to be used by both the excel and writer compatibility object implementations
  • port the existing (word) helper api objects from Java to C++

Required skills/knowledge

  • C++
  • Java

useful skills:

  • knowledge of OOo's writer access API
  • knowledge of OOo's component technology (UNO)
  • experience with VBA macros and Word VBA api

Mentor/Contact

  • noel.power at novell dot com

Writer

Writer: Better "Notes" functionality

The "Notes" functionality in Writer could be better in terms of usability and does not look very appealing.

  • Required skills/knowledge: C++
Contact
dev@sw.openoffice.org
Mathias.Bauer at sun.com
Resources

hopefully helpful illustrative patch

MS Works Import Filter

Unlike its proprietary derivatives, OpenOffice.org lacks MS Works import filter. The creation of MS Works import filter is one of functionalities requested by our users. There is a basic import filter work started and the result is to be found in CWS wpsimport01. This filter, based on recently started libwps[1] library is offering only limited number of features converted. It is desirable to build on this work and improve this library/filter so that the quality meets industry standards.

  • Required skills/knowledge: C++, solid knowledge of MS Works wordprocessing document file-format and of libwps library.
Contact
mailto:dev@sw.openoffice.org
fridrich_strba at openoffice.org
freuter at novell.com

RTF Generator

The current RTF export of OpenOffice.org is not as good as the export to the Word (.doc) format. Parsing the generated Word format stream with a Word tokenizer and handing over the generated events to an RTF generator would lead to an RTF export filter with the same quality as the binary Word export filter. Remark: the tokenizer itself isn't complete today but in its current state covers enough parts of the Word format to make this a valuable project for the planned time span.

  • Required skills/knowledge: C++, some knowledge about the Word file format would be a plus
Contact
dev@sw.openoffice.org
Henning.Brinkmann at sun.com

Logging framework

During the import/export process from alien file formats there might be some features which can not be mapped entirely. The goal of this project is to provide a loggin framework for the new domainmapper of the writer filter project, which allow the domainmapper to notify the user of such mapping problems.

  • Required skills/knowledge: C++
Contact
mailto:dev@sw.openoffice.org
Florian Reuter (freuter at novell.com)
Fridrich Strba (fridrich_strba at openoffice org)

UOF import filter

Specification for the Chinese office file format based on XML (UOF for short) is a National Standard of the People’s Republic of China. The open source project " ODF‑UOF Converter" hosted by Peking University have been finished in October, 2006. More information is available in http://odf-to-uof.sourceforge.net/index.html.

The goal of this project is to provide interoperability with UOF documents.

Tasks
  • Make a prototype of UOF import filter for OOo.
Required skills/knowledge
  • C++
  • knowledge of ODF, UOF
  • knowledge of OOo's xml filter
Contact
mailto:dev@sw.openoffice.org
Fong Lin (pflin@novell.com)
Jian Hua (jjiao@novell.com)
Personal tools