Google Summer of Code 2007/Projects
The program has been completed in 2007. The information here is purely informational
Projects for Google's Summer of Code 2007
This is the list of project ideas for 2007.
Please see Google Summer of Code 2007 for application requirements.
(We will flesh these out later.)
XP Cairo graphics class
Our gtk drawing engine currently draws into a regular gdk pixel buffer. If instead we draw onto a cairo canvas we can employ the new gtk print method, which will replace the depreciated gnome-print. In addition, it allows us to do sub-pixel character positioning which will significantly improve the quality of our on screen text representation.
D-BUS remote control
D_BUS has emerged as the standard way to access out-of-process components and has acquired a significant uptake in both the GNOME and KDE communities. AbiWord has a very modular design which makes it relatively easy to access useful features via opaque interfaces which blend well into the D_BUS remoting methodology. This project would actually implement the D-Bus bindings.
Improved Pango graphics
Our internationalized drawing methods rely heavily on the pango library. This project would be to fully test this with various complex scripts, find failures and bugs and fix them.
This project would implement a "comment" feature, which enables users to place comments over regions of text which are visible on screen but do not actually interfere with the document and are invisible when printed.
This feature was worked on in 2007. See Annotations.
MS XML support
We do not currently support this new file format from Microsoft. However given their huge user base it is likely to become a requested feature sometime soon. This project would be to implment filetrs to import and export to this format.
This feature was implemented in 2007. See OpenXML Import
Integration with LinguComponent's grammar checker and/or KDE's Sonnet
We current use "link-grammar" for our grammar checker backend. Unfortunately link-grammar is very slow for long sentences and lacks many features. This project would be investigate other possible grammar checkers and to implement then as alternatives to link-grammar.
Another attempt to revive dashboard
(I'll check with Joe Shaw to find out why this failed)
dashboard is a program that attempts to automatically find relevent documents and text pieces to the context of your current work. The Beagle desktop search project grew out of the initial implementation of dashbaord. AbiWord has a plugin that implements the dashbaord front end but unfortunately dashboard itself has become rather stale. The project would be to revive dashboard and complete the AbiWord interface to it.
Speed up table operations.
AbiWord employs the Gtk algorithm for table layout. While this is very robust it becomes rather slow for large tables. This project would be investigate alternative algorithms and to implement something faster for abiword.
Implement PieceTable speedups using fancy red/black tree
More AbiCollab work (destructive testing (discover failure modes), more backends, XPize it.)
AbiCollab is a cool feature that allows users to connect AbiWord applications and to immediately see editting changes changes in each others documents. AbiCollab works to first order, but at this point in time it has not been thoroughly tested. This project would be to search for failure modes of AbiCollab and to fix them.
This feature was worked on. See AbiCollab
More input/export filter work. (The rtf filter could use some loving)
AbiWord has a variety of import/exporter filters. Getting them all to work perfectly is an open-ended task. This project would to continue to extend and improve them. In particular we do not current import or export equations to RTF format. This would be an extremely useful extra feature for AbiWord.
Liberate OO.o's MS Word document exporter.
OpenOffice.org has a very good export to binary MS Word format feature. This project would be to see if this can be liberated from the OO.o codebase and turned into a general purpose library. It could then be reused in AbiWord or any other GPL'd application that needs this feature.