My application for Google's Summer of Code 2008 has been accepted. Basically, this means that Google will be paying me to program for the summer. (It also means that I better have my thesis more-or-less done soon, so that I'll have time to work on it.) Guess which tan line I will have at the end of the summer.
According to the official timeline, I'm supposed to start working on May 26. I'll probably do some setup and background work before then, though.
While I had been interested in Google's Summer of Code since it began, my school schedule (grad school at Waterloo means no summer break) prevented me from participating. This year, though, it seems like perfect timing for me, since I should be finishing up most of my work on my Ph.D. soon, but won't have a job yet (anyone want to hire me?).
The project that I'll be working on is improving GNUstep's integration with other desktop environment. GNUstep is an implementation of the OpenStep API, which is what is used by Apple's MacOS X. GNUstep doesn't (yet) have the glitz of MacOS X (although hopefully that will change, maybe with the aid of another GSoC project) but it is a very powerful and flexible system.
One of the problems of GNUstep, though, is that it doesn't quite cooperate as well with other *nix-based desktops, such as GNOME or KDE as it should. freedesktop.org was created to create standards and software for the *nix-based desktops so that they would all be able to cooperate. My project will focus on getting GNUstep to adhere to as many of the standards as I can.
A preliminary list of the ones that I'll be looking at (in approximate order that I'll be working on them) is:
- there are some window focusing issues that need to be fixed
- EWMH hints
- XDND
- startup notification
- XEmbed client support (so that GNUstep windows that are embedded in other apps follow the XEmbed spec — XEmbed embedder support would probably go in an extension)
- System Tray (requires XEmbed client support)
- gstreamer (for NSMovie, NSSound?, and related classes)
- avahi (implementing Apple's NSNetService API)
- .desktop file support (reading, and improved writing)
- icon naming (so that GNUstep can share icon themes with other desktop environments)
Of course, this list is subject to change. There are a lot of other standards that I could work on. It will all depend on discussions with my mentor.
Stay tuned for more updates.