Google Summer of Code 2010

From AbiWiki

(Difference between revisions)
Jump to: navigation, search
(Table improvements)
 
(25 intermediate revisions not shown)
Line 12: Line 12:
== Projects with an interested mentor ==
== Projects with an interested mentor ==
-
=== Speed up Table Performance ===
+
=== Add Hyphenation support ===
-
Proposed by: [[User:MartinSevior|Martin Sevior]]
+
AbiWord currently does not support automatic hyphenation. The hunspell dictionaries support this feature, so we could use that as well.
-
AbiWord's current Table layout algorithm was borrowed from [http://www.gtk.org GTK+]. This has proven to be very robust and comfortably handles merged cells and nested tables, but it gets slow for very large tables (noticeable with over 100 rows). This project would be to improve AbiWord's table performance so that it at least matches that of Firefox.
+
=== Get our Mac port up to speed ===
-
=== Start a Latex Importer ===
+
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: [[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. repeated rows allow the headings to be visible at the top of every page. This project would implement that.
-
AbiWord has an export to Latex plugin that supports most of AbiWord's features. This project would be to develop a latext importer that is sufficiently rich so that documents from AbiWord can be exported to Latex then imported back to AbiWord without data loss.
+
In addition the project would also implement rectangular selections inside tables. We now have the backend infrastructure to enable this. The second part of the project would be to implement it as a supported mouse behaviour.
-
=== Improve OOXML support ===
+
=== Dialog Implementations/Improvements ===
-
Proposed by: [[User:DomLachowicz|Dominic Lachowicz]]
+
Proposed by: [[User:MartinSevior|Martin Sevior]]
-
<small>(Also willing to mentor: Hubert Figuiere)</small>
+
AbiWord now has the ability to display paragraph borders and shading. These features can be imported from ODF and abw. The first part of this project would be to build a GUI dialog to set these properties from within abiword. The current frame and table dialogs have most of the features needed for this already. Preference will be given to students who can implement this feature in Windows. Extra preference will be given to students who implement this feature in all of Windows/OSX and Linux.
-
AbiWord now has good compliance with Microsoft's OOXML format but it can be improved. AbiWord has an importer and exporter. This project would be to improve this so that a wide range of documents can be exported from AbiWord, imported to Office 2007 then exported back into AbiWord with no data loss.
+
In addition there are new features in the table and frame backends. For tables these features include vertical alignment of cells, precise setting of cell heights and widths. For frames we now have ability to allow the height of the frame to be automatically increased to match the total height of the contents given a fixed width. (Elastic frame heights.)
-
You can include the "OOXML DrawingML" project in your proposal, but be aware that this will likely be a lot of work. You'd probably want to combine DrawingML support with tying up loose ends in the OOXML importer. You could ignore the OOXML export project entirely.
+
The second part of this project would be to expose these feature in the table and frame dialogs.
-
 
+
-
=== OOXML DrawingML import ===
+
=== Improve OOXML support ===
-
 
+
-
Proposed by: [[User:Hub|Hubert Figuiere]]
+
-
 
+
-
<small>(Also willing to mentor: [[User:DomLachowicz|Dominic Lachowicz]])</small>
+
-
 
+
-
Microsoft Office OpenXML includes DrawingML - a markup for drawings and diagrams. It is used extensively inside the Office 2007 application suite.
+
-
 
+
-
This project would consist of writing an AbiWord independent library to import DrawingML and render to Cairo (and SVG). As a practical example, importing using this library, should be implemented in AbiWord for use by the 'ooxml' importer.
+
-
 
+
-
As AbiWord is written in C++, Gnumeric is written in C, and we would like for this library to be usable by either project, we would like this library to have a C interface. You could write the library in C or C++, but it must have a C language interface.
+
-
 
+
-
The separate library must be licensed under (L)GPLv2+.
+
-
 
+
-
=== Revamp the style dialog ===
+
-
 
+
-
Proposed by: [[User:Hub|Hubert Figuiere]]
+
-
 
+
-
<small>(also willing to mentor  [[User:MartinSevior|Martin Sevior]] )</small>
+
-
 
+
-
The style dialog is currently awkward to use. It needs to be reworked. This project would involve the following tasks:
+
-
* redesign the UI
+
-
* reimplement the UI in a cross-platform way with at least a working front end. This might involve scratching a bit the UI abstraction layer to minimize the front end work.
+
-
 
+
-
Some possible ideas proposed by [[User:RobertStaudinger|Robert Staudinger]]:
+
-
 
+
-
http://www.abisource.org/~robsta/mockups/abiword-styles-simple.png
+
-
 
+
-
http://www.abisource.org/~robsta/mockups/abiword-styles-full.png
+
-
 
+
-
A fair bit of progress was made on this by Ryan Pavlik in 2008 GSoC but it requires more work to finish.
+
-
 
+
-
=== Redesign the templates ===
+
-
 
+
-
Proposed by: [[User:Hub|Hubert Figuiere]]
+
-
 
+
-
Using and editing AbiWord's templates is very awkward. The idea is to redesign it to be more user-friendly.
+
-
 
+
-
=== Port AbiWord for Windows to Unicode ===
+
Proposed by: [[User:DomLachowicz|Dominic Lachowicz]]
Proposed by: [[User:DomLachowicz|Dominic Lachowicz]]
-
As many of you already know Abiword in Win32 is an ANSI application. The idea is to port it to the Unicode API, which has the following benefits:
+
AbiWord now has good compliance with Microsoft's OOXML format but it can be improved. AbiWord has an importer and exporter. This project would be to improve this so that a wide range of documents can be exported from AbiWord, imported to Office 2007 then exported back into AbiWord with no data loss.
-
* Support on Windows for the many new "Unicode only" languages such as Hindi, Georgian, Nepali,Armenian, Gujarati, Hindi, Kannada, Konkani. We already have Abiword translated to Napali that is only a Unicode language and that currently does not work. And more will come.
+
You can include the &quot;OOXML DrawingML&quot; project in your proposal, but be aware that this will likely be a lot of work. You'd probably want to combine DrawingML support with tying up loose ends in the OOXML importer. You could ignore the OOXML export project entirely.
-
*  Improving international and multilingual support:
+
-
** Better integration with the features of the NT platform
+
-
** Better support of the Multilingual UI (MUI) features of Windows 2000/XP/Vista
+
-
 
+
-
Internally, AbiWord handles Unicode text quite well. Where it has problems (on Windows) is at the boundaries. The UI uses Microsoft's "ANSI" controls, rather than the "Wide Character" controls to display and enter text. These will need to be ported. AbiWord uses Microsoft's Uniscribe technology to display text in its editing area. There are some bugs in this code. Part of your proposal could be to improve that to support more scripts. You a good test might be to run Indic and East-Asian texts through it and fix the bugs you see. Other problems include handling "international" file names, drag & drop of documents with international names.
+
-
 
+
-
Jordi has done [http://abiword.com/mailinglists/abiword-dev/2007/Apr/0031.html some preliminary work] that he never had the time to complete. The project should resume from there.
+
-
 
+
-
Jordi's email mentions a lot of the work that's been done and is left to do. In it, he mentions 3 routes that this project could take. Your proposal should pick one and defend the decision.
+
-
 
+
-
=== Search bar  ===
+
-
 
+
-
Proposed by: ???
+
-
 
+
-
The idea is to have a search bar, like the Firefox one, at the bottom of Abiword that replaces the current search and replace dialog boxes. You could access to more advanced functionality using an Advance button that brings you to the advance functionality.
+
-
 
+
-
There was some discussion of this [http://www.abisource.com/mailinglists/abiword-dev/2004/Dec/0159.html a few years back] and most of the people seemed excited about the idea.
+
-
 
+
-
In your proposal, please document which platform/toolkit(s) you will be implementing this for (GTK+, Win32, Mac OSX).
+
-
 
+
-
This proposal is probably not long enough or interesting enough to be its own GSoC project. Students should combine it with another proposal, or think of other ways to improve AbiWord's search+replace experience. Some ideas there include:
+
-
 
+
-
* Find/replace text with a particular format (eg. bold, italic, red, etc.)
+
-
** Apparently, WordPerfect used to have this feature. You may want to use this as a starting point
+
-
* Find/replace with regular expressions. This would be a power-user feature. You can use [http://library.gnome.org/devel/glib/stable/glib-Perl-compatible-regular-expressions.html GRegex] in this project if you'd like.
+
-
* Pick some find/replace bugs from [http://bugzilla.abisource.com/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=AbiWord&component=Find%2FReplace&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= bugzilla]
+
-
* Add a "live search", such as implemented in the OLPC port of AbiWord (called Write). The search bar in Write finds the results while you type in your search query.
+
-
* Show a list with possible search terms while the user is inputting his search query. You can probably re-use the the 'live search' code for this to search through the document to find all the words the user might be interested in.
+
=== Reduce Flicker ===
=== Reduce Flicker ===
Line 117: Line 54:
  (Warning 55 MB ogg file!) http://abiword.com/~msevior/multipage.ogv
  (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.
+
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.
-
 
+
-
=== Port AbiWord to use gettext ===
+
-
 
+
-
Proposed by [[User:RobertStaudinger|Robert Staudinger]]
+
-
 
+
-
Currently AbiWord is using a custom strings file format for translatable text exposed in the user interface, even though translations done in the standardised "po" format. We would like to
+
-
 
+
-
* Change the build-system to create and install "mo" files.
+
-
* Adapt the string lookup classes to use gettext.
+
-
* Make glade files translatable.
+
-
* Provide i18n infrastructure for the plugins.
+
-
 
+
-
Bug reports:
+
-
* [http://bugzilla.abisource.com/show_bug.cgi?id=5893 Migrate to gettext]
+
-
* [http://bugzilla.abisource.com/show_bug.cgi?id=3203 Plugins don't support localization at all]
+
-
 
+
-
: Bonus points: If the whole thing could be abstracted to allow use MacOS X internationalization infrastructure on MacOS X, it would be awesome. Note that it is not a request to implement the backend. -- [[User:Hub|Hub]] 20:18, 1 March 2008 (CET)
+
-
 
+
-
=== Design of an api for embeding abiword as a widget in third party applications ===
+
-
 
+
-
Proposed by [[User:MartinSevior|Martin Sevior]]
+
-
 
+
-
This idea was proposed by Fabian Sturm but Martin Sevior or Tomeu Vizoso would mentor a student who undertook this project.
+
-
 
+
-
The project would involve a fair amount of research and design as well as code.
+
-
* Search for existing rich text widgets (in Gtk, Qt, MFC...)
 
-
* Compare the existing widgets apis and try to find out what works good and what not
 
-
* Compare different applications embedding a rich text widget and find out what was easy for the developer to achive and what was hard (e.g. look at tomboy, sugar write, gedit...)
 
-
* Make a proposal for an easy to use widget api based on the libabiwidget api
 
-
* Adapt libabiwidget api to this new/improved design
 
-
* Code small sample programs showing the different functions to use the widget (load/save documents, change text style from code, embed links etc.)
 
=== Add a testing framework ===
=== Add a testing framework ===
Line 170: Line 76:
This project would likely not last the entire summer. Students choosing it are encouraged to come up with additional projects on their own (eg. improve libwmf2's SVG output) or pair it with another project from this list (eg. OOXML DrawingML support).
This project would likely not last the entire summer. Students choosing it are encouraged to come up with additional projects on their own (eg. improve libwmf2's SVG output) or pair it with another project from this list (eg. OOXML DrawingML support).
-
=== Better support for borders and shadings ===
+
=== Improve ODF support ===
-
 
+
Proposed by [[User:MartinSevior|Martin Sevior]]
-
Proposed by [[User:RobertStaudinger|Robert Staudinger]]
+
-
 
+
-
Currently AbiWord supports a few options for styling background and borders of tables and text frames. We would like to
+
-
 
+
-
* Be able to support backgrounds and borders on every paragraph.
+
-
* Support additional border styles and effects like border shadow and rounded corners.
+
-
 
+
-
Bug report:
+
-
* [http://bugzilla.abisource.com/show_bug.cgi?id=1933 RFE - ability to do borders and shading would be useful]
+
-
 
+
-
A possibility would be using [http://www.ohloh.net/p/libccss libccss] for drawing.
+
-
 
+
-
[[User:RobertStaudinger|Robert Staudinger]] could mentor the libccss side of things, but would need a co-mentor for the AbiWord part.
+
-
 
+
-
== Projects that may lack an interested mentor ==
+
-
 
+
-
* Note: These projects have been suggested by non-mentors and may not have an interested mentor.  Feel free to use them to gain ideas or clarify your project, but be aware that they may require more work on your part to make sure they are approved.
+
-
 
+
-
 
+
-
=== ODF Pre-1.2 support in Abiword ===
+
-
 
+
-
Proposed by: Michiel Leenaars
+
-
 
+
-
With the next major version of ODF out soon, getting support for all the
+
-
cool new features of the spec ready is a worthy challenge. Most
+
-
importantly (as far as Abiword is concerned) this concerns metadata (in
+
-
RDF). With Ted Nelson-like ZigZag-features of content heritage coming up
+
-
on the horizon, Abiword would gain much from a smart interface to work
+
-
with metadata in text elements of documents that are imported or yanked
+
-
from elsewhere. Case in point: automated checking if the citations in a
+
-
document are still valid at the source of the document.
+
-
 
+
-
http://www.oasis-open.org/committees/download.php/31264/OpenDocument-v1.2-committeeDraft-01.odt
+
-
 
+
-
Other improvements to the ODT importer/exporter could also fall under this
+
-
project.
+
-
 
+
-
=== Integration of ODF translation workflow  ===
+
-
 
+
-
Proposed by: Michiel Leenaars
+
-
 
+
-
AbiWord is commonly used by people to make translations and
+
-
retranslations. Based on the odf2xliff and xliff2odf tools developed by
+
-
the Translate Toolkit
+
-
[[http://translate.sourceforge.net/wiki/toolkit/odf2xliff|odf2xliff]] a tight
+
-
integration should be made with Virtaal, which will allow translations
+
-
to be made much more efficient and (more importantly) stored and shared
+
-
in a so called translation memory. This is comparable to what Lokalize
+
-
is successfully doing within KDE.
+
-
 
+
-
=== Dual presentation mode (document code browser) ===
+
-
 
+
-
Proposed by: Michiel Leenaars
+
-
 
+
-
Although XML-based formats like AbiWord's native format and ODF are
+
-
readable and understandable, it is not very user friendly to have to
+
-
edit the code by hand continuously. Other editors like Wordperfect and
+
-
the browser add-in Firebug have a feature that Abiword could benefit
+
-
from having: they is able to show (a sligthly cosmetised) view of the
+
-
underlying document markup and the place in the XML tree at a secondary
+
-
presentation level, and within that mode on it have the ability to
+
-
combine edits in the default GUI editing mode with an XML presentation.
+
-
With that 'underwater view' on, debugging documents that have an issue
+
-
of some sorts becomes much easier and powerful.
+
-
 
+
-
Some work was done on this in the past [http://bugzilla.abisource.com/show_bug.cgi?id=2365]
+
-
but that approach might not be the right one.
+
-
 
+
-
=== Generic ODF library ===
+
-
 
+
-
Proposed by: Michiel Leenaars
+
-
 
+
-
The AbiWord project gave birth to the widely used [[libwpd.sf.net|libwpd]] library, a library
+
-
for importing WordPerfect documents. It is currently in use by OpenOffice.org,
+
-
KOffice and ofcourse AbiWord itself.
+
-
Recently an MS Works (.wps) importer was written to use the same generic
+
-
API libwpd provides to application developers. This means that every
+
-
application that can read WordPerfect documents using libwpd, can also
+
-
all of a sudden import MS Word document.
+
-
A neat idea would be to use this exact same API libwpd provides to applications for
+
-
reading ODF documents. This will give applications the option of having an alternative
+
-
ODF document loader, without having to change anything to the application itself.
+
-
The long term goal of this project could be the sharing of a generic ODF import
+
-
(and export) library between all major F/OSS word processors.
+
-
 
+
-
=== Enhancing the ClipBoard ===
+
-
 
+
-
Proposed by: Michiel Leenaars
+
-
 
+
-
The cut and paste mechanism of AbiWord is very basic. If you are
+
-
clipping between documents and/or applications, you are shifting
+
-
underlying code elements, images and sometimes even more complex
+
-
elements. In some cases you may want to cut HTML or styled ODF elements
+
-
in one application, and paste it in another. Having full support of at
+
-
least HTML and ODF markup on the clipboard, as well as having the
+
-
ability to edit the intermediate information (not unlike Emacs) before
+
-
it gets pasted, would vastly increase the usability of AbiWord in
+
-
integrated environments.
+
-
 
+
-
[[User:DomLachowicz|DomLachowicz]] 15:37, 24 March 2009 (CET) AbiWord already has full support of HTML and RTF markup on the clipboard. Its handling of complex elements is far from "very basic." ODF on the clipboard is a non-starter, unlike RTF, which is ubiquitous on Win32 and OSX.
+
-
 
+
-
=== XForms support in Abiword ===
+
-
 
+
-
Proposed by: Michiel Leenaars
+
-
 
+
-
XForms is a W3C standard that is the successor to regular web forms. It
+
-
really is a next generation mechanism that allows for a clean separation
+
-
between user input and event handling, so that forms filled into a
+
-
document can be sent to web applications, internal forms processors,
+
-
etc. This is why part of XForms is already part of the Open Document
+
-
Format. A better support for XForms within AbiWord would make it a much
+
-
more versatile tool.
+
-
 
+
-
=== Tag Cloud support ===
+
-
 
+
-
Proposed by: Michiel Leenaars
+
-
 
+
-
The modern way of a summary is a tag cloud/concordance graph a la
+
-
Wordle.net. This to a document in many cases makes way more sense than a
+
-
table of content or index - its like an instant summary based on the
+
-
actual text. It is used in so many web content systems that it is really
+
-
weird there is no Office suite that offers it for regular office
+
-
documents. The SoC project would work on an interface to control tag
+
-
clouds in documents it a little better than in web apps - say by setting
+
-
the amount of cloud items you want, have a user-editable list of words
+
-
you want to keep out (or add), add icons/image alternates, change the
+
-
weight of things you want to be more visible, drag and drop reordering
+
-
of cloud text,  font and styling preferences.
+
-
 
+
-
Reference: [http://oreilly.com/catalog/9780596527945/ Building Tag Clouds in Perl and PHP]
+
-
 
+
-
=== Build a plugin framework based on Eclipse ===
+
-
 
+
-
Proposed by: Michiel Leenaars
+
-
There is no unified extension space for Office suites. Yet extensions
+
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.
-
are likely to determine the next generation of Office applications, as
+
-
they currently do with Firefox and the rest of the competition. Eclipse
+
-
(with its huge developer base and broad support for now 57 programming
+
-
languages) is a prime candidate. IBM is already doing Eclipse in
+
-
Notes/Symphony. The project is to build an Eclipse based plugin system
+
-
into AbiWord that works with existing plugins, and possibly build some
+
-
exiting demonstration plugins like integration of Flickr images, Gmail
+
-
merge, OpenStreetMap lookup, etc.
+
-
http://symphony.lotus.com/software/lotus/symphony/plugin.nsf/home
 
= Application process =
= Application process =
Line 358: Line 121:
*Checkout abiword from our svn repository.
*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")
+
*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 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:
*The function "fileInsertGraphic" is called when the user chooses to insert a picture. Just before returning, add a debug statement:
Line 365: Line 128:
*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.
*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.
+
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 2010 website.  The direct link to the application is [http://socghop.appspot.com/gsoc/student/apply/google/gsoc2010 http://socghop.appspot.com/gsoc/student/apply/google/gsoc2010].
= Mentoring Organization Application =
= Mentoring Organization Application =
Line 373: Line 140:
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.
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 2009? What do you hope to gain by participating?==
+
==Why is your organization applying to participate in GSoC 2010? What do you hope to gain by participating?==
-
AbiWord has had a very rewarding experience with GSoC during the past 3 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 4 years. We hope to improve on our successes by attracting new talented developers to our organization.
==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 381: Line 148:
We've had a fantastic run so far and are really grateful for Google's support. We've had 14 successful projects and only one missing student over three 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.
We've had a fantastic run so far and are really grateful for Google's support. We've had 14 successful projects and only one missing student over three 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]] and [[Google Summer of Code 2008]] for
+
See [[Google Summer of Code 2006]], [[Google Summer of Code 2007]][[Google Summer of Code 2008]] and [[Google Summer of Code 2009]]for
information related to our involvement in [[:Category:Summer of Code|GSoC]].
information related to our involvement in [[:Category:Summer of Code|GSoC]].
==Who will your organization administrator be? Please include Google Account information.==
==Who will your organization administrator be? Please include Google Account information.==
-
Hubert Figuiere
+
Martin Sevior
==What license(s) does your project use?==
==What license(s) does your project use?==
Line 395: Line 162:
==What is the URL for your ideas page?==
==What is the URL for your ideas page?==
-
[http://www.abisource.com/wiki/Google_Summer_of_Code_2009 http://www.abisource.com/wiki/Google_Summer_of_Code_2009]
+
[http://www.abisource.com/wiki/Google_Summer_of_Code_2010 http://www.abisource.com/wiki/Google_Summer_of_Code_2010]
==What is the main development mailing list or forum for your organization?==
==What is the main development mailing list or forum for your organization?==
abiword-dev AT abisource.com ([http://www.abisource.com/mailinglists/abiword-dev/ Archives])
abiword-dev AT abisource.com ([http://www.abisource.com/mailinglists/abiword-dev/ 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?==
==What is the main IRC channel for your organization?==
Line 415: Line 213:
*Dominic Lachowicz; domlachowicz AT gmail.com
*Dominic Lachowicz; domlachowicz AT gmail.com
*Martin Sevior; msevior AT gmail.com
*Martin Sevior; msevior AT gmail.com
-
*Hubert Figuiere; hfiguiere AT gmail.com
 
-
*Robert Staudinger (backup mentor) robert.staudinger 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 06:13, 10 December 2010

Google Summer of Code 2010 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 and 2009.

Organizations may apply to the GSoC program between March 8th and March 12th, 2010. Students may apply to approved mentoring organizations between March 29, 2010, to April 9, 2010 - please see the Google program page for specifics on the timeline!

Google SoC 2010 program page

Contents

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.

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.

In addition the project would also implement rectangular selections inside tables. We now have the backend infrastructure to enable this. The second part of the project would be to implement it as a supported mouse behaviour.

Dialog Implementations/Improvements

Proposed by: Martin Sevior

AbiWord now has the ability to display paragraph borders and shading. These features can be imported from ODF and abw. The first part of this project would be to build a GUI dialog to set these properties from within abiword. The current frame and table dialogs have most of the features needed for this already. Preference will be given to students who can implement this feature in Windows. Extra preference will be given to students who implement this feature in all of Windows/OSX and Linux.

In addition there are new features in the table and frame backends. For tables these features include vertical alignment of cells, precise setting of cell heights and widths. For frames we now have ability to allow the height of the frame to be automatically increased to match the total height of the contents given a fixed width. (Elastic frame heights.)

The second part of this project would be to expose these feature in the table and frame dialogs.

Improve OOXML support

Proposed by: Dominic Lachowicz

AbiWord now has good compliance with Microsoft's OOXML format but it can be improved. AbiWord has an importer and exporter. This project would be to improve this so that a wide range of documents can be exported from AbiWord, imported to Office 2007 then exported back into AbiWord with no data loss.

You can include the "OOXML DrawingML" project in your proposal, but be aware that this will likely be a lot of work. You'd probably want to combine DrawingML support with tying up loose ends in the OOXML importer. You could ignore the OOXML export project entirely.

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:

Port librsvg away from GTK+ dependencies

A growing number of projects (including AbiWord) are interested in SVG support, but without dragging in GNOME/GTK+ dependencies. Your goal would be to split librsvg into 2 libraries:

  1. One that had a GTK+-free API
  2. One that preserved API and ABI compatibility with the existing library

This project would likely not last the entire summer. Students choosing it are encouraged to come up with additional projects on their own (eg. improve libwmf2's SVG output) or pair it with another project from this list (eg. OOXML DrawingML support).

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.


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 23rd, 2009. Students wishing to work on AbiWord over the 2009 summer for USD $4500.00 should follow the steps outlined here.

Google Guide to SoC applicants

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?
*Amount Requested:*
  (Put in $4500.00)

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 2010 website. The direct link to the application is http://socghop.appspot.com/gsoc/student/apply/google/gsoc2010.

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 2010? What do you hope to gain by participating?

AbiWord has had a very rewarding experience with GSoC during the past 4 years. We hope to improve on our successes by attracting new talented developers to our organization.

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 14 successful projects and only one missing student over three 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 and Google Summer of Code 2009for 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_2010

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?

irc://irc.gnome.org#abiword

Who will be your backup organization administrator? Please include Google Account information.

Dom Lachowicz; Marc Maurer; uwog AT uwog.net

Who will your mentors be? Please include Google Account information.

  • Marc Maurer; uwog AT uwog.net
  • Dominic Lachowicz; domlachowicz AT gmail.com
  • Martin Sevior; msevior AT gmail.com

What criteria did you use to select these individuals as mentors? Please be as specific as possible.

All of these individuals 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.

Personal tools