Google Summer of Code 2011
From AbiWiki
MartinSevior (Talk | contribs) |
(→Implement an ePub filter) |
||
(17 intermediate revisions not shown) | |||
Line 15: | Line 15: | ||
AbiWord currently does not support automatic hyphenation. The hunspell dictionaries support this feature, so we could use that as well. | AbiWord currently does not support automatic hyphenation. The hunspell dictionaries support this feature, so we could use that as well. | ||
+ | |||
+ | === Improve Track Changes UI === | ||
+ | Proposed by: [[User:MartinSevior|Martin Sevior]] | ||
+ | |||
+ | At present AbiWord displays track-change information inline with the text. So for example deleted text appears crossed out within the body of the document. Other Word processors display this information as bubbles to the side of the text. This project would be to implement a better way to display track changes information in abiword. | ||
=== Get our Mac port up to speed === | === Get our Mac port up to speed === | ||
Line 24: | Line 29: | ||
Proposed by: [[User:MartinSevior|Martin Sevior]] | Proposed by: [[User:MartinSevior|Martin Sevior]] | ||
- | AbiWord's table support currently lacks the ability to make a selected row repeat at the top of every page the table is broken over. This useful for big tables with a heading above each column. | + | AbiWord's table support currently lacks the ability to make a selected row repeat at the top of every page the table is broken over. This useful for big tables with a heading above each column. Repeated rows allow the headings to be visible at the top of every page. This project would implement that. |
- | + | This includes both the backend work to enable AbiWord to display those tables and to fix the table dialog to enable the user to implement the feature. | |
- | + | ||
- | + | ||
+ | === Port AbiWord to gtk-3.0 === | ||
Proposed by: [[User:MartinSevior|Martin Sevior]] | Proposed by: [[User:MartinSevior|Martin Sevior]] | ||
- | + | This project would be to port AbiWord to Gtk-3.0 while at the same time keeping gtk-2.x support | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | === | + | === Speed up AbiWord for very large documents === |
- | + | Proposed by: [[User:MartinSevior|Martin Sevior]] | |
- | Proposed by: [[User: | + | |
- | + | ||
- | + | ||
- | + | One of the last improvements AbiWord needs to its layout engines is the ability to layout lines on off screen pages as a background process. At present AbiWord lays out the entire document below the entry point before allowing the user enter text on the current line. This makes AbiWord unusably slow on a very large (>1000 page) documents. This project would fix this by making offscreen line layout a background processes. | |
=== Reduce Flicker === | === Reduce Flicker === | ||
Line 67: | Line 64: | ||
* Will you use the existing samples in the [http://svn.abisource.com/abiword-testsuite/ abiword-testsuite svn module]? Will you add samples to it? | * Will you use the existing samples in the [http://svn.abisource.com/abiword-testsuite/ abiword-testsuite svn module]? Will you add samples to it? | ||
- | === | + | === Improve ODF support === |
+ | Proposed by [[User:MartinSevior|Martin Sevior]] | ||
- | + | AbiWord has rather good ODF support but it is not perfect. There are a collection ODF import/export bugs that need fixing. This project would be to fix these and improve our ODF compliance. | |
- | + | === Stabilize the trunk for AbiWord-3.0 Windows release === | |
- | + | Proposed by [[User:Pradeeban|Kathiravelu Pradeeban]] | |
- | This | + | This includes fixing remaining few dialogues, adding test cases for the unicode languages interface, fixing a few other open windows bugs (including the bug on smart quotes and lists) and stabilizing the trunk towards the new major release. |
- | + | * There are some open bugs. You can find some from the bugzilla bug repository [http://bit.ly/abiwordwin]. Please note that most of the interface related bugs have already been fixed in the trunk, hence no more valid. Come up with a list of bugs that you hope to fix, in the proposal. | |
- | + | ** You will start developing using MSVC-2008. Express Edition is fine [[Developing_AbiWord_on_Windows_using_Visual_C%2B%2B|Developing AbiWord on Windows using Visual C++]]. | |
+ | ** Stabilizing the trunk for the next major revision is the key. | ||
+ | * There are around 10 dialogs which still need fix [[Windows_Unicode_Port|Windows Unicode Port]]. | ||
+ | ** You will be expected to submit at least a patch along with the application. A screenshot with a fixed dialog in a unicode-only language interface will be preferred. | ||
+ | * Test cases for unicode interface differs from the project idea [[Google_Summer_of_Code_2011#Add_a_testing_framework|Add a testing framework]], as this needs to be focused on Windows Unicode interface, including RTL and BiDi text. | ||
+ | ** Come up with a timeline that leads towards the release, by end of the summer. | ||
- | |||
+ | === Improve import/export of maths === | ||
+ | Proposed by Jean Brefort | ||
+ | |||
+ | Implement and improve the import and export of maths to rtf and odt. Investigate import and export of maths to docx. While we can in principle import and export maths to odt there are many bugs. We cannot import/export maths to rtf or docx. The project would to improve and implement this filter. | ||
+ | |||
+ | === Implement support for svg snaphots for embedded objects === | ||
+ | Proposed by Jean Brefort | ||
+ | |||
+ | Implement support for svg snaphots for embedded objects such as | ||
+ | equations and charts whenever possible. Currently, when the math plugin | ||
+ | is not installed, equations are printed at low resolution. | ||
+ | |||
+ | === Implement an ePub filter === | ||
+ | |||
+ | [[ePub]] is a very popular format for displaying books. This project would first implement an exporter to the format. Then if time allows, an import filter as well. The ePub format is well documented and can reuse some of the container code we use for our odt and docs filters. | ||
= Application process = | = Application process = | ||
Line 87: | Line 104: | ||
Google start accepting student applications from March 28th, 2011. Students wishing to work on AbiWord over the 2011 summer for USD $4500.00 should follow the steps outlined here. | Google start accepting student applications from March 28th, 2011. Students wishing to work on AbiWord over the 2011 summer for USD $4500.00 should follow the steps outlined here. | ||
- | |||
[http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants Google Guide to SoC applicants] | [http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants Google Guide to SoC applicants] | ||
+ | |||
+ | A presentation on applying for Google Summer of Code focusing on AbiWord, for the starters can be found here. | ||
+ | [http://www.docstoc.com/docs/71909183/GSoC-2011-AbiWord Google Summer of Code - AbiWord] | ||
== The Application == | == The Application == | ||
Line 107: | Line 126: | ||
*Bio:* | *Bio:* | ||
Who are you? What makes you the best person to work on this project? | Who are you? What makes you the best person to work on this project? | ||
- | |||
- | |||
== Application Review == | == Application Review == | ||
Line 132: | Line 149: | ||
== Where do I actually apply? == | == Where do I actually apply? == | ||
- | Submit your application through the GSoC 2011 website. | + | Submit your application through the GSoC 2011 website. Register as a student first then submit your application. |
+ | [http://socghop.appspot.com/gsoc/homepage/google/gsoc2011 http://socghop.appspot.com/gsoc/homepage/google/gsoc2011] | ||
= Mentoring Organization Application = | = Mentoring Organization Application = | ||
Line 142: | Line 160: | ||
==Why is your organization applying to participate in GSoC 2011? What do you hope to gain by participating?== | ==Why is your organization applying to participate in GSoC 2011? What do you hope to gain by participating?== | ||
- | AbiWord has had a very rewarding experience with GSoC during the past 5 years. We hope to improve on our successes by attracting new talented developers to our organization. | + | AbiWord has had a very rewarding experience with GSoC during the past 5 years. we have many new feature implement and bugs fixed. In addition we have attracted enthusiastic new contributors. We hope to improve on our successes by making further improvements and by attracting new talented developers to our organization. In fact 2 of the mentors list in this application were previous GSoC students. We think this is a fantastic validation of both GSoC and our own organisation. |
==Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.== | ==Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.== | ||
Line 210: | Line 228: | ||
*Marc Maurer; uwog AT uwog.net | *Marc Maurer; uwog AT uwog.net | ||
*Martin Sevior; msevior AT gmail.com | *Martin Sevior; msevior AT gmail.com | ||
+ | *Kathiravelu Pradeeban; kk.pradeeban AT gmail.com | ||
+ | *Xun Sun; xun.sun.cn AT gmail.com | ||
+ | *Jean Bréfort; jean.brefort AT gmail.com | ||
==What criteria did you use to select these individuals as mentors? Please be as specific as possible.== | ==What criteria did you use to select these individuals as mentors? Please be as specific as possible.== | ||
- | + | Our mentors are highly-motivated, long-standing contributors to the AbiWord project. All of them have a deep first hand knowledge of the AbiWord codebase and are community members "in good standing". All have been involved in previous GSoC projects through proposing ideas, reviewing applications, and mentoring students. | |
==What is your plan for dealing with disappearing students?== | ==What is your plan for dealing with disappearing students?== |
Current revision as of 00:41, 20 May 2011
Google Summer of Code 2011 is now being planned. As in previous years, Google has generously sponsored students to work on Free Software projects. AbiWord plans to participate in the program, as it did in 2006, 2007, 2008, 2009 and 2010.
Organizations may apply to the GSoC program between February 28th and March 11th, 2011. Students may apply to approved mentoring organizations between March 28, 2011, to April 8, 2011 - please see the Google program page for specifics on the timeline!
Project Ideas
This is a list of project ideas with the name of a potential mentor. You can use these ideas as a basis for your proposal, but if you have an idea that is not in this list, feel free to propose it.
Projects with an interested mentor
Add Hyphenation support
AbiWord currently does not support automatic hyphenation. The hunspell dictionaries support this feature, so we could use that as well.
Improve Track Changes UI
Proposed by: Martin Sevior
At present AbiWord displays track-change information inline with the text. So for example deleted text appears crossed out within the body of the document. Other Word processors display this information as bubbles to the side of the text. This project would be to implement a better way to display track changes information in abiword.
Get our Mac port up to speed
AbiWord used to ship a Mac OSX version. This port has seen some maintenance over the last 2 years or so, but it was never "good enough" that we dared to make a public release again. This project would involve 1) determining the areas that need work to get it "release ready", and 2) actually doing that work :) With your help, we could have a public OSX release again at the end of this summer!
Table improvements
Proposed by: Martin Sevior
AbiWord's table support currently lacks the ability to make a selected row repeat at the top of every page the table is broken over. This useful for big tables with a heading above each column. Repeated rows allow the headings to be visible at the top of every page. This project would implement that.
This includes both the backend work to enable AbiWord to display those tables and to fix the table dialog to enable the user to implement the feature.
Port AbiWord to gtk-3.0
Proposed by: Martin Sevior
This project would be to port AbiWord to Gtk-3.0 while at the same time keeping gtk-2.x support
Speed up AbiWord for very large documents
Proposed by: Martin Sevior
One of the last improvements AbiWord needs to its layout engines is the ability to layout lines on off screen pages as a background process. At present AbiWord lays out the entire document below the entry point before allowing the user enter text on the current line. This makes AbiWord unusably slow on a very large (>1000 page) documents. This project would fix this by making offscreen line layout a background processes.
Reduce Flicker
Proposed by Martin Sevior
AbiWord does not use a double buffered graphics subsystem. This means that large scale updates pages show up as repaints of the screen. An example of this effect in action is shown in this ogg video demonstrating multipage view implemented in last years GSoC.
(Warning 55 MB ogg file!) http://abiword.com/~msevior/multipage.ogv
This project would be to investigate the use of an optimized offscreen drawing buffer. The idea would be to draw to an offscreen buffer and only update changed regions of the buffer so that small changes to the document (like pressing a single key) do not result in a complete copy from off screen to on screen. There was an unsuccessful attempt to implement this last year. Let's see if we can learn from the mistakes and complete it this year.
Add a testing framework
AbiWord needs a functional/regression test suite. You would propose testing frameworks, methodologies, key areas of the code that you would test, etc. You may want to address the following points in your proposal:
- How will you integrate the tests in the build system and code base?
- Does your proposed framework work on many operating systems or just one? Is it FOSS?
- Note: Most AbiWord developers code on Linux, so a Windows-only solution probably won't work.
- Possible frameworks: dogtail, CppUnit, Boost Test, Strongwind, glib testing, ldtp (+ ldtp a11y-test-suite)
- Will you use the existing samples in the abiword-testsuite svn module? Will you add samples to it?
Improve ODF support
Proposed by Martin Sevior
AbiWord has rather good ODF support but it is not perfect. There are a collection ODF import/export bugs that need fixing. This project would be to fix these and improve our ODF compliance.
Stabilize the trunk for AbiWord-3.0 Windows release
Proposed by Kathiravelu Pradeeban
This includes fixing remaining few dialogues, adding test cases for the unicode languages interface, fixing a few other open windows bugs (including the bug on smart quotes and lists) and stabilizing the trunk towards the new major release.
- There are some open bugs. You can find some from the bugzilla bug repository [1]. Please note that most of the interface related bugs have already been fixed in the trunk, hence no more valid. Come up with a list of bugs that you hope to fix, in the proposal.
- You will start developing using MSVC-2008. Express Edition is fine Developing AbiWord on Windows using Visual C++.
- Stabilizing the trunk for the next major revision is the key.
- There are around 10 dialogs which still need fix Windows Unicode Port.
- You will be expected to submit at least a patch along with the application. A screenshot with a fixed dialog in a unicode-only language interface will be preferred.
- Test cases for unicode interface differs from the project idea Add a testing framework, as this needs to be focused on Windows Unicode interface, including RTL and BiDi text.
- Come up with a timeline that leads towards the release, by end of the summer.
Improve import/export of maths
Proposed by Jean Brefort
Implement and improve the import and export of maths to rtf and odt. Investigate import and export of maths to docx. While we can in principle import and export maths to odt there are many bugs. We cannot import/export maths to rtf or docx. The project would to improve and implement this filter.
Implement support for svg snaphots for embedded objects
Proposed by Jean Brefort
Implement support for svg snaphots for embedded objects such as equations and charts whenever possible. Currently, when the math plugin is not installed, equations are printed at low resolution.
Implement an ePub filter
ePub is a very popular format for displaying books. This project would first implement an exporter to the format. Then if time allows, an import filter as well. The ePub format is well documented and can reuse some of the container code we use for our odt and docs filters.
Application process
AbiWord is primarily written in the C++ programming language (and to a lesser extent, C). Ideal applicants would have some experience in one or both of these languages and would be able to demonstrate this.
Google start accepting student applications from March 28th, 2011. Students wishing to work on AbiWord over the 2011 summer for USD $4500.00 should follow the steps outlined here. Google Guide to SoC applicants
A presentation on applying for Google Summer of Code focusing on AbiWord, for the starters can be found here. Google Summer of Code - AbiWord
The Application
*Name:* *Email:* *Project Title:* *Synopsis:* A short description of your project. *Benefits to the AbiWord (and/or other) project(s):* *Deliverables:* Quantifiable results. E.g. "At the end of my project, AbiWord's piece table will be 50 times faster." *Project Details:* A more detailed description of your project. *Project Schedule:* How long will the project take? When can you begin work? Do you know of any planned absences or other major conflicts (summer classes, vacations, etc.) *Bio:* Who are you? What makes you the best person to work on this project?
Application Review
Applicants are encouraged to discuss their project ideas on the mailing list, irc, or with individual mentors before submitting the proposal. However, it's unlikely that you'll get much useful feedback by posting your application to the mailing list.
Google's application submission system allows applicants to edit their proposals after they've been submitted. It also allows mentors to read your proposals and comment both publicly & privately on them. Our advice is to submit your proposals to the GSoC program as soon as you are reasonably comfortable with them. If we feel that your proposal is unclear or otherwise "lacking", we will ask you to edit it.
Additional Requirements
In addition, we require you to make a screenshot as described below:
- Checkout abiword from our svn repository.
- Make a debug build of the application. (Pass --enable-debug to configure, or when compiling on Windows, use Visual C++ build)
- The file abi/src/wp/ap/xp/ap_EditMethods.cpp is the file that describes the functions that are called from the Graphical User interface.
- The function "fileInsertGraphic" is called when the user chooses to insert a picture. Just before returning, add a debug statement:
UT_DEBUGMSG(("Image has been inserted!!\n"))
- Take a screenshot of the debug output from abiword showing this statement has executed.
- Attach a png image of this screenshot to your application email or post the screenshot on the web somewhere and include a link to it in your application.
More detailed building instructions are available in the "Compiling AbiWord" article. "Developing AbiWord on Windows using Visual C++" discusses building Abiword for Windows.
Where do I actually apply?
Submit your application through the GSoC 2011 website. Register as a student first then submit your application. http://socghop.appspot.com/gsoc/homepage/google/gsoc2011
Mentoring Organization Application
Describe your organization
The AbiSource community consists of a highly skilled group of people interested in, as our tagline states, bringing Word Processing to Everyone. We do this for example by making our software, AbiWord being our flagship product, available on as many (operating) systems as possible, and adapting it for use on the One Laptop Per Child system.
Why is your organization applying to participate in GSoC 2011? What do you hope to gain by participating?
AbiWord has had a very rewarding experience with GSoC during the past 5 years. we have many new feature implement and bugs fixed. In addition we have attracted enthusiastic new contributors. We hope to improve on our successes by making further improvements and by attracting new talented developers to our organization. In fact 2 of the mentors list in this application were previous GSoC students. We think this is a fantastic validation of both GSoC and our own organisation.
Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.
We've had a fantastic run so far and are really grateful for Google's support. We've had 17 successful projects and only one missing student over five years. Some of biggest improvements and new features have been implemented through the GSoC program. Our biggest complaint has been that not all students have been truthful and forthcoming with their availability.
See Google Summer of Code 2006 , Google Summer of Code 2007 , Google Summer of Code 2008 , Google Summer of Code 2009 and Google Summer of Code 2010 for information related to our involvement in GSoC.
Who will your organization administrator be? Please include Google Account information.
Martin Sevior
What license(s) does your project use?
What is the URL for your ideas page?
http://www.abisource.com/wiki/Google_Summer_of_Code_2011
What is the main development mailing list or forum for your organization?
abiword-dev AT abisource.com (Archives)
Does your organization have an application template you would like to see students use? If so, please provide it now.
*Name:* *Email:* *Project Title:* *Synopsis:* A short description of your project. *Benefits to the AbiWord (and/or other) project(s):* *Deliverables:* Quantifiable results. E.g. “At the end of my project, AbiWord’s piece table will be 50 times faster.” *Project Details:* A more detailed description of your project. *Project Schedule:* How long will the project take? When can you begin work? Do you know of any planned absences or other major conflicts (summer classes, vacations, etc.) *Bio:* Who are you? What makes you the best person to work on this project? *Amount Requested:* (Put in $5000.00)
In addition, we require you to make a screenshot as described below:
- Checkout abiword from our svn repository.
- Make a debug build of the application. (Pass --enable-debug to configure, or when compiling on Windows, use “ABI_OPT_DEBUG=1 make” in place of “make”)
- The file abi/src/wp/ap/xp/ap_EditMethods.cpp is the file that describes the functions that are called from the Graphical User interface.
- The function “fileInsertGraphic” is called when the user chooses to insert a picture. Just before returning, add a debug statement:
UT_DEBUGMSG((“Image has been inserted!!\n”))
- Take a screenshot of the debug output from abiword showing this statement has executed.
- Attach a png image of this screenshot to your application or post the screenshot on the web somewhere and include a link to it in your application.
More detailed building instructions are available in the “Compiling AbiWord” article.
What is the main IRC channel for your organization?
Who will be your backup organization administrator? Please include Google Account information.
Marc Maurer; uwog AT uwog.net
Who will your mentors be? Please include Google Account information.
- Marc Maurer; uwog AT uwog.net
- Martin Sevior; msevior AT gmail.com
- Kathiravelu Pradeeban; kk.pradeeban AT gmail.com
- Xun Sun; xun.sun.cn AT gmail.com
- Jean Bréfort; jean.brefort AT gmail.com
What criteria did you use to select these individuals as mentors? Please be as specific as possible.
Our mentors are highly-motivated, long-standing contributors to the AbiWord project. All of them have a deep first hand knowledge of the AbiWord codebase and are community members "in good standing". All have been involved in previous GSoC projects through proposing ideas, reviewing applications, and mentoring students.
What is your plan for dealing with disappearing students?
We've had a student disappear before. It's thoroughly unpleasant. We hope to minimize the damage done by a missing student by requiring routine code updates.
What is your plan for dealing with disappearing mentors?
This has not been a problem in previous GSoC programs. But we plan for each project to have at least one "backup" mentor who remains involved in each student's particular GSoC project, who shall assist in cases where the primary mentor cannot fulfill his/her obligations.
What steps will you take to encourage students to interact with your project's community before, during and after the program?
All of our mentors strongly encourage would-be students to get involved on both the mailing list and the IRC channel, where most of the developers hang out.
This year, our project list has generated a lot of interest before we'd even submitted it to Google. All of the mentors with their contact info listed on the proposal page have gotten at least 1 email from an interested student.
What will you do to ensure that your accepted students stick with the project after GSoC concludes?
AbiWord's main strength is its community. We strive to provide a fun, cooperative atmosphere with interesting and rewarding projects.