Google Summer of Code 2013
You can use the following links to jump to sections that you're interested in:
Finish and deploy Rainy, the Tomboy note syncing server
The Tomboy note taking family of applications rely on a server to allow synchronization of notes between devices. However the only public server in existence run by Ubuntu as part of their Ubuntu One services has just been closed down. Additionally the Snowy server has gone unmaintained for years. Last year a project was started to replace it based on our new Tomboy Library and ServiceStack. MonkeySquare wants to run a public server to re-enable notes syncing across Tomboy applications for users.
Finish Rainy to a point where it will scale to, and beyond, our current userbase (estimated at 400.000 regular users). Ensure that each users notes are stored safely and separately on the server. Produce a simple web interface for Rainy that allows user sign up as well as letting MonkeySquare manage the service. Finally a deployed instance of the service on MonkeySquare resources that is at least of beta level quality.
C# and ServiceStack
Improve Tomboy on OS X and/or GNOME3
The Tomboy note taking application is currently available on Linux and Android (via Tomdroid). To make implementation of Tomboy on additionally platforms easy a Tomboy Library has been created.
Tomboy on OS X is currently at an alpha stage and needs to be completed, additionally the user experience needs to be redesigned.
Tomboy on GNOME3 will require porting the application from GTK#2 to GTK#3, as well as to GNOME3 platform libraries where needed. The Tomboy codebase should also be updated to use the Tomboy Library. The user experience should also be updated to be in line with the suggested design on for a GNOME3 notes application.
Tomboy must be delivered on at least one platform:
- For OS X: a 1.0 release quality application deployed in the Mac App Store that is feature comparable to the classic Tomboy experience.
- For GNOME3: A beta quality application delivered as a buildable tarball, implementing the GNOME3 notes design as closely to the Tomboy semantics as possible that relies on the GNOME3 platform and GTK#3.
C# and experience with the OS X and/or GNOME3 platform(s).
Improve binding support on the GNOME desktop
There is an ongoing effort to automate the generation of C# bindings on the desktop (gnome) by leveraging the new gobject introspection data that is now available for most libraries. GObject introspection data includes xml files and typeobject files (binary) describing the APIs a library exposes. The bindinator project takes this information and produces gapi files that can then be used with GTK# gapi tools for generating C# bindings.
The task is to finish the bindinator project so that it can generate bindings automatically, preferably with no manual intervention (if possible, sometimes some manual tweaking of bindings is needed to improve the api, fix corner cases or provide backward compatibility with existing bindings). The bindinator is currently at a point where it should be able to generate Webkit-Gtk bindings automatically.
The importance of this project cannot be overstated: having up to date bindings of all major libraries on the desktop is essential for developers to create apps with C# and keeping it alive and kicking in the Linux desktop and across platforms.
Have the core GTK libraries bound (it can be by finishing existing bindings in GTK# and adding new ones via the bindinator) plus Webkit-GTK and GStreamer libraries, with a process in place so that package owners and/or distro package managers can generate new bindings easily.
C# and XLTS, experience with GObject-Introspection would be useful as would knowledge of C sufficient to read the C codebase which is being bound.
Port F-Spot to OS X
The F-Spot photo management tool would be greatly improved by being made available on OS X. It would allow F-Spot to reach more users and be more widely available to developers.
A release of comparable quality to F-Spot on Linux running on OS X with integration with the OS X platform where it makes sense such as file selectors and integrating support for OS X features such as Lion style fullscreen mode.
C# and experience with the OS X platform.
Tomdroid is the Tomboy note taking application on Android. The project is enhancing the experience for Android users by fulfilling a number of outstanding feature requests to bring it line with Tomboy, enhancing the user experience and adapting Tomdroid to modern Android APIs and features.
- Implement support for Notebooks.
- Implement Swipe gestures, to do this Tomdroid needs to be rearchitected to use Fragments.
- Implement versioning of notes, working with the Rainy maintainer will likely be needed to implement this.
- Implementing support for features in Android 4.0+ such as MediaStore.
- The rich text editor needs enhancements to be more userfriendly. Additionally support for bulletpoint items is strongly desired.
- Rearchitecting Tomdroid to move the sync-manager to the background.
- Making a nice home-screen widget
A release of Tomdroid in the Google Play Store that supports as many of the features listed above.
Java and experience with the Android platform
Webkit based chat view for Smuxi
The Smuxi IRC/Jabber client would like to see a webkit based chat view implemented that allows:
- HTML/CSS theming.
- Dynamic backscroll (History being loaded on demand while scrolling).
- Optional media previews for images and websites.
- Images should be be expandable in chat messages, as should pastebin links.
- Live filter application allowing for e.g. hiding/showing events, this filter should be applied not just for incoming messages but also for the history.
- Implement webkit-sharp based ChatView
- Insertion of arbitrary messages (insert at line X, not just append)
- Test/port webkit-sharp to Windows / Mac OSX
A release of Smuxi implementing the WebKit based chat view on at least Linux with every feature listed above.
C# and experience with WebKit.
Improve library support in Banshee
The Banshee media player currently only supports handling and monitoring one library, meaning the users music collection can be rescanned and updated but not e.g. his audiobook collection. Additionally the video and audiobook libraries are very basic.
The library watcher needs to be updated to support multiple locations on the filesystem. When added audiobooks should automatically go to the audiobook library, videos to the correct video library, etc..
A beta quality release of Banshee with the features listed above on at least Linux based on the GTK#3 branch.
C# and GTK#, experience with SQLite and filesystem monitoring will be helpful.