Difference between revisions of "Summer of Code 2007"

From Apache OpenOffice Wiki
Jump to: navigation, search
m
(refer to 2008)
 
(97 intermediate revisions by 29 users not shown)
Line 1: Line 1:
Similarly to the [[SummerOfCode2006|last year]], OpenOffice.org would like to participate in the [http://code.google.com/soc/ Summer of Code] initiative sponsored by Google.
+
'''Please note that [[Summer of Code 2008]] started'''!
  
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 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.
+
Similar to [[Summer of Code 2006|last year]], [[OpenOffice.org]] is participating in the [http://code.google.com/soc/ Google Summer of Code](tm) initiative sponsored by Google.
  
For further general questions about the initiative Google prepared a [http://code.google.com/support/bin/topic.py?topic=10442 FAQ].
+
This page lists the 10 tasks that have been accepted from the [[Summer of Code 2007/proposals|proposals]] for this year. Students work with their mentors
 +
on the projects with a mid-term milestone in July until [http://code.google.com/support/bin/answer.py?answer=60325&topic=10729 August].
  
==The Tasks==
 
  
===Example entry===
+
=Accepted Tasks=
+
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
+
  
===Draw/Impress: SVG Import Filter===
+
==Calc==
  
[http://www.w3.org/Graphics/SVG/ SVG (Scalable Vector Graphics)] is a vector graphics format that describes 2D graphics in XML.
+
===Integration of R into Calc===
 
+
There's no native SVG import filter for OOo. There exists an [http://www.ipd.uka.de/~hauma/svg-import/ external one], but unfortunately it has very strong dependencies - [http://java.sun.com/javase/downloads/index.jsp Java 5.0], and [http://xmlgraphics.apache.org/batik/ 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 Draw API, and a lighweight [http://cairographics.org/libsvg libsvg library] exists (see [http://svn.gnome.org/viewcvs/ooo-build/trunk/patches/src680/svg-import.diff here]), but it needs a lot of work to be really usable.  Also libsvg does not seem to be too actively maintained, so maybe it would be desirable to use something other library than libsvg; but similarly to it, the solution should be lighweight.
+
 
+
More information is available in [http://artax.karlin.mff.cuni.cz/~kendy/blog/archives/monthly/2006-10.html#2006-10-02T17_14_44.htm 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
+
 
+
===Calc: Integration of R into Calc===
+
  
 
Create an add-on component that allows a Calc user to let the [http://www.r-project.org/ R environment] do calculations on data from Calc cells and put the results into the spreadsheet again.
 
Create an add-on component that allows a Calc user to let the [http://www.r-project.org/ R environment] do calculations on data from Calc cells and put the results into the spreadsheet again.
Line 53: Line 26:
 
: Niklas.Nebel at sun.com
 
: Niklas.Nebel at sun.com
  
===Calc: Watch Window===
+
: Leonard Mada
 +
: (on statistics and R syntax)
 +
: discoleo at openoffice.org
  
A Watch Window is a separate, small window that remains "on top" and enables users to monitor a selected set of cells, see [http://www.openoffice.org/issues/show_bug.cgi?id=28386 issue 28386].
+
; More Information
 +
: Check [http://www.11-55.org/ooblog/ Wojciech's blog] for regular updates.
 +
: OpenOffice.org wiki page: [[R and Calc]]
  
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.
+
==Framework==
  
* Required skills/knowledge: Java or C++
+
===Status bar control to display/change the language===
  
; Contact
+
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.
: dev@sc.openoffice.org
+
: Niklas.Nebel at sun.com
+
  
===Writer: RTF Generator===
+
* Required skills/knowledge: C++
 +
* Useful skills: Basic UNO API knowledge
  
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.
+
; Contact
 +
: dev@framework.openoffice.org,
 +
: Carsten.Driesner at sun.com
 +
: Thomas.Lange at sun.com
  
* Required skills/knowledge: C++, some knowledge about the Word file format would be a plus
+
; Mentor
 +
: Carsten Driesner
 +
: Thomas Lange
  
; Contact
+
; Student
: dev@sw.openoffice.org
+
: Lili Sun
: Henning.Brinkmann at sun.com
+
  
===Writer: Lotus WordPro filter===
+
==Graphics==
  
If you know something about the format of Lotus WordPro - here's the perfect task for you! Anything can be useful as a start, even a simple filter that just excerpts the pure text. A first patch is available but it doesn't work good enough until now.
+
===Draw/Impress: SVG Import Filter===
  
* Required skills/knowledge: C++, some knowledge about the WordPro file format
+
[http://www.w3.org/Graphics/SVG/ SVG (Scalable Vector Graphics)] is a vector graphics format that describes 2D graphics in XML.
  
; Contact
+
There's no native SVG import filter for OOo. There exists an [http://www.ipd.uka.de/~hauma/svg-import/ external one], but unfortunately it has very strong dependencies - [http://java.sun.com/javase/downloads/index.jsp Java 5.0], and [http://xmlgraphics.apache.org/batik/ Batik].  The goal of this task is to create a new implementation that does not require any too big libraries.
: dev@sw.openoffice.org
+
: Mathias.Bauer at sun.com
+
  
===Framework/Writer: Status bar control to display/change the language at the cursor position or the document language===
+
A proof of concept implementation written in C++ using the [http://wiki.services.openoffice.org/wiki/Uno UNO] [http://api.openoffice.org/docs/common/ref/com/sun/star/drawing/module-ix.html Drawing API] and a lighweight [http://cairographics.org/libsvg libsvg library] exists [http://svn.gnome.org/viewcvs/ooo-build/trunk/patches/src680/svg-import.diff 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 [http://wiki.services.openoffice.org/wiki/FastParser internal XML parser].
  
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. The control should be implemented using existing UNO APIs.
+
More information is available in [http://artax.karlin.mff.cuni.cz/~kendy/blog/archives/monthly/2006-10.html#2006-10-02T17_14_44.htm Kendy's blog].
  
* Required skills/knowledge: C++
+
* Required skills/knowledge: C++, XML knowledge is a plus
* Useful skills: Basic UNO API knowledge
+
  
 
; Contact
 
; Contact
: dev@framework.openoffice.org, Carsten.Driesner at sun.com
+
: Jan Holesovsky - kendy at openoffice org
: dev@sw.openoffice.org, Thomas.Lange at sun.com
+
: Fridrich Strba - fridrich_strba at openoffice org
  
===Framework: Shell Extensions for Desktop file search and showing meta data in windows explorer needs to be rewritten for Vista===
+
===[[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.
  
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.
+
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.
See [https://so-web.germany.sun.com/iBIS/servlet/edit.ControlPanel?tid=i71112 71112] and [https://so-web.germany.sun.com/iBIS/servlet/edit.ControlPanel?tid=i70944 70944] for further informations.
+
  
* Required skills/knowledge: C++
+
The engine will get the previous and next pages and should render the transition at given speed.
* Useful skills: Windows API knowledge
+
* Requirements: Windows Vista 32 Bit
+
  
; Contact
+
The participant should also implement at least 5 OpenGL transitions, rendered by the UNO component.
: dev@framework.openoffice.org, Andreas.Schluens at sun.com
+
 
 +
* 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==
  
===ODF Toolkit: Tools and best practice samples for ODF creation and manipulation===
+
===[[.net Module AODL: Forms and Fields implementation]]===
 +
=== 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.
 
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.
Line 118: Line 102:
 
: dev@odftoolkit.openoffice.org,  
 
: dev@odftoolkit.openoffice.org,  
 
: Dieter Loeschky at sun.com
 
: Dieter Loeschky at sun.com
 +
: Lars Behrmann at sun.com
  
===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.
+
==Framework==
  
See [[EclipseIntegration_ToDo#IDL_files_modification_assistance | the Todo task description]] for further informations.
+
===Improving UI editing / coupling===
  
* Required skills/knowledge: Java, Grammar & Compilers
+
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.
* Usefull skills: Eclipse API, JavaCC, UNO & UNO IDL
+
 
 +
* Required skills/knowledge: C++
 +
* Useful skills: courage, stickability, X-rated code reading
  
 
; Contact
 
; Contact
: dev@api.openoffice.org
+
: michael.meeks at novell.com
: CedricBosdo at openoffice.org
+
: hfiguiere at novell.com
  
===OOo connector for External IDE for OOo scripting languages===
+
==Porting==
  
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.
+
===[[MacOSX: Complete User Interface respecting Aqua Human Interface Guidelines]]===
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 :
+
*Concerns: OpenOffice.org 2.x for Mac OS X Aqua only
* 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
+
*Skills: Knowledge of languages C/C++ Mac OS X APIs and Application frameworks like Carbon
* Required skills/knowledge: java, python, UNO
+
* Usefull skills: Eclipse API, OOo API, IDE general knowledge
+
  
; Contact
+
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.
: dev@extensions.openoffice.org
+
: LaurentGodard@openoffice.org
+
  
 +
*Tasks:  some controls are already implemented, but some are still missing.
  
 +
The job consists in write the code and implement:
  
=== '''Mac OS X native port : complete User Interface respecting Aqua Human Interface Guidelines  (Aqua Only )''' ===
+
- tabs (implement and bind the TabitemValue class, using Carbon API)
  
*Concerns: OpenOffice.org 2.x for Mac OS X Aqua only
+
- spinbuttons (implement and bind  SpinbuttonValue class, using Carbon API)
  
*Skills: Knowledge of languages C/C++ Mac OS X APIs and Application frameworks like Carbon
+
- comboboxes (implement and use HICombobox)
  
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.
+
- listboxes (work already started)
  
*Tasks: some controls are already implemented, but some are still missing.
+
- texts in comboboxes / listboxes (better task definition to be completed)
  
The job consists in implement :  
+
- other types of controls: highlight, respect dimensions/spacing ..etc
  
- tabs ( implement and bind the TabitemValue class, using Carbon API )
+
- Windows background (using Aqua theme)
  
- spinbuttons ( implement and bind SpinbuttonValue class, using Carbon API )
+
;Proposed by: Eric Bachard
 +
;Contact: mac@porting.openoffice.org
 +
;Mentor:  Eric Bachard ( ericb at openoffice dot org )
  
- comboboxes ( implement and use HICombobox )
+
=== [[MacOSX: Address book integration]] ===
  
- listboxes ( work already started )
+
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.
  
- texts in comboboxes / listboxes  ( better task definition to be completed )
+
Concerns: OpenOffice.org 2.x for Mac OS X (both Aqua and X11 versions)
  
- other types of controls : highlight, respect dimensions/spacing ..etc
+
;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
  
- Windows background ( using Aqua theme ) 
+
;Tasks:
  
;Proposed by : Eric Bachard
+
Familiarize with the Mac OS X address book APIs
;Contact : mac@porting.openoffice.org
+
;ericb at openoffice dot org
+
  
===Writer: Better "Notes" functionality===
+
Familiarize with the current OOo Mozilla address book integration
 +
 
 +
Make a prototype for OOo Mac OS X address book integration
 +
 
 +
Document all produced code and aspects, Extend the principles to support docuemnt (text/media) Drag'n Drop.
 +
 
 +
;Contact
 +
mac@porting.openoffice.org
 +
 
 +
;Mentor:  Sebastien Plisson
 +
 
 +
== Writer ==
 +
 
 +
===Better "Notes" functionality: [[Notes2]]===
  
 
The "Notes" functionality in Writer could be better in terms of usability and does not look very appealing.  
 
The "Notes" functionality in Writer could be better in terms of usability and does not look very appealing.  
Line 190: Line 184:
 
: dev@sw.openoffice.org
 
: dev@sw.openoffice.org
 
: Mathias.Bauer at sun.com
 
: Mathias.Bauer at sun.com
 +
 +
; Resources
 +
[http://blogs.linux.ie/caolan/2007/03/12/notesmarginnotes-in-sw/ hopefully helpful illustrative patch]
 +
 +
[[Notes2]] project wikipage
 +
 +
===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
 +
 +
[[category:Summer of Code 2007]]

Latest revision as of 16:17, 29 February 2008

Please note that Summer of Code 2008 started!


Similar to last year, OpenOffice.org is participating in the Google Summer of Code(tm) initiative sponsored by Google.

This page lists the 10 tasks that have been accepted from the proposals for this year. Students work with their mentors on the projects with a mid-term milestone in July until August.


Accepted Tasks

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
More Information
Check Wojciech's blog for regular updates.
OpenOffice.org wiki page: R and Calc

Framework

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
Thomas.Lange at sun.com
Mentor
Carsten Driesner
Thomas Lange
Student
Lili Sun

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

.net Module AODL: Forms and Fields implementation

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
Lars Behrmann at sun.com


Framework

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

Porting

MacOSX: Complete User Interface respecting Aqua Human Interface Guidelines

  • 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
Mentor
Eric Bachard ( ericb at openoffice dot org )

MacOSX: Address book integration

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

Document all produced code and aspects, Extend the principles to support docuemnt (text/media) Drag'n Drop.

Contact

mac@porting.openoffice.org

Mentor
Sebastien Plisson

Writer

Better "Notes" functionality: Notes2

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

Notes2 project wikipage

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
Personal tools