Summer of Code projects for GNU
This page has the project suggestions for GNU's participation in
Google Summer of Code 2010. (Project proposals for 2006, 2007,
2008, and 2009
The ideas here are listed in alphabetical order by project. Many
projects have more than one suggestion.
libextractor & libmicrohttpd
Prolog for Java -
- Contribute to the Caciocavallo Project.
Caciocavallo is a Toolkit written in order to easy the portability of
Java to new platforms for the OpenJDK Challenge Contest. We are
interested in students that can help us fix bugs and write test cases.
One project that is particularly challenging is to rewrite the focus
handling code. We are also interested in running JavaFX on top of
Cacio. Another taks would be to adapt the rendering manager in the JDK
in order to use different look and feel for Caciocavallo widgets and
for Swing ones.
- Revive the Escher project.
Escher is a pure java implementation of the client side of the
XProtocol and is the library behind the XPeer code in Classpath.
The project is not developed anymore but it still has its uses. We
would like to see efforts to fix the remaining bugs and to implement
the missing functionality, like completing the OpenGL subsystem for
example or porting all the constants used in the code to Java emums.
- Contribute to the IcePick project.
The IcePick webpage is here: http://icedtea.classpath.org/wiki/IcePick
We would like to have contributors on this project
CVMI is another OpenJDK Challenge project hosted here:
We would like to see work done on this project. A related task would
be to help porting gcj to use the OpenJDK class library.
Please see this separate page for GNU Denemo.
See also this to-do list for GNU Denemo.
Please see this separate
page for GNUstep.
- Further work on Guile Emacs integration (implementing elisp to the
extent that Guile can replace Emacs' elisp implementation—has to do
with compilers and Emacs hacking)
compiler, lazy languages like Nix's packaging language)
- Native compilation (many possibly implementations)
- Emacs Web Service. There are two existing projects (http://github.com/eschulte/simple-server and http://www.emacswiki.org/emacs/EmacsEchoServer) which provide some preliminary model to work on. Based on these projects, we intend to develop a web service that exposes Emacs functions and macros to any client (desktop or web client). This is required for web based semantic desktop (gnowser). The candidates are required to have elisp and CGI experience.
- Semantic Desktop. GNOWSYS can be used as a Triple Store, and is currently being developed to support collaborative ontology (systems) editing as well as creating applications by instantiating the developed ontologies. Sharing highly granular data (RDF triples) across applications is the central feature of Semantic desktops, and this can be achieved by developing such clients (either in gnowsys-mode of Emacs or as a gnome-gnowser). Depending on the expertize of the candidate we are looking for students with knowledge in pyGTK or elisp. Previous knowledge of RDF,OWL, XTM or other semantic web based applications will be an additional advantage.
- Visual Computing Studio. Developing a visual computing studio (IDE) based on the heterogeneous distributed computing model of GNOWSYS. We intend to develop a educationally useful programming workspace as found in Turtle Activity . Exposure to web service architecture, pyGTK and metaknowledge of structure of programs will be useful.
- Speed Optimization of writing and reading of GNOWSYS store. Benchmarking gnowsysApp_rc1 to detect bottlenecks and designing and implementing alternative parellelization of processing to enhance performance of GNOWSYS as a triple store. Very good knowledge of Python, postgresql, file system, and experience with handling large sets of data are preferred. Database optimization techniques like connection pooling will be required.
- Collaborative Concept Mapping Activity in Sugar with GNOWSYS as storage. A pyGTK based extension of the gnowser project to do refined concept mapping. Based on the codebase of Labyrinth Activity in Sugar, we intend to develop a full featured collaborative concept mapping application using GNOWSYS as a storage.
- Synchronization of Data between gnowsys serversTwo or more remote servers of GNOWSYS exchange messages between them, subscribe to parts of database and establish sync relationships (subscription). Automatic agent based synchronization should happen between the servers. This involves, determining the changes, messaging the changes to subscribed servers, and initiating transfer mechanisms using RDF based data exchange.
Good understanding of serialization of data, XML, RDF, and file transfer protocols, agent oriented services with good working knowledge in Python required.
Please discuss the projects in the email@example.com mailing list if necessary. If students come with their own ideas, please write about them in the mailing list.
What is the GNU Hurd?
The GNU Hurd is the GNU project's replacement for the Unix kernel. It is a
collection of servers that run on the Mach microkernel to implement file
systems, network protocols, file access control, and other features that are
implemented by the Unix kernel or similar kernels (such as Linux).
this separate page
for our project ideas, as well as
our student application form.
- Code "Decomposition of Algebraic Functions"
- Code "Polynomial Interpolation"
- Add support for "Mathematical Markup Language"
GNU libextractor is a library used to extract meta-data from files of
arbitrary type. The goal is to provide developers of file-sharing
networks or WWW-indexing bots with a universal library to obtain
simple keywords to match against queries.
The TODO file gives a rough general overview of things to be done. Especially additional plugins for common file formats would be appreciated.
GNU libmicrohttpd is a library that provides an embedded HTTP server as part of another application. It is small, cross-platform, reentrant and supports IPv6 and HTTP 1.1.
The team would like to receive students' own ideas on how to improve
both projects. We are also interested in applications or frameworks that build upon them, for example a library that makes web application development with libmicrohttpd easier (template/tag library) and/or helps with working around web security issues. Talk to us! You can find us on the IRC channel #gnunet
and on the libextractor / libmicrohttpd
Please see this
separate page for GNU
Please see this
page for our project ideas.
GNU Prolog for Java would like to mentor students for GSoC, but
doesn't have an ideas list together at the moment. Please see their web page for
Improve scripting support in GNU Screen. Currently, there is
some support for scripting
in lua and some support for scripting
in python. A summer of code student will be expected to extend
the scripting framework to provide greater range of functionalities
available to a script. Interested students are encouraged to take a
look at the work and the sample scripts in these repositories to get a
feel of the work involved. Students can work on adding support for
other scripting languages as well (e.g. perl, guile etc.).
- Augment SLIB's discrete-fourier-transform package
to work efficiently on non-power-of-two sized arrays.
Currently we need students who can help us in solving several issues,
Submitting ideas to this page
- If you are an eligible student and have an idea that is not listed
here, you should propose it
normally through the Google
Summer of Code web site (after applications are open). Please
discuss it with the package maintainers.
- If you are a GNU package developer, have an idea for a Summer of
Code project for your own package, and can mentor it yourself, please
email the idea at firstname.lastname@example.org and one
of the administrators will add it. (Simple HTML fragment in plain text
preferred.) Please also recruit a backup mentor and tell us who that
will be. Make sure that the description of your idea contains enough
information (perhaps in the form of pointers to other information or
mailing lists) for students to research the feasibility of them
implementing your idea. More
- In all other cases (e.g., you are a developer with an idea for
another package), please contact the maintainer for the package. If you
can find a mentor for the project (or, hopefully, can mentor it
yourself), then we will add it if it is feasible. The project must meet
the Summer of Code criteria; see the