Google Summer of Code 2013
From AbiWiki
(→Describe your organization) |
(→Rework units) |
||
(4 intermediate revisions not shown) | |||
Line 72: | Line 72: | ||
OpenMedSpel http://www.e-medtools.com/Hunspel_openmedspel.html is a open source GPL compable dictionary with over 50,000 medical terms. The project would be to develop a plugin that would simultanously spell check against OpenMedSpel and whatever language is set in the document. | OpenMedSpel http://www.e-medtools.com/Hunspel_openmedspel.html is a open source GPL compable dictionary with over 50,000 medical terms. The project would be to develop a plugin that would simultanously spell check against OpenMedSpel and whatever language is set in the document. | ||
+ | === Use Lasem instead of GMathView for equations === | ||
+ | Proposed by [[User:JeanB|Jean Brefort]] | ||
+ | |||
+ | We currently use an unmaintained library with a few annoying issues. It might be replaced by Lasem which has several advantages such as using the current font and is based on pango and cairo for rendering. The change should be optional in a first time since we need some new functionnalities only available in the next lasem-0.6 version. Also we need to fix the mathml to itex conversion since it is currently based on style sheets designed for latex, and not itex, resulting in strings that cannot easily be converted back to mathml after edition. | ||
+ | |||
+ | === Rework how we deal with dimensions === | ||
+ | Proposed by [[User:Hub|Hubert Figuière]] | ||
+ | |||
+ | AbiWord use in a lot of places value with units, called dimension. And it is a mess. We should rework the whole think so that: | ||
+ | * anywhere we expect a dimension we get a dimension. | ||
+ | * the unit is always preserved. | ||
+ | * changing the unit convert the dimension | ||
+ | * all the UI deal with it, handling locale as well | ||
+ | |||
+ | This start by creating a class to deal with Dimension, conversion, string for XML and string for UI display. This work involve dealing with all the aspect of AbiWord from the internal data model to UI to import and export filters. | ||
+ | The goal is to have less code, less special case, and have it as much as possible cross platform. | ||
= Application process = | = Application process = | ||
Line 203: | Line 219: | ||
*Dominic Lachowicz; domlachowicz AT gmail.com | *Dominic Lachowicz; domlachowicz AT gmail.com | ||
*Kathiravelu Pradeeban; kk.pradeeban AT gmail.com | *Kathiravelu Pradeeban; kk.pradeeban 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.== |
Current revision as of 15:56, 5 April 2013
Google Summer of Code 2013 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, 2010, 2011, and 2012.
Organizations may apply to the GSoC program between March 18th and March 29th, 2013. Students may apply to approved mentoring organizations between April 22nd and May 3rd, 2013 - please see the Google program page for specifics on the timeline!
Google Summer of Code 2013 program page
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
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.
Important note: during the 2010 SoC, a lot of work was done by student Sander Bogaert in the "gsoc2010tableimprov" branch to tackle table related problems. If you take up this project, it would be wise to investigate how and if this work should be merged first. The state of that branch is described by Sander in a recent mail:
It's a while ago I wrote or even had a look at this code ( shame on me ) but I'll try to describe where I left of as best as I remember. Three major things were accomplished during this summer; * Rectangular selection in Tables. Users no long have to select row-by-row. There is some strange bug left in this Uwog knows about ( ask him ). [uwog here: if you drag a table selection across your screen very fast, the redrawing will not be done properly; this might be related to our event dropping mechanism to prevent the queueing up of events] * Table-to-table copy and paste. When copying data from a table in AbiWord and pasting it in another cell it will create a nested table. I received email asking to change this so the data would be transferred cell-to-cell instead. This works in the branch, it's functionality is currently limited with some if checks because for some sort of selections it would make more sense of copying with a nested table. Ideally the contextmenu should offer both options. * The most important change in the branch is the fact that the back-end is prepared to handle multiple-range selections. Currently AbiWord has only 1 range in the document for a selection. In this branch it uses a vector of ranges. This allowed the above mentioned changes and with some small extra work regular shift & ctrl click behavior for selecting would be implemented. This isn't just in tables but also in text. It needs to be tested to detect and remove remaining bugs. I forgot why I thought at that time I needed to implement support for multiple ranges to enable implementing repeating table headers but maybe it becomes clear to anyone who has a look at the code. Good luck with your GSoC!
Speed ups for large documents
Proposed by: Martin Sevior
AbiWord support for very large documents (> 400 pages) has improved a lot but we still have a way to go. Currently editting at the start of a very large document, say over a 2000 pages, is painfully slow. This is because when ever a line is either created or destroyed while editting AbiWord shuffles the all the lines following the line to reflect this change. This project would be to investigate ways to either speed up _breakSection (which places places on a pages) or to run it in the background so that only onscreen changes are immediately reflected when new lines are created or destroyed.
Read and write SVG to odt
Proposed by: Martin Sevior
odt has native SVG support as does abiword. This project would be to enable all svg items in odt document to be fully preserved on import and export to odt.
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?
Qt Port for AbiWord
Proposed by Kathiravelu Pradeeban - and talk to Hub
A Qt port for AbiWord will help it run platform independent, and run on more platforms. This could be used to replace the Win32 and eventually the Cocoa front-end as it would be easier to maintain in the longer term.
This project is initially discussed with the Haiku community, and hence will be a project co-mentored by Haiku and AbiWord. Haiku is an operating system inspired by BeOS. AbiWord used to support BeOS, but the support was removed from the tree a long ago. With the Qt port, AbiWord is expected to run on Haiku and all other environments, making the AbiWord's reach wider.
OpenMedSpel plugin for AbiWord
Proposed by Martin Sevior
OpenMedSpel http://www.e-medtools.com/Hunspel_openmedspel.html is a open source GPL compable dictionary with over 50,000 medical terms. The project would be to develop a plugin that would simultanously spell check against OpenMedSpel and whatever language is set in the document.
Use Lasem instead of GMathView for equations
Proposed by Jean Brefort
We currently use an unmaintained library with a few annoying issues. It might be replaced by Lasem which has several advantages such as using the current font and is based on pango and cairo for rendering. The change should be optional in a first time since we need some new functionnalities only available in the next lasem-0.6 version. Also we need to fix the mathml to itex conversion since it is currently based on style sheets designed for latex, and not itex, resulting in strings that cannot easily be converted back to mathml after edition.
Rework how we deal with dimensions
Proposed by Hubert Figuière
AbiWord use in a lot of places value with units, called dimension. And it is a mess. We should rework the whole think so that:
- anywhere we expect a dimension we get a dimension.
- the unit is always preserved.
- changing the unit convert the dimension
- all the UI deal with it, handling locale as well
This start by creating a class to deal with Dimension, conversion, string for XML and string for UI display. This work involve dealing with all the aspect of AbiWord from the internal data model to UI to import and export filters. The goal is to have less code, less special case, and have it as much as possible cross platform.
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 April 22nd, 2013. Students wishing to work on AbiWord over the 2013 summer for USD $5000.00 should follow the steps outlined here. Google Summer of Code Student Guide provides more insights to the program.
A presentation on applying for Google Summer of Code focusing on AbiWord can be found here - Google Summer of Code Introductory Presentation - AbiWord
A final word of note. We have found that students who cannot devote 40 hours per week for the entire summer coding period are at significant risk of failing and wasting their own time plus the time of the mentor. If you cannot devote this amount of time to AbiWord GSoC think very carefully about whether you want to apply.
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 2013 website. Register as a student first then submit your application. http://www.google-melange.com/gsoc/homepage/google/gsoc2013
Mentoring Organization Application
Organization description
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 2013? What do you hope to gain by participating?
AbiWord has had a very rewarding experience with GSoC during the past 7 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 listed 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 30 successful projects and only two missing students over seven 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, Google Summer of Code 2010, Google Summer of Code 2011, and Google Summer of Code 2012 for information related to our involvement in GSoC.
Who will your organization administrator be? Please include Google Account information.
Martin Sevior; msevior AT gmail.com
What license(s) does your project use?
What is the URL for your ideas page?
http://www.abisource.com/wiki/Google_Summer_of_Code_2013
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. Providing patches/fixes to the known bugs is often encouraged and even expected from the applicants.
- 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.
Dominic Lachowicz; domlachowicz AT gmail.com
Who will your mentors be? Please include Google Account information.
- Martin Sevior; msevior AT gmail.com
- Dominic Lachowicz; domlachowicz AT gmail.com
- Kathiravelu Pradeeban; kk.pradeeban 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. Finally these mentors have ascertained that they have sufficient time to devote to mentoring students in 2013.
What is your plan for dealing with disappearing students?
We've had students disappearing twice 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.