Difference between revisions of "GNU application for Summer of Code 2011"

From LibrePlanet
Jump to: navigation, search
(edit guile foo)
(GNU Hurd: Add a description of the Hurd)
Line 171: Line 171:
  
 
==GNU Hurd==
 
==GNU Hurd==
 +
 +
The mission of the Hurd project is to create a general-purpose kernel suitable for the GNU operating system, which is viable for everyday use, and gives users and programs as much control over their computing environment as possible.
 +
 +
In traditional operating systems, most system functionality is provided by the kernel, and thus cannot be easily modified. The Hurd on the other hand -- following the GNU spirit of giving users more control over the software they use -- implements a unique design, which makes it feasible to change almost everything, down to the core features of the system.
 +
 +
While on other systems, such changes would require a lot of effort and special privileges to rebuild the system core, with the Hurd this is not necessary: the extensible architecture enables users (or applications) to simply modify their local system environment at any time, while leaving the rest of the system in place.
 +
 +
The most obvious example is the completely decentralized VFS mechanism: it can be extended in almost any imaginable way, simply by setting up suitable server processes (translators). Not only does this empower users, but also it helps application development: desktop environments such as GNOME for example, when making use of these possibilities, wouldn't need to create their own VFS mechanism -- they simply could extend the system VFS to suit their needs.
 +
 +
One major element of the design which enables this extensibility, is the use of a true multiserver microkernel architecture. The Hurd is quite unique in being the only general-purpose multiserver microkernel system in development today, that is nearly ready for everyday use, and offering almost perfect UNIX compatibility. (About 65% of all packages in the Debian repository are available for the Hurd.) The "general-purpose" and "everyday use" bits are decisive here: all other existing true microkernel systems are either research projects not nearly complete enough for actual use; or limited to embedded systems and other special purposes; or both.
 +
 
*http://gnu.org/s/hurd
 
*http://gnu.org/s/hurd
 
*Ideas page: http://www.gnu.org/s/hurd/community/gsoc/project_ideas.html
 
*Ideas page: http://www.gnu.org/s/hurd/community/gsoc/project_ideas.html

Revision as of 14:12, 11 March 2011

This page is intended to summarize information regarding GNU application for Google Summer of Code 2011]. Basically GNU acts as an umbrella organization for GNU packages. Larger packages such as GCC usually apply separately, but that is not a rule. It is up to the package maintainers whether they are applying as GNU or as the package itself.

Please feel free to add any useful information regarding GNU SoC11 application to this page.

When appropriate, all information here will be uploaded to http://www.gnu.org/software/soc-projects/ideas-2011.html

This year, Rodrigo Rodrigues da Silva (pitanga at gnu dot org) is handling the organization application for GNU and Jose Marchesi (jemarch at gnu dot org) will act as a backup.

Questions should be directed to the summer-of-code@gnu.org mailing list.

Ideas

Paste here your ideas or a link to your ideas page. If you need some inspiration on how it should like, please take a look at last year's ideas page

Example project 1

  • Link to package's home page
  • Link to mailing list for students who would like to get more information about ideas and application
  • Link to ideas page
  • Any other useful info

Example project 2

  • Link to package's home page
  • Link to mailing list for students who would like to get more information about ideas and application
  • Any other useful info

Describe idea 1

foo

Describe idea 2

bar

   END OF EXAMPLES

GNU LibreDWG

GNOWSYS

list to discuss their projects.

Collaborative Concept Mapping Activity in Sugar Learning Platform 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. The application is required to have three modes: mindMap-mode, conceptMap-mode and conceptMap-mode-with-storage-gnowsys. Python and pyGTK are prerequisites for doing this project.

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 memcache and pgpool will be an additional asset.

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.

Synchronization of Data between gnowsys servers

Two 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.

GNU CLISP

Finish the multithreading interface

Most of the work has already been done by the project developers. The only major thing left to be implemented are thread safe hash tables. Since hash tables are used internally in CLOS, it is not viable to make them lockable. The current implementation should be replaced with lock-free open-addressing ones like described here: http://www.azulsystems.com/events/javaone_2007/2007_LockFreeHash.pdf The hardest part in this reimplementation is integration with GC because of weak relations. For more information see doc/multithread.txt in the CLISP source distribution.

Embed CLISP into your favorite application

Embed CLISP into your favorite application, e.g., VIM, Firefox, Gnumeric, or OpenOffice. This might require some additional API in CLISP.

Mentors

  • Vladimir Tzankov
  • Sam Steingold
  • Bruno Haible
  • lkcl (for p2p-dns)

GNU Guile

CPAN for Guile

Guile needs a CPAN-alike. See the thread on guile-devel for more discussions. It looks like dorodango is a good start, but needs adapting for Guile, and it would be nice to use something stowfs-like locally as well.

Other ideas are possible; start a thread on guile-devel for more info.

Mentors

  • Andy Wingo

GNU Denemo

Denemo is a music notation editor for GNU/Linux and other operating systems that lets you rapidly enter notation for typesetting via the LilyPond music engraver. You can compose, transcribe, arrange, listen to the music and much more.

Denemo participated successfully in the SoC 2010 with one student.

  • Mentors
    • Richard Shann (Maintainer)
    • Nils Gey

Project 1: Create functions for all graphical LilyPond glyphs

Create a set of commands for the user to insert all possible LilyPond/Music glyphs, defined in the LilyPond font. These are nearly all musical signs of today and the past, common and uncommon. Adding them to Denemo will make it a comprehensive notation editor. Needed student skills: Essential: Extensive knowledge of musical notation and music theory. Knowledge of Scheme. Useful: Knowledge of LilyPond.

Project 2: Make midi/audio output realtime-capable

Denemo creates MIDI messages to use them with its internal Fluidsynth-sampler or send them out via the Jack Audio Connection Kit. This procedure is not realtime-safe yet. Graphical computation and controlling Denemo during playback creates playback-glitches. In order to fix this the midi/audio subsystem should run in its own realtime-thread and get priority. Needed student skills: Programming in C, experience in threads and realtime programming. Useful: Knowledge of MIDI and the Jack Audio Connection Kit.

IcedRobot

rms said IcedRobot may participate in GSoC under the aegis of GNU.

GNU Autotools

Project 1: Interfacing with a test protocol like TAP or subunit

Currently, Automake's simple tests as well as Autoconf's Autotest each use their own testing output. Automake-generated Makefiles could be consumers of the protocol for third-party testsuites. Automake-generated simple testsuites (TESTS) and Autoconf-generated Autotest testsuites could be producers.

This project would entail both investigating the possible protocols, advantages of either step, prototyping an implementation, and getting it ready to merge into the code. Each step on its own would already be useful on its own, and small enough to be completed within the given time frame.

Project 2: Exploit more features of GNU make in Automake

Automake could (optionally) exploit more features of GNU make, with an eventual goal of reimplementing some of the functionality in GNU make, both for efficiency and for more ease of use. When a project using Automake requires GNU make anyway, it would be nice if Automake could play along better with GNU make-specific notation in the Automake special variables (like foo_SOURCES etc).

GNU Hurd

The mission of the Hurd project is to create a general-purpose kernel suitable for the GNU operating system, which is viable for everyday use, and gives users and programs as much control over their computing environment as possible.

In traditional operating systems, most system functionality is provided by the kernel, and thus cannot be easily modified. The Hurd on the other hand -- following the GNU spirit of giving users more control over the software they use -- implements a unique design, which makes it feasible to change almost everything, down to the core features of the system.

While on other systems, such changes would require a lot of effort and special privileges to rebuild the system core, with the Hurd this is not necessary: the extensible architecture enables users (or applications) to simply modify their local system environment at any time, while leaving the rest of the system in place.

The most obvious example is the completely decentralized VFS mechanism: it can be extended in almost any imaginable way, simply by setting up suitable server processes (translators). Not only does this empower users, but also it helps application development: desktop environments such as GNOME for example, when making use of these possibilities, wouldn't need to create their own VFS mechanism -- they simply could extend the system VFS to suit their needs.

One major element of the design which enables this extensibility, is the use of a true multiserver microkernel architecture. The Hurd is quite unique in being the only general-purpose multiserver microkernel system in development today, that is nearly ready for everyday use, and offering almost perfect UNIX compatibility. (About 65% of all packages in the Debian repository are available for the Hurd.) The "general-purpose" and "everyday use" bits are decisive here: all other existing true microkernel systems are either research projects not nearly complete enough for actual use; or limited to embedded systems and other special purposes; or both.

Kawa

Kawa is best known as a Scheme implementation for the Java platform. It compiles Scheme to java bytecodes. It is also a general framework for implementing dynamic languages, and includes a full implementation of XQuery and the beginnings of implementations of Common Lisp and Emacs Lisp (JEmacs).

  • Mentors
    • Per Bothner (Maintainer)
    • Helmut Eller
    • Jamison Hope

Useful links and information

Form

   We need to fill a long form before submitting the application. Please help!

Organization Name

The GNU Project

Description (required)

TODO

Home page (required)

http://gnu.org

Main Organization License (required)

GNU GPLv3

Why is your organization applying to participate in GSoC 2011? What do you hope to gain by participating (required)

TODO

If accepted, would this be your first year participating in GSoC?

No

Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.

TODO

If your organization participated in past GSoCs, please let us know the ratio of students passing to students allocated, e.g. 2006: 3/6 for 3 out of 6 students passed in 2006.

2010: 14/14

Previous years: cannot access the data

What is the URL for your ideas page?

http://www.gnu.org/software/soc-projects/ideas.html

What is the main development mailing list for your organization? This question will be shown to students who would like to get more information about applying to your organization for GSoC 2011. If your organization uses more than one list, please make sure to include a description of the list so students know which to use.

summer-of-code at gnu dot org

What is the main IRC channel for your organization? (required)

gnu at irc dot freenode dot net

Does your organization have an application template you would like to see students use? If so, please provide it now. Please note that it is a very good idea to ask students to provide you with their contact information as part of your template. Their contact details will not be shared with you automatically via the GSoC 2011 site.

http://www.gnu.org/software/soc-projects/guidelines.html (not sure)

What criteria did you use to select the individuals who will act as mentors for your organization? Please be as specific as possible. (required)

TODO

What is your plan for dealing with disappearing students? (required)

TODO

What is your plan for dealing with disappearing mentors? (required)

TODO

What steps will you take to encourage students to interact with your project's community before, during and after the program? (required)

TODO

If you are a small or new organization applying to GSoC, please list a larger, established GSoC organization or a Googler that can vouch for you here.

N/A

If you are a large organization who is vouching for a small organization applying to GSoC for their first time this year, please list their name and why you think they'd be good candidates for GSoC here:

N/A, AFAIK.

Anything else you'd like to tell us?

TODO

Backup Admin (Link ID)

Jose Marchesi, AFAIK. Need Link ID.