Difference between revisions of "Summer of Code 2007"

From Apache OpenOffice Wiki
Jump to: navigation, search
(External IDE connector for OOo scripting languages)
(refer to 2008)
 
(112 intermediate revisions by 31 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 taks 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
+
==Calc==
of the line.
+
 
A full description of the task should be here; one that will help to see that this task
+
===Integration of R into Calc===
is important, and interesting to hack on.  Alternatively it could be an exact link to
+
 
the description that is already in [[To-Dos]].
+
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.
+
 
* Required skills/knowledge: Language, technology1, technology2, ...
+
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.
+
 
  ; Contact
+
Some more thoughts on the subject have been collected at [[Statistical Data Analysis Tool#Third Party Library Integration]].
: dev@project.openoffice.org
+
 
: The.Mentor at organization com
+
* 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 [http://www.11-55.org/ooblog/ 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===
 
===Draw/Impress: SVG Import Filter===
Line 29: Line 63:
 
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.
 
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.
+
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].
  
 
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].
 
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].
Line 39: Line 73:
 
: Fridrich Strba - fridrich_strba at openoffice org
 
: Fridrich Strba - fridrich_strba at openoffice org
  
===Calc: Integration of R into Calc===
+
===[[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.
  
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.
+
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.
  
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.
+
The engine will get the previous and next pages and should render the transition at given speed.
  
Some more thoughts on the subject have been collected at [[Statistical Data Analysis Tool#Third Party Library Integration]].
+
The participant should also implement at least 5 OpenGL transitions, rendered by the UNO component.
  
* Required skills/knowledge: Some familiarity with statistical methods
+
* Reguired skills/knowledge: C++, OpenGL. familiarity with UNO is welcomed
  
; Contact
+
;Contact:
: dev@sc.openoffice.org
+
:mailto:dev@graphics.openoffice.org
: Niklas.Nebel at sun.com
+
:Thorsten Behrens - thb at openoffice org
 +
:Radek Doulik - radekdoulik at openoffice org
  
===Calc: Watch Window===
+
==ODF Toolkit==
  
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].
+
===[[.net Module AODL: Forms and Fields implementation]]===
 +
=== Tools and best practice samples for ODF creation and manipulation===
  
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.
+
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++
+
* Required skills/knowledge: Java or C# or Perl or C++ ...
 +
* Useful skills: ODF, XML
  
 
; Contact
 
; Contact
: dev@sc.openoffice.org
+
: dev@odftoolkit.openoffice.org,
: Niklas.Nebel at sun.com
+
: Dieter Loeschky at sun.com
 +
: Lars Behrmann at sun.com
  
===Writer: 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.
+
==Framework==
  
* Required skills/knowledge: C++, some knowledge about the Word file format would be a plus
+
===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
 
; Contact
: dev@sw.openoffice.org
+
: michael.meeks at novell.com
: Henning.Brinkmann at sun.com
+
: hfiguiere at novell.com
  
===Writer: Lotus WordPro filter===
+
==Porting==
  
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.
+
===[[MacOSX: Complete User Interface respecting Aqua Human Interface Guidelines]]===
  
* Required skills/knowledge: C++, some knowledge about the WordPro file format
+
*Concerns: OpenOffice.org 2.x for Mac OS X Aqua only
  
; Contact
+
*Skills: Knowledge of languages C/C++ Mac OS X APIs and Application frameworks like Carbon
: 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===
+
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.
  
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.
+
*Tasks:  some controls are already implemented, but some are still missing.
  
* Required skills/knowledge: C++
+
The job consists in write the code and implement:  
* Useful skills: Basic UNO API knowledge
+
  
; Contact
+
- tabs (implement and bind the TabitemValue class, using Carbon API)
: dev@framework.openoffice.org, Carsten.Driesner at sun.com
+
: dev@sw.openoffice.org, Thomas.Lange at sun.com
+
  
===Framework: Shell Extensions for Desktop file search and showing meta data in windows explorer needs to be rewritten for Vista===
+
- spinbuttons (implement and bind  SpinbuttonValue class, using Carbon API)
  
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.
+
- comboboxes (implement and use HICombobox)
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++
+
- listboxes (work already started)
* Useful skills: Windows API knowledge
+
* Requirements: Windows Vista 32 Bit
+
  
; Contact
+
- texts in comboboxes / listboxes  (better task definition to be completed)
: dev@framework.openoffice.org, Andreas.Schluens at sun.com
+
  
===ODF Toolkit: Tools and best practice samples for ODF creation and manipulation===
+
- other types of controls: highlight, respect dimensions/spacing ..etc
  
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.
+
- Windows background (using Aqua theme) 
  
* Required skills/knowledge: Java or C# or Perl or C++ ...
+
;Proposed by: Eric Bachard
* Useful skills: ODF, XML
+
;Contact:  mac@porting.openoffice.org
 +
;Mentor: Eric Bachard ( ericb at openoffice dot org )
  
; Contact
+
=== [[MacOSX: Address book integration]] ===
: dev@odftoolkit.openoffice.org,
+
: Dieter Loeschky at sun.com
+
  
===UNO specifications changes in Eclipse 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.
  
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.
+
Concerns: OpenOffice.org 2.x for Mac OS X (both Aqua and X11 versions)
  
See [[EclipseIntegration_ToDo#IDL_files_modification_assistance | the Todo task description]] for further informations.
+
;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
  
* Required skills/knowledge: Java, Grammar & Compilers
+
;Tasks:
* Usefull skills: Eclipse API, JavaCC, UNO & UNO IDL
+
 
 +
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
 
; Contact
: dev@api.openoffice.org
+
: dev@sw.openoffice.org
: CedricBosdo at openoffice.org
+
: Mathias.Bauer at sun.com
  
===External IDE connector for OOo scripting languages===
+
; Resources
 +
[http://blogs.linux.ie/caolan/2007/03/12/notesmarginnotes-in-sw/ hopefully helpful illustrative patch]
  
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.
+
[[Notes2]] project wikipage
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 :
+
===RTF Generator===
* 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
+
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: java, python, UNO
+
 
* Usefull skills: Eclipse API, OOo API, IDE general knowledge
+
* Required skills/knowledge: C++, some knowledge about the Word file format would be a plus
  
 
; Contact
 
; Contact
: dev@extensions.openoffice.org
+
: dev@sw.openoffice.org
: LaurentGodard@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