Ideas

Contents

  1. Device Driver Creator
  2. Ubuntu "System" Restore and Backup utility
  3. "Truly" System Wide Proxy
  4. Automatic client-server authentication for puppet
  5. Ubuntu One desktopcouch
  6. Proxy-safe repository format
  7. Apt multiarch
  8. Harvest Improvements
  9. Plugin for Accerciser to create Mago application wrappers automatically
  10. Testdrive Front End
  11. Déjà Dup improvements (was "Home User Backup Spec")
  12. Upstart compatible services-admin
  13. Clipboard Improvements
  14. Sound theme creator (and sound improvements)
  15. Splash screen customization
  16. Nautilus Improvements
  17. Thunderbird/Lightning GNOME Integration
  18. Launchpad Offline Bug Client
  19. GNOME centralized file sharing administration
  20. Hardware device manager and hardware database
  21. Automated optimistic merging and testing of new upstream releases
  22. Guided Ubuntu bug fixing with Bazaar
  23. Kubuntu File Sharing
  24. Profile boot time and memory usage
  25. Language Selector
  26. Ubuntu One KDE client
  27. Package Manager Improvements
  28. usb-creator Improvements
  29. creating Wubi migration to a dedicated partition
  30. Add RDP support to Vinagre
  31. Add XDMCP support to Vinagre, get running in GDM
  32. Implement an Archive Crawler
  33. Qt 4 Quickly, Quidgets
  34. The "DesktopOne" Audio Experience
  35. Quickly and importing snippet
  36. Quickly and QA learning
  37. Quickly factoring boiler plate
  38. Font settings improvements
  39. Package set views in Launchpad Translations
  40. Full Launchpad Translations API
  41. Native support for OpenOffice.org translations format in Launchpad Translations
  42. Full native support for Mozilla translations format in Launchpad Translations
  43. Native support for XML documentation in Launchpad Translations
  44. Adding POT template generation support for layouts other than intltool in Launchpad Translations
  45. Improve MuseScore playback
  46. Nanny Improvements
  47. Login Page Media Controller

Device Driver Creator

  • Suggested by: Amreesh Tyagi (not available to mentor)

  • Description of project: I am having a idea of creating a separate IDE for building device drivers in linux. Using this IDE anyone(who knows some device drivers basics) can build and insert his/her drivers for his/her own hardware. The only thing a developer has to know is "How to make drivers in LINUX". This IDE can provide I/O memory map, I/O port map, interrupts and shared interrupts and other informations needed for creating drivers. It can be further divided into separate modules like drivers for storage devices, wired networking, wireless networking, sound devices, display devices etc.

Ubuntu "System" Restore and Backup utility

  • Suggested by: Rohit Saraf (not available to mentor)

  • Description of the project: The main goal is to provide an option of creating restore points, and then restoring to that point at any future time. In some cases, an update/upgrade may create a problem. This will help users get rid of that problem. This will make ubuntu easier to use. Also, an option to backup the existing installation to a DVD and restore it from a DVD will make the user experience even better.

"Truly" System Wide Proxy

  • Suggested by: Rohit Saraf (not available to mentor)

  • Description of the project: The main goal is to provide a relief to the users who are unable to use all applications due to proxy authentication and also to the developers who need to add support for proxy authentication in each application. A better way would be to leave all these issues at the system level. So proxy authentication will be at system level and the application would not be able to know about it. Just like setting up a basic and lightweight transparent proxy server at the system level which would authenticate the proxy.

Automatic client-server authentication for puppet

  • Name of mentor: Nicolas Valcarcel

  • Description of the project: The main goal of ubuntu is being an easy to use distribution ready for everyone, this goal have been reached on the desktop and we are working on making the server user experience better with puppet which is great but still has work to be done. We are looking forward to be able to generate a token/password that will passed to the cloud images when they get generated on demand so the puppet client gets authenticated with the server and there is no need to manually accept them. For this the CSR needs to be extended to be able to send a token/password to the server, and the server to have a way to generate it and accept it. An optional side project will be to create a way to pass this token/password to the image when it gets generated.

Ubuntu One desktopcouch

  • Name of mentor: Elliot Murphy

  • Description of the project: A core part of Ubuntu One is the desktopcouch system, built on top of the CouchDB document-oriented replicating database. This is a system rich with opportunities for a student to work on an interesting project that integrates with the modern web/cloud. Some ideas: working on a generic history browser/conflict resolution tool for CouchDB documents; work on a hosting scheme for CouchApps (serving a html/js/css directly out of couchdb); integrating some popular desktop application with desktopcouch so it's data can be replicated between machines; integrating chrome bookmark sync with couchdb; designing and building a commenting system so files synced with ubuntu one can have comments and tags stored in couchdb. And many more ideas if you don't like those!

Proxy-safe repository format

  • Name of mentor: Robert Collins

  • Description of the project: Fixing the filesystem coherency requirements apt has to permit better caching logic is another thing that would be awesome. This may already be done upstream; I'm not sure. Anyhow, the thing is that apt has pairs of files (e.g. Releases and the signatures) and a hierachy that are all tied together by hashes; the more files there are the more chance that a squid or similar cache in the middle (even ones that the user doesn't know of) will cache skew between these files.
  • Difficulty: Medium. This project will require understanding of HTTP caching, the APT archive format (today) and implementation of changes to the existing toolchains - apt-repository, apt-get at a minimum - to read from the new format that the student will develop. A successful project will deliver a new format ready to be used by Ubuntu including a migration plan.

Apt multiarch

  • Name of mentor: Michael Vogt

  • Description of the project: Implement multiarch support in apt

Harvest Improvements

  • Name of mentor: Daniel Holbach

  • Description of the project: Harvest was ported to Django, which made the code more maintainable. Unfortunately Harvest is a bit slow right now which needs to change, also is the mainpage not really useful. There's also a couple of other bugs which will be good to get fixed.

Plugin for Accerciser to create Mago application wrappers automatically

  • Name of mentor: Ara Pulido

  • Description of the project: Accerciser, the a11y browser for GNOME, has a plugin architecture that, in the past, has been used to generate dogtail and LDTP code. The project will be the creation of a plugin for Accerciser that will generate Mago application wrappers, selecting on the accessible applications in Accerciser. This functionality would make Mago scripts writing much easier.
  • Check Mago and Accerciser sites for more information on the projects.

  • This project requires Python knowledge and will require to learn GNOME accessibility technology.

Testdrive Front End

  • Name of mentor: Dustin Kirkland

  • Selected student: Andres Rodriguez

  • Description of the project: Testdrive is a project that makes it very easy to download and run the latest daily Ubuntu development snapshot in a virtual machine. Actually, it can be configured to download and run any URL-access ISO in a virtual machine. But the primary goal is to provide a very simple method for allowing non-technical Ubuntu users to test and provide feedback on the current Ubuntu release under development. It is written in Python, but has only a command line interface. This project would consist of constructing a python-gtk frontend graphical user interface for Testdrive.

Déjà Dup improvements (was "Home User Backup Spec")

  • Name of mentors: David Bensimon & Michael Terry

  • Difficulty: Medium
  • Description of the project: Déjà Dup (Launchpad Homepage) (GNOME Homepage) has been proposed to be the default backup utility for GNOME. This project requires knowledge of, and ability to code in Vala (or have experience in C# and willingness to take on Vala code).

Tasks to be completed by the chosen GSoC student includes:

Upstart compatible services-admin

  • Name of mentor: David Bensimon

  • Difficulty: Hard
  • Description of the project: services-admin was removed from Ubuntu 9.10 and 10.04 and was replaced with instructions to change system file names to avoid a service from running. Although this may be simple for a developer to do, there is no graphical tool for users to easily manager their services/servers/daemons. To complicate, there is a transition between sysV init scripts and upstart jobs, consideration should be given to support both types of services. A replacement to services-admin should aim to create a graphical utility comparable to Apple's "Sharing" System Preference, which allows you to turn services on/off, view information abut the service and and change settings graphically (instead of using config files).
  • ucsa (Ubuntu Centralized Service Administrator) spec

Clipboard Improvements

  • Name of mentor: David Bensimon James Westby

  • Difficulty: Medium
  • Description of the project: Many users coming from a Windows or Mac background are shocked by the behavior of the clipboard (releasing copied data (wiping itself clean) when the source program is closed). This project attempts to rectify the situation. Requires a student who is either involved with X.org developments (to fix the issue in X) otherwise the student would need to go through the programs reported as being affected and submit patched for each (See Bug #11334).

  • james_w has also noted the following two links which may explain what is currently done or what needs to be done. irc logs gnome 2.12 release notes

Sound theme creator (and sound improvements)

  • Name of mentor: David Bensimon Daniel T Chen

  • Difficulty: Medium
  • Description of the project: The ability to allowing the user to have custom sounds was removed in karmic. GNOME sound themes are a good idea, but are badly implemented/documented and a lack of utilities do not allow users to simply create a sound theme. It is safe to say that sound themes are buggy, are changing and have not taken off yet. This project aims to (1)create a utility to make sound themes and (2) allow users to specify per event sound files.
    • (1) In a sound theme, there are 100+ possible events that can have a sound. This utility should allow the user to assign sound files to each. It will then output a folder containing a index.theme file and a stereo folder with all the sounds (converted to .oga format if needed).
    • (2) gnome-volume-control would need to be modified to allow custom sounds for the most common events. Although buggy, the direction gnome-volume-control was taking in 8.10 was correct. In Ubuntu 9.04, gnome-volume-control replaced with a more restrictive interface.

Splash screen customization

  • Name of mentor: David Bensimon

  • Difficulty: Hard
  • Description of the project: Graphical application to create splash screens, custom throbber and animations. The ability to navigate, preview and activate splash screens is important. Adding xsplash themes should be simplified for the general public.

Nautilus Improvements

  • Name of mentor: David Bensimon

  • Difficulty: Hard
  • Description of the project: This project aims to improve nautilus in many ways, making it more resistant to failures as well as making it more useful. Allocating space before copying, allows a copy to happen without running out of space due to other processes that may be filling up the disk. Checking all the files to be copied before they are copied and resolving file type (special files) or naming conflicts (special chars or conflict in capitalization) allows a surprise-free/wait-free copy. This includes making nautilus resistant to inter-filesystem name errors (such as copying foo.bar and FOO.BAR from an ext4 drive to a FAT32 drive) by bringing any issues to the user (proposing renaming) before the copy process starts. Currently, the user must babysit the copy process. If the user is not at his computer and a copy stops in the middle of a large transfer, to tell you there is an error, the rest of the copy will pause until that issue is resolved. If there have been any errors/dialogs presented, the user should get a final dialog when the copy is over telling him what changes were made during the copy process. The file manager should also have a way to calculate and display the size of directories in detailed list view.

Thunderbird/Lightning GNOME Integration

  • Name of mentor: David Bensimon

  • Difficulty: Medium
  • Description of the project: Both GNOME and Mozilla shot down the idea of developing a Thunderbird gnome applet. This project aims to create a better integration of Mozilla Thunderbird (Mail Client) and Lightning (Calendar) into the GNOME Desktop. The user should be able to System > Preferences > Prefered Applications to set their calendar client (TB/Lightning, Sunbird, Evolution, ). Many have suggested creating a way to sync data to EDS (Evolution Data Server) and akonadi (PIM Storage Service), yet I think that the creation of a new Thunderbird/Lightning applet is a better choice as Mozilla isn't going to use EDS. I think the code for the GNOME calendar applet can be rewritten to interface with thunderbird directly.

Launchpad Offline Bug Client

  • Name of mentor: David Bensimon

  • Difficulty: Medium
  • Description of the project:This project aims to fill in the void for reporting bugs while offline. It allows users to write up a description of the bug and keep their unreported bug reports locally to submit at a later date. Apport crashed, ubuntu-bug and apport-collect should all be able to work with the client when offline. It also allows power users to review all files before uploading them directly to launchpad.
  • A list of current Launchpad Client prjects

GNOME centralized file sharing administration

  • Name of mentor: David Bensimon

  • Difficulty: Medium
  • Description of the project: “System > Administration > Shared folders” is a feature that has been removed since 8.04. There has been no replacement for this tool since its disappearance. KDE has taken an advance on file sharing by allowing the user list all samba/nfs shares and allow the user to configure the shares centrally and graphically. The proposed project aims to create a utility that should provide a graphical front-end to configure both samba system shares (managed in /etc/samba/smb.conf) and samba usershares (/var/lib/samba/usershares/). Should time allow, this application can also be written to configure NFS shares.

Hardware device manager and hardware database

  • Name of mentor: David Bensimon

  • Difficulty: Hard
  • Description of the project: In the long run, a hardware device manager(1) and hardware database website(2) should improve harware support, identify, confirm and resolve hardware issues and bring clarity to driver development and packaging.
    • (1) Expanding on the current gnome-device-manager which allows the user to view what devices are in their computer, this project proposes a utility which identifies hardware which either not recognized, not supported or requires additional module (in which case it would propose a package or call jockey). Users are not currently notified when there are devices present that are not under control of a module.
    • (2) This project proposes the creation of a web site that will replace what we currently have: a hardware wiki page, and checkbox/hwdb submition page. Hardware Testing (checkbox) is currently testing hardware and uploading results, yet it is not parse into a user-readable usable/usefull format. Combining the Device manager with the testing capabilities on checkbox and the world viewable hardware compatibility database/website would be the ultimate solution simplifying any hardware pre/post-purchase research.

Automated optimistic merging and testing of new upstream releases

  • Name of mentor: James Westby

  • Difficulty: Hard
  • Description of the project: Now that all Ubuntu packages are based in Bazaar we can more easily build a system similar to Merge-o-Matic that looks at upstream rather than Debian. This system would check for new upstream releases, attempt to merge them in, and then build and run checks against the result, reporting the results for Ubuntu developers to get an idea of what effort will be involved. If the project is a success then it could be extended to replace Merge-o-Matic to get the test building and checks on those results too. It would be useful to have some experience of using Bazaar, coding python, and basic packaging, including building packages, but not required. I am happy to mentor this, from UTC+1. I haven't asked around for a backup contact, but I'm sure I can find one.

Guided Ubuntu bug fixing with Bazaar

  • Name of mentor: James Westby

  • Difficulty: Medium
  • Description of the project: The aim would be to make it easier for new contributors to learn their way around Ubuntu development by guiding them through the processes involved. To start this would be bzr fix-bug lp:12345 or similar that would give them the code for the affected package, and then allow them to request that it be included when they are satisfied. Continued work can then streamline the interactions further, looking at the biggest hurdles and removing them or guiding people over them. Some experience of using Bazaar, python coding and Ubuntu packaging would be useful but not required.

Kubuntu File Sharing

  • Name of mentor: Jonathan Riddell

  • Description of the project: Update SMB file sharing in Kubuntu to use the "net share" command. Create a webdav file sharing daemon and a KDE UI to share files with a standardised protocol.

Profile boot time and memory usage

  • Name of mentor: Jonathan Riddell

  • Description of the project: Profile Kubuntu's boot time and initial memory usage. Work to make boot time faster.

Language Selector

  • Name of mentor: Jonathan Riddell

  • Description of the project: Bring Qt Language Selector in line with the GTK version.

Ubuntu One KDE client

  • Name of mentor: Jonathan Riddell

  • Description of the project: Share files in Ubuntu One from KDE. Implement sharing other features such as bookmarks.

Package Manager Improvements

  • Name of mentor: Jonathan Riddell

  • Description of the project: Create Kubuntu version of Software Centre. Tidy up the user interface of KPackageKit.

usb-creator Improvements

  • Name of mentor: Evan Dandrea

  • Description of the project: Add a server frontend and Mac frontend and backend (hardware permitting) to usb-creator. Integrate the Windows frontend and backend with Wubi to allow usb-creator onto the Ubuntu CDs with a minimal space increase, and to provide ISO download functionality in usb-creator. Optionally add support for running software-center inside a chroot of a selected ISO's squashfs to allow the user to add/remove packages from the live filesystem.

creating Wubi migration to a dedicated partition

  • Name of mentor: Agostino Russo

  • Description of the project: The project entails modifying the live CD installer, ubiquity, to be able to detect a Wubi installation on the system and offer to migrate it to a dedicated partition. This is best accomplished by writing a new plugin http://wiki.ubuntu.com/Ubiquity/Plugins) that builds on the existing partitioner functionality and suppresses the system configuration pages (timezone, language, initial user setup, etc). The project idea is detailed in full at: https://wiki.ubuntu.com/WubiMigration

Add RDP support to Vinagre

  • Name of mentor: Robert Ancell

  • Description of the project: Vinagre is a remote desktop viewer that currently supports the VNC protocol. This project is to write a plugin that supports the Remote Desktop Protocol (RDP) that is the dominant remote desktop protocol used in Windows desktops/servers.
  • Difficulty: Medium
  • By implementing this feature tsclient may be removed from the Ubuntu default installation (reducing the size of the CD and making testing and debugging easier).
  • See Remmina (http://remmina.sourceforge.net/) for how this may be implemented.

  • Result of project: Patch accepted by Vinagre developers.

Add XDMCP support to Vinagre, get running in GDM

  • Name of mentor: Robert Ancell

  • Description of the project: Vinagre is a remote desktop viewer that currently supports the VNC protocol. This project is to write a plugin that supports the XDMCP protocol which is the protocol that is used to connect thin clients running X. Additionally modify GDM so that it can run Vinagre in XDMCP mode to allow remote connections from GDM.
  • Difficulty: Medium
  • By implementing this feature XDMCP client support may be returned to GDM.
  • See Remmina (http://remmina.sourceforge.net/) for how this may be implemented.

  • Result of project: Patches accepted by Vinagre and GDM developers.

Implement an Archive Crawler

  • Name of mentor: Michael Vogt

  • Description of the project: We routinely find ourselves looking for things across the entire archive. We need a tool that is smart about looking for things we need. For example, .desktop files, command-not-found data, icons, functions, and outdated FSF addresses Smile :) This tool should be tied into Launchpad and be able to be scope itself to sections of the archives, specific seeds, etc.

Check out lp:~mvo/archive-crawler for a place to start.

Qt 4 Quickly, Quidgets

  • Name of mentor: Daniel Chen

  • Description of the project: Refactor Quickly and/or Quidgets as necessary to handle both GTK+ 2 and Qt 4. There has been moderate "opportunistic developer" interest in a Qt 4 form, but movement has been slow to make it happen.

The "DesktopOne" Audio Experience

  • Name of mentor: Daniel Chen
  • Description of the project: As both PulseAudio and Jack Audio Connection Kit mature, there is a possibility of the desktop user's music experience becoming indistinguishable from that of an "opportunistic composer". Integrate the two by handling PA/JACK complexity and making basic mixing and composition software prominent in the desktop.

Quickly and importing snippet

  • Name of mentor: Didier Roche

  • Description of the project: Quickly can be integrated with the python-snippet project to allow user to integrate some code on theme. Like "adding dbus support" and that would select and propose the corresponding snipsets, a library that can be plugged into templates and as a gedit plugin will be great.

Quickly and QA learning

  • Name of mentor: Didier Roche

  • Description of the project: Quickly should integrate pylint with a "quickly check" command, with some carefully chosen default options, that will help people learn better Python style. Adding a testsuite to boiler plate code can be a great addition. This can rock on and learn people how to make better programs.

Quickly factoring boiler plate

  • Name of mentor: Didier Roche

  • Description of the project: today, a lot of codes are in the project itself. It will be cool to have a library containing all the code that the user won't touch and people are just subclassing them. This will enables easier updates. This project has two part: refactor/reimplementing boiler plate and existing project migration strategy.

Font settings improvements

  • Name of mentor: <none>

  • Description of the project: Windows font settings utility is better. Propose is to add some features to ubuntu font settings, such as draggable ruler to determine correct dpi setting, and visual tests (as in MS Windows) to determine anti-alias settings. Also, may be add global font-size setting (e.g. "Big fonts", "Small fonts" etc). May be create wizard to make some settings of fonts at first start

Package set views in Launchpad Translations

  • Name of mentor: Danilo Šegan

  • Description of the project: Currently we expose the full list of translations in the main archive to Ubuntu translators. This is generally overwhelming for new translators and it does not show accurate statistics on how well translated a distribution is. It would be useful to have a global view of projects or modules which would only include the templates which are part of them (e.g. Ubuntu, Kubuntu, UNR, or even further granularisation in subprojects or most important upstreams: GNOME, KDE, etc.). This could be e.g. modelled after the package sets already available from Launchpad.

Full Launchpad Translations API

  • Name of mentor: Danilo Šegan

  • Description of the project: The aim of this project is to implement a full API for the Launchpad Translations component. This will allow accessing translations-related data from Launchpad through launchpadlib. The API can be subdivided in several components (e.g. reporting -already being developed-, imports queue, translations, etc.) and will open the door to a broad range of uses of Launchpad Translations: more automated management of Ubuntu translations, automated status tracking of imports by users, client-side online translation, navigation of the site in custom applications, requesting downloads, fetching individual messages or suggestions, etc.

Native support for OpenOffice.org translations format in Launchpad Translations

  • Name of mentor: Danilo Šegan

  • Description of the project: Launchpad Translations standardizes on using the Gettext PO format for importing and exporting translations. While this covers the majority of Open Source projects supporting localization, there are a couple of notable exceptions. These implement custom formats and cannot be directly imported or exported. OpenOffice.org is one of them. Its custom GSI/SDF translation format needs to be converted to gettext before importing it into Launchpad. This causes quite a lot of packaging overhead and manual work, and the translations cannot use the language pack infrastructure. Due to this, we had to recently disable OpenOffice.org translations in Launchpad. We want Ubuntu translators to be able to translate OpenOffice.org in Launchpad as any other Ubuntu package and to be able to contribute translations back to upstream. The aim of this project is to implement native support for importing and exporting OpenOffice.org's GSI/SDF translation format.

Full native support for Mozilla translations format in Launchpad Translations

  • Name of mentor: Danilo Šegan

  • Description of the project: Launchpad Translations standardizes on using the Gettext PO format for importing and exporting translations. While this covers the majority of Open Source projects supporting localization, there are a couple of notable exceptions. These implement custom formats and cannot be directly imported or exported. Firefox uses the custom XPI translations format and is one of them. While native import support is already implemented and functional, translations are currently exported in an intermediate format and the conversion back to XPI is done outside of Launchpad. We want the Ubuntu Mozilla translations to be exported in native format and be able to use them directly in language packs and allow contributing the translations back to upstream. The aim of this project is to complete the support for the Mozilla translation format and enabling native export.

Native support for XML documentation in Launchpad Translations

  • Name of mentor: Danilo Šegan

  • Description of the project: Launchpad Translations standardizes on using the Gettext PO format for importing and exporting translations. This generally covers the majority of Open Source projects supporting localization, but only their user interface. Documentation is generally produced in other formats (mostly docbook) and must be converted to the Gettext PO format before importing it into Launchpad and converted back to XML upon export. This additional step, generally performed by tools such as xml2po or po4all currently stops us from importing documentation of upstream projects for translation in Launchpad in Ubuntu. The aim of this project is to implement native XML support for translatable documentation in Launchpad Translations, so that it can be seamlessly imported and exported.

Adding POT template generation support for layouts other than intltool in Launchpad Translations

  • Name of mentor: Danilo Šegan

  • Description of the project: Upstream integration is the current development focus in Launchpad. To that end, the Launchpad Translations component is being extended to enable translation imports directly from bzr branches of upstream projects. One important aspect of this feature is the automatic regeneration of POT translation templates from the branches, which is implemented using what is internally called the pottery infrastructure. Pottery currently supports the intltool layout, which already covers a great number of Open Source projects. However, there will still a percentage of upstream projects which do not follow this standard intltool layout. The aim of this project is to extend pottery to support additional formats, so that the maximum number of upstreams can be imported into Launchpad Translations.

Improve MuseScore playback

  • Name of mentor: Mark Van den Borre

  • MuseScore (mscore) is a WYSIWYG music notation software with playback capabilities included in Ubuntu. The aim of the project will be to add more musical qualities to playback, focusing on progressive tempo and dynamic changes (crescendo, accelerando, etc...). In addition to automatic rendition of musical terms, the project will involve a GUI to allow direct control of the timing and volume functions to allow any range of expression. The end goal is to make musescore's playback functions extend to all aspects of musical technique.

Nanny Improvements

  • Name of mentor: Michael Terry

  • Description of the project: Unnamed (yet) improvements to the relatively new parental control program GNOME Nanny.

Login Page Media Controller

  • Name of mentor:
  • Description of the project: When the user Locks the screen we can see the login screen , if the user is playing music he can be provided with an user interface with buttons to change the tracks, volume control etc that can control all the players present in the system.

GoogleSoC2010/Ideas (last edited 2011-02-18 19:33:50 by bryce)