Google Summer of Code 2006 projects


  1. Google Summer of Code 2006 projects
  2. A11y SoC Projects
      1. Common Assistive Technology Configuration
      2. A simple on-screen keyboard
      3. XGL-based screen magnifier
  3. Bazaar SoC Projects
      1. GUI for bzr
      2. Submit by mail
      3. Better web viewer interface
      4. Review tool
      5. Nested tree support
  4. Edubuntu SoC Projects
      1. willow proxy packaging and a configuration utility
      2. Simple programming app
      3. Edutainment for Edubuntu
      4. New Edutainment Applications for Edubuntu
      5. Student Control Panel improvements
  5. Kubuntu SoC Projects
      1. Koffice: KSpread, KWord and KChart Python macros using Kross
      2. Krid - Kubuntu Grid Computing
      3. Language Pack Support for Desktop files in KDE
      4. Kubuntu OEM Installer
      5. Floppy/USB Disk Formatting Tool
      6. Guidance Configuration Tools
      7. Add LVM support to Kubuntu Installer
      8. Kubuntu Printing with CUPS 1.2
      9. Kubuntu Adept Package Manager
      10. XGL window-decorator for Kubuntu (Qt/KDE extension to Compiz)
      11. MIDI support in KDE Phonon
      12. Porting multimedia apps to Phonon
      13. Mount network locations using KIO-FUSE
      14. Kubuntu InitNG frontend
      15. Kat Desktop Search Environment
      16. KOffice filters for MS Office documents
      17. Plasma Panel for Kubuntu
      18. Katapult -- XGL-enabled, EXA-enabled Alt-Tab implementation
      19. Enable Klipper (the KDE clipboard) to copy images and non-text content
      20. Specify new user from the Switch User dialog
      21. Launch Feedback indicators
      22. Menu appearing effects
      23. Downloading DRM-free music by independent artists from KDE apps
      24. Parental Controls extension to KDE Kiosk
      25. KControl module for Wine
      26. Screen recording for KDE
      27. Dualboot Kubuntu: Automatically mount Windows (NTFS/FAT) partitions
      28. Kubuntu Backup utility
      29. Note taking utility for school classes
  6. Ubuntu SoC Projects
      1. Multiple computers synchronization solution
      2. Simple Apt Proxy
      3. Ubuntu Rescue CD
      4. Simple Multiple Monitors
      5. .deb packaging GUI
      6. Migration Assistant
      7. Joint code effort for Winmodems
      8. Enhanced Device Database
      9. A Decent GUI for SAMBA/Easy Network setup
      10. Visio/diagram application
      11. World Time/Weather Applet
      12. Alternative Desktop Search
      13. Alternative Photo Management Application
      14. Offline Update Mode
      15. Desktop panel look-and-feel mode changer
      16. GNOME Launchpad
      17. Automatic Bug Report
      18. Desktop file sharing using RSS
      19. Desktop Emblems Labels
      20. Ubuntu Klein
      21. Automatic Desktop File Organizer
      22. Suggest What to Do
      23. Reboot into Another OS
      24. Poorman's XGL
      25. Parental Control
      26. Google Calendar Desklet
      27. Honesty system
      28. Bring me back to Original State
      29. Distributed Wiki
      30. Expose for Metacity
      31. Ubuntu Welcome Center
      32. Ubuntu Tutorial
      33. Ubuntu backup/rollback solution
      34. Zsync based delta updates
      35. Docbook WYSIWYG
      36. Web Based Docbook/Code WYSIWYG Editor/Viewer
      37. A "Smart" Bugreporting Tool
      38. HTB simple generator
      39. Ubuntu Internet Connection Sharing
      40. Zenity Script Designer
      41. System Information and Sanity Check

Below are listed the project ideas available for the Google Summer of Code 2006 program.

The Summer of Code 2006 has started, the list of accepted projects and students can be seen here

For more information about the Google Summer of Code program and our involvement in it please go here and see SummerofCode2006 and Summerof CodeTips.

A11y SoC Projects

Common Assistive Technology Configuration

The assistive technology settings in gnome are currently spread out over several locations, making the features difficult to find. With the creation of a new Orca and Speech Dispatcher GUIs, we have an opportunity to restructure the settings GUI as well. The new settings system should be plug-able so that the settings dialogs from Orca, Speech Dispatcher, the on-screen keyboard and the current keyboard/mouse settings fit naturally into it. See Spec.

A simple on-screen keyboard

A simple on-screen keyboard will be useful for those who are not able to use a standard keyboard, either due to a disability, or because they use a tablet PC or wish to input in a language for which they do not have a keyboard (usually with a different glyph-type). See Spec.

XGL-based screen magnifier

The new desktop rendering technologies using the 3D rendering hardware hold great promise for screen magnification. We already see the zoom features demoed on XGL systems magnifying faster and smoother and with better clarity than the existing magnifiers like Kmag or Gnopernicus. However, in order to be useful for low vision users features like cursor tracking will be needed along with general configuration tools.

Bazaar SoC Projects

Other specifications or entirely new features can also be used - please send suggestions to the mailing list.

GUI for bzr

A graphical interface (based on the Qt/KDE or GTK/GNOME frameworks) would help people understand the large amounts of data present in a bzr repository, and might make the system easier to learn. The GUI should concentrate on operations such as: searching and viewing history, resolving merge conflicts, reviewing changes in a working tree and committing changes. Possibly mentored by Mario Đanić.

Submit by mail

We'd like to submit changesets and/or merge requests by gpg-signed mail. This mainly requires calculating which revisions need to be sent, and packing them up into an appropriate form for transmission, including a gpg signature for their testament.

Better web viewer interface

Review tool

Web interface tracking branches proposed for merge, review comments, status, mergeability, etc.

Nested tree support

There is desire to split trees into subsections 1. because they contain parts that can vary (e.g. libraries that are also used elsewhere, or are sourced from other locations or projects) and 2. as a performance-enhancing technique. Can we do better than configs? Or can we use configs as an under-the-hood mechanism and provide a transparent UI that lets the tree feel like a single entity?

Edubuntu SoC Projects

willow proxy packaging and a configuration utility

Package the willow content filter:

  • make the pam support work out of the box
  • make sure the included webgui works out of the box
  • add an initscript that sources a /etc/default/willow file where you can switch transparent proxying on and off
  • make willow independent from the python-profiler packge to be able to include it in main
  • and create a configuration GUI in pygtk.

Mentored by OliverGrawert.

Please note: The description might and will change in the future. Also, a full spec will be written.

Simple programming app

Back in the days of microcomputers with BASIC interpreters it was very easy to start to learn to program. you just did 10 PRINT "hello world" RUN from there, there was little barrier to learning, all the way up to using things like sound and graphics. These days there are a couple of barriers. People aren't used to typing into a command line (a good thing). GUI's are hard to program. The choices of languages is more complex.

I think a project to help young people learn to program is very important for the future of free software. I suggest a simple IDE, in which one can learn to program in a useful language (python). It should be backed up with some simple libraries for drawing shapes to a savable canvas, making sounds, etc. It would have examples, and good documentation.

Edutainment for Edubuntu

Currently the KDE Education Suite is included in the Edubuntu distribution. This could be replaced by something better and more in style for Edubuntu. This should be done in agreement with the educational community and according to their needs, filling the gaps in the current set of edutainment software offered. The software should also be flexible enough for future modifications and expansions.

New Edutainment Applications for Edubuntu

Think of ideas for new educational apps that would be good for edubuntu and implement them. This project would require artistic skills. "Be creative, be skilled, be educational"

Student Control Panel improvements

  • add kill option for commands in processlist
  • find strategy for vnc handling and implement it
  • find strategy for remote execution of programs for
    • selected students and implement it
  • fix display of commands in processlist
  • add icons to commands in processlist
  • more features/bug fixes (suggestions are welcome)
    • - you may look at some commercial solutions (mostly for Windows tho :-/)
      • and get some ideas from those applications (NetOp School, etc)

Kubuntu SoC Projects

Koffice: KSpread, KWord and KChart Python macros using Kross

Extend the Kross scripting framework for KOffice to be able to write Python macros. The Python macros will allow users to automate repetitive tasks such as analyzing large spreadsheets and generating custom graphs from that data. This will make Kubuntu and KOffice appeal to the masses of professional users -- marketers, scientists, doctors, accountants ... anybody needing to create spiffy reports -- coming from the MS Office/Visual Basic for Applications world.

Krid - Kubuntu Grid Computing

GUI to schedule algorithms to run in multiple machines, analyzing results and enabling addition of more machines throughout the world

Language Pack Support for Desktop files in KDE

Alter klocale and kconfig to refer to language pack .po files for translations of KDE .desktop files.

Kubuntu OEM Installer

An OEM installer to match the Ubuntu spec.

Floppy/USB Disk Formatting Tool

KDE lacks a working floppy/USB disk formatting tool. KFormat is a start, and it will be built on top of Solid, KDE's hardware interface.

Guidance Configuration Tools

Kubuntu uses the pyKDE-based Guidance configuration tools. Possible additions to this include LVM configuration, alsa configuration, grub configuration and KPowersave configuration. Since these are all harware-related, reliance on Solid (KDE's hardware interface) would be preferable.

Add LVM support to Kubuntu Installer

Currently the kubuntu installer sets a traditional patitioning scheme. Now that LVM is fully supported by ubuntu (and in text based installer is the default recommendation) it would be great to add support to the new GUI installer. This may need to work closely with qtparted to patch it if it doesn't support LVM.

Kubuntu Printing with CUPS 1.2

The KDE printing system needs to be updated to use the official CUPS 1.2 API. Currently, it uses undocumented calls that will be removed from CUSP 1.2 . The good news is that CUPS 1.2 is greatly improved and there is no need for the KDE printing system to use the outdated function calls.

KDE Printing mailinglist

KDE Print Devel mailinglist

Kubuntu Adept Package Manager

Adept is a first-class .deb package manager and it plays an essential role in maintaining Kubuntu systems. Adept sports a simplified installer with a wizard interface that only displays GUI applications in order to avoid confusing new users. It also includes an Update Notifier to download and install the latest packages.

There is still some redundancy in the adept-updater and adept code bases, which need to be streamlined and common code pushed into libept. Adept can also do with some optimizations and speedups to make it snappy.

XGL window-decorator for Kubuntu (Qt/KDE extension to Compiz)

Compiz is a window decorator that provides 3D effects for XGL, including spinning cubes, wobbly windows, transparent windows, raindrops, shadows and much more. Unfortunately it is not usable on Kubuntu because the Qt/KDE extension has not been finalized. It has been suggested that the Compiz Qt/KDE extension be developed in parallel with coKoon, the SVG-based theme library that will be the default in KDE4.

MIDI support in KDE Phonon

Phonon is the multimedia framework that is designed to be used by all KDE applications. It provides simple, constant API that shields KDE applications from having to communicate directly with backends such as Xine and GStreamer. MIDI support must first be implemented in the backend and then exposed to the applications via Phonon. A MIDI design document has already been drafted and needs to be implemented in either Xine or GStreamer.

Porting multimedia apps to Phonon

The rate at which KDE multimedia apps are ported to the new Phonon API will be a limiting factor in the release of KDE4 and future Kubuntu versions. It is therefore important that apps such as amaroK, Kaffeine, JuK and KRecord be ported as soon as possible.

Mount network locations using KIO-FUSE

KIO slaves allow Kubuntu users to access remote files via SSH, SAMBA (Windows), FTP, WEBDAV and other protocols. However, the files are only accessible from KDE applications. KIO-FUSE allows all applications (including GTK and shell utilities) to access these files by mounting them onto the root filesystem. From a usability perspective, this is advantageous even for KDE apps since the user can now organize all his files in the same hierarchy tree.

Ideally, KIO-FUSE will become the only way to access remote files. Legacy applications should see remote files as if they are local. KDE applications should also open the files using their local path (ie. /home/bill/net/school/essay.odt), but they should be able to detect that these are remote files that need to be treated differently. For example, one problem than occurs if the network goes down is that legacy apps will freeze when trying to access remote files. KDE apps on the other hand should stream the files asynchronously (as they currently do with KIO slaves) and maintain interactivity.

Once the above is completed, KNetAttach should be modified to let the user chose a mountpoint for all new connections. The user should also be given the option of making those locations mount automatically each time Kubuntu boots up.

The KDE Control Center should list all mounted remote connections and allow the user to add, remove and edit them. This can be achieved by incorporating KNetAttach into the KDE Control Center.

Implementing the seek()command in KIO slaves would speed things up considerably and make streaming possible.

Kubuntu InitNG frontend

InitNG is the next generation Linux init system that boots much faster than sysvinit. It needs a Qt/KDE configuration tool (similar to , which is GTK-based). It would be nice if this could be integrated in KDE Guidance.

Kat Desktop Search Environment

Kat is a Desktop Search Environment for KDE, and it can use your help to index more filetypes and to fix elusive memory leaks that appear after several hours of running.

It would also be useful to integrate search functionality into Plasma to make it easy for new users to find applications and documents.

KOffice filters for MS Office documents

KWord cannot open MS Word documents (type .doc) because it doesn't have a filter for this file type. Similarly, KSpread cannot open Excel (type .xls) spreadsheets and KPresenter can't open Powerpoint (type .ppt) presentations. This is a significant hindrance to the adoption of KOffice, and can be solved by porting the respective filters from

Plasma Panel for Kubuntu

Plasma is the next generation panel for KDE4, and the successor of the current panel called "Kicker". Plasma should be able to use real transparency and blurring via XGL and EXA.

Katapult -- XGL-enabled, EXA-enabled Alt-Tab implementation

The current Alt-Tab implementation in KDE that switches between applications is good usability-wise because it displays the icons and all the compelete titles of the opened windows. The user can click on each item in the Alt-Tab bloc to bring up its corresponding application.

Making it aware of XGL would enable it to not only display the icon for each application, but also a miniature version of the window (and in the case of a running movie, a miniature version of the running movie).

Making it aware of EXA would enable drop shadows and translucency.

Katapult is a start to such an Alt-Tab implementation.

Enable Klipper (the KDE clipboard) to copy images and non-text content

Klipper is the KDE clipboard in charge of remembering data that has been previously copied. Unfortunately, it can't copy images and other non-text data. This is a big stumbling block for the adoption of Kubuntu and the Linux desktop in general because major proprietary desktops like Windows and Mac OS X all have robust clipboard implementations. For example, it is possible in Windows to copy an image from Firefox and paste to Paint or to MS Word. However, it is not possible to copy an image from Konqueror to Krita or Kword.

Lubos Lunak has written a good overview of the problems facing Klipper and some suggestions on how they can be fixed. Changes should be discussed on the XDG mailinglist and the KDE-devel mailinglist.

Specify new user from the Switch User dialog

The current KDE switch-user dialog opens up an instance of KDM where the user has to type the new username and password. A friendlier implementation would be for the dialog to list the available users on the system. After the name/picture of one of the users is clicked, a password field should appear in the same dialog asking for the new user's password. Only if the password is correct should a new X session be started. In this implementation, KDM will not be needed when switching users, but only when the first users logs in.

This would require changes in both and KDE, so it should be discussed in the XDG and KDE devel mailinglists.

Launch Feedback indicators

The Launch Feedback indicators, which let the user know that an application is being loaded, can be set via the KDE Control Center->Appearance & Themes->Launch Feedback. Unfortunately, they are currently not very robust:

1) The "Bouncing Cursor" option leaves a streak across the screen as the cursor is moved -- this is especially evident on computers with slow CPUs or when resources are being used for other tasks. Making the application icon bounce smoothly with no residual streaks would require optimizing the existing code.

2) The Taskbar Notification is inteded to be a taskbar placeholder for an application as it is being loaded. The notification is turned off when the application creates a window. However, if an application doesn't create a new window, the placeholder remains and clogs up the the taskbar. This problem can occur for a number of reasons. For example: clicking on an MP3 file in Konqueror opens up Realplayer. Clicking on another MP3 file doesn't create a new Realplayer window, but instead the MP3 file plays in the window that was already open. Nevertheless, the Taskbar Placeholder will still be waiting for Realplayer to open up a new window. This can be solved by making the KDE Taskbar Notification system communicate with the starting applications via DBUS, so that the application can inform the KDE Taskbar Notification system that it will not be opening a new window. If the starting application is not DBUS-aware (ie. legacy applications), then no Taskbar Placeholder should appear.

The latest DBUS-enabled version of KDE applications can be found at:

Menu appearing effects such as a dropdown menu sliding into place or fading in or out can be set in KDE Control Center->Appearance & Themes->Style->Effects. Unfortunately, they tend to be slow to the point of being unusable. For example, if a dropdown menu has many items, it will take a long time to appear and will not fade in. If the computer is slow, the fading will appear as if it is flickering.

If sliding is turned on, menus always slide from the top left, which doesn't always make sense. For example, when you click on the K-menu, you expect the menu to slide from the bottom upwards. In general, menus should slide from the location of the cursor.

A final problem with sliding menus is that they are unbearably slow when a Kompmgr is running. One way in which this can be solved is by making the shadow appear only after the menu has finished sliding (this is what OS X does, btw). It should also be ensured that the menu appearing special effects work with new technologies like EXA and XGL, which sometimes make the traditional KDE special effects un-necessary. For example, there is no need for the Drop Shadow effect when Kompmgr is running. Indeed, the Drop Shadow option should be grayed-out in KDE Control Center->Appearance & Themes->Style->Effects when Kompmgr is running.

Changes should be discussed on the KWin mailinglist.

Downloading DRM-free music by independent artists from KDE apps

It would be great to let users download DRM-free music by independent artists directly from within KDE multimedia applications like AmaroK. This has already been done in the GNOME-based Banshee player, which allows users to buy/download music from the MP3tunes' Music Locker.

In theory, AmaroK can use the same protocol to download/buy from other online stores. The users would be able to search for a given song and find out who sells it at the lowest price. The user should have an "Account Configuration" window where they can add accounts to other online stores. This is similar to the Songbird application, but with less emphasis on rendering HTML pages (after all, there should be only one simple, constant interface for searching for music that should not change between music vendors).

Parental Controls extension to KDE Kiosk

Extend KDE's Kiosk framework to make it easy to set global parental controls. Make sure all KDE applications respect the Kiosk settings. This will ensure that Kubuntu is a family-fiendly, family-safe distribution and increase its uptake by concerend parents.

Changes should be discussed on the Kiosk mailing list.

KControl module for Wine

Wine is an Open Source implementation of the Windows API on top of GNU/Linux and X. It is the basis for a commerical product called Crossover that makes installation of Windows apps on Linux easy. However, Wine by itself is extremely hard to set up and to make it run Windows applications. In order to make the transition from Windows to KDE, there needs to be an intuitive Qt/KDE frontend to Wine administration and installation of Windows applications.

Screen recording for KDE

Create an intuitive Qt/KDE application that records the events that occur on the screen. This will be a valuable tool in quickly preparing tutorials for new users.

Dualboot Kubuntu: Automatically mount Windows (NTFS/FAT) partitions

Enable Solid, KDE's hardware interface, to work with Guidance and automatically detect and mount Windows partitions. Perhaps also ask the user if they want to Import data from Windows, such as "My Documents", "My Music", and "My Photos".

Kubuntu Backup utility

Create a Qt/KDE application that will periodically create backups of user and/or system data. The application should be intuitive, easy to use, and configurable from the KDE Control Center.

Note taking utility for school classes

Create a software that's useful for taking notes on Maths, Biology, Computer classes or other subjects. Simple ASCII editors aren't very useful and some notes need to be quickly taken, such as Math formulas. KForumula, part of the KOffice suite, seems suitable for this.

One major function would be easy retrival and sorting of information (ie. which notes have I taken on "Second Normal Form for Databases"). This information can most easily be indexed in and retrieved from the Kat Desktop Search Environment.

Some built-in functions (like the ones provided for KVoctrain) would be useful in taking notes on Language classes.

It would also be very useful if we could take slideshows and create notes over it, perhaps using KPresenter.

Some interface with Organizing programs, like KOrganizer or KPilot would also be very useful. Maybe a few features like recording sound (to record some teacher speaking) or even camera captures would be valuable. It would be interesting to create some kind of scheduler, which could estimate the time taken to study for a test, or something alike. An interesting feature would be a correct answer evaluator, so that one could do his homework and check for right answers, for instance.

Ubuntu SoC Projects

Multiple computers synchronization solution

This SoC would study and implement the integration of a multiple computers synchronization solution like, for example, iFolder.

Simple Apt Proxy

Even a small network of ubuntu machines would download ubuntu packages multiple times. a smart apt caching proxy server could avoid this, saving bandwidth. There already exists apt-proxy, but requires configuring on the server and clients. A simple-apt-proxy would contain a control panel to decide which sources get cached, and how much to cache. It could advertise its self by avahi (which would be detected by synaptic,update-manager etc) does this.

Ubuntu Rescue CD

Stuff breaks. Even Ubuntu breaks sometimes. Advanced users can do all sorts of wizardry to get an unbootable linux system running again. The Ubuntu Rescue CD (or mode on the Live cd) would contain a set of simple graphical tools to diagnose and fix common problems. Tools might include: Bootloader repair, for when other operating systems eat Grub; Disk repair, fsck and friends; Package repair, for when apt goes wrong, lets you reinstall/fix broken packages; Xorg repair, for when Ubuntu can't start X.

SivanGreen: I think it would make sense to combine work here with the HomeUserBackup specification, as I have plans to base off the existing codebase and extend this to a disaster recovery application that will allow a user to go back to a good state with his pack of backup cds that he created before hand, and with the Ubuntu Live CD in posession.

Simple Multiple Monitors

Make adding a second monitor or connecting to a projector, as simple as just plugging it in. No editing text files, no restarting X. When the monitor is unplugged, open windows on it should be moved back to the main screen.

.deb packaging GUI

A graphical tool for creating .deb packages would help developers in making their softwares available more easily. The tool could help creating the initial package skeleton, have graphical views of configuration files, integrate the various dh_* functions, and facilitate package maintenance.

Migration Assistant

Design and develop import functionality for the Ubiquity LiveCD installation program and debian-installer that allows the user to transfer existing user accounts as well as the settings and files that go with each individual account.

Joint code effort for Winmodems

We all know winmodems are a pain. Wouldn't out-of-the-box support for all winmodems for which there is a driver be nice and newbie friendly?

What I am proposing is collaboration between devels and ubuntu devels to come together and find a way to make this happen. While can benefit from ubuntu devels in terms of driver testing (we have a big userbase who keep submitting hardware info to our device database) and newbie-friendly configuration ideas/contributions/fuding, Ubuntu devels will benefit from who may help in writing an Ubuntu-specific scanmodem tool (of course, a GUI frontend to it so ppl can run it afterwrds as well) that will run on first install, find out the winmodem in the machine, and configure it automatically (or at least put an info sheet to the Desktop on what to do).

There is great demand for out of the box winmodem support. See: Currently, about 70% of 372 voters there think out of the box winmodem support is worth the effort...

Spec at and

ScottJamesRemnant: A scanmodem tool isn't appropriate, unless it's scanning things like serial ports. If modems are PCI devices, all that's needed are the correct kernel drivers and making sure that they are ported to driver-core.

Reply to ScottJamesRemnant: Thanks for the scanmodem information Smile :) A collaboration between Ubuntu (with its large userbase) and (with its experienced modem experts) is still profitable as this will result in new modem drivers being written (hopefully).

Enhanced Device Database

Enhancing the device database fuctionality would be a very good idea. Adding searchable and open-tp-public functions such as "get as much hardware info as possible" (instead of just basic cpe etc. info), "who uses which drivers for which hardware" and so on would be nice: you can put pressure on driver writers (both open and closed source writers) to write / make enhancements to most commonly used hardware. Learning "who uses what as driver for which hardware" is a good source for a HCL (hardware compatibility list) that lists not only the comments of the user about specific hardware, but also suggestions on which driver / module to use.

A reliable HCL is greatly needed. Forums keep getting users saying "hey! this was in the HCL... wtf?".

A Decent GUI for SAMBA/Easy Network setup

Most new users are using ubuntu in a home network environment. Currently setting up and managing network access is via editing the smb.conf text page, which can be long convoluted and error prone. Creating an easy web front end will alow users(particularly less eperienced users eg mamas and papas) to create and share data easily via the gui interface. Eg with authentication/no authentication shares.

Visio/diagram application

Currently there are only a few applications like Dia or Kivio to compete with MS Visio. There are not extensive work in the artwork, we need a Visio program in Ubuntu with a better artwork (more computer science stencils) to make decent diagrams. The application would need to import visio format, have a nice artwork and be integrated in current diagram applications or develop a new one. Visio filter is also suggested to integrate in OOo Draw. Suggested development with Mono. Inkscape is a mature vector graphics editor with newly added support for connectors. With a visio importer that converts to svg and a bit of interface love, Inkscape would fit this project perfectly. Why reinvent the wheel?

World Time/Weather Applet

As there are now plenty of global workers like myself (and the Ubuntu community) I think it would be great to have a little applet you can click on that quickly shows you a modifiable list of intenational cities (where your co-workers/friends reside) with the local time, current weather and possibly if the name of any local public holiday it may be. This information is available in various places but it would be a great little tool to have it readily available at the click of a button. This is a tool I would use just to check that it hasn't yet hit 5pm in New York and enable me to start of a conversation about how bad the weather is.

A complete beagle-like desktop search app that doesn't use mono, but any of C, Ruby, Python or Perl as a programming language, and use basic standard unix tools like locate, grep, find, etc. It must have an easy to use GUI interface client, as well as a GUI configuration interface. It must also be able to use plugins, and pass parameters in the command-line. It must also be configurable to use as a server.

Alternative Photo Management Application

A complete picasa/f-spot like photo management application that doesn't use mono, but any of C, Ruby, Python or Perl as a programming language. It must have a photo retouching functionality similar to Picasa, like "I'm Feeling Lucky" where the picture can adjust automatically by it's lighting, color, hue, saturation. It must also be able to do photo effects similar to Picasa. It must also be able to use plugins, and pass parameters in command-line, and be able to use configurable and emblemable tags.

Offline Update Mode

A GUI application that can make offline package "service packs" for a particular update time. This can be very useful for low bandwidth users or remote areas where a CD can be used to update their computer. It must also be able to do revert to the computer previous state based on time stamp on when the last update is performed, which can be selectable through the GUI interface. It must be able to use thumbdrive, CD, and Hard Disk as an input device.

Desktop panel look-and-feel mode changer

A GUI application that allows the user to choose the panel arrangement modes by a template. Example, Windows mode, where the panel, taskbar and the icons is in the button screen. The panel arrangements must be based on a template/theme file, with screenshots of the arrangement.

GNOME Launchpad

A GUI application that automates launchpad tasks like reporting a bug, creating a wiki based on template, creating a specifications and all the functionality in the Launchpad via a desktop wizard. It must have an automated launchpad account registration.

Automatic Bug Report

A bug reporting tool that automates input based on user's action. It must have tracker on what happened to the system within the last 24 hours, file changes, what are the running applications and what the user is doing when the application is crashed. The user must be able to send the bugs via HTTP port 80, without any need for an e-mail. The bug reporting tool must catch, segmentation faults, errors and warnings on chosen applications. The application must use 2>/dev/debug as an error catcher.

Desktop file sharing using RSS

A GUI application that allow the user to share file via a few html codes. This is useful for bloggers who want to share file while online. However, it must be able to report offline status when the user isn't online, and be able to do authentication for secured file transfers. It must also have bandwidth control.

Desktop Emblems Labels

A user must be able to easily add emblem to a certain file and directory, e.g "Right Click > Mark As > Favorites", and be able to search it in nautilus using an Emblem browser. It works similarly like Picasa or Gmail labels, where the emblemized item can be searchable throughout the Desktop by just clicking the particular emblem. For example, I mark "picture1.jpg" as special, and I also mark "picture2.jpg", "picture3.jpg" as special. When I click the Special Emblem in nautilus, all pictures that has those mark will be visible.

Ubuntu Klein

Klein is an african word for small. hence, it's a install mode for Ubuntu to just install the desktop. So when an application is clicked, it do a "gksudo apt-get install application" on-the-fly. There must be a GUI interface, providing a brief introduction on that particular application the user is going to install. The user will be able to choose between "Ubuntu CD" or "Internet" as a repository choices. A notice that this will need an internet connection would be useful.

Automatic Desktop File Organizer

This is a daemon that runs in a background that automates file organization in the user's desktop. There must be a GUI that enables and disables this feature. It moves the files automatically using datestamp, and by it's filetype, tags and contents. For example, all pictures must be moved on a particular directory, a pdf document uses the title or author name for the name for the directory, an ogg vorbis file can use artist name, or album, for the name of the directory. The moving must be themable and personalizable, for example, all documents must go to a directory named "Research Documents" or "Foo's Documents".

Suggest What to Do

Suggest what to do is a daemon applet that use libnotify and get pattern from users on what application they run on a particular time, how many times the user run it, or maybe the user run it everyday at 8:00am. It must also check what the user is surfing when it goes to web, does the user always go to that page everyday? So a bubble may say "You browse, within the last few days, would you like to open it." A user can right-click the applet and choose "next suggested action" to popup another suggestion.

Reboot into Another OS

An option (that can be easily disabled) on the logout window that will allow the user to reboot his or her machine into another entry that is specified in the 'menu.lst' of the bootloader. This would be helpful for users who use Ubuntu most of the time but need to run another OS occasionally for other tasks.

Poorman's XGL

A capability to run XGL/Compiz effects on software rendering, and does not require an AGP hardware. Users must be able to use old video cards, like S3 Virge, Trio, etc, that has 1MB or lower than 1MB of memory.

Parental Control

An easy to use GUI application that easily create parental control to filter web contents, via strings, domain name, or ip address. The software must provide authentication as a way to provide security.

Please see the edubuntu SoC project list, we already have a project for transparent proxying based on bayesian filtering and black/whitelists with included webgui and an approach to create a GTK UI as well, if you want to go beyond that, feel free to add ideas there (OliverGrawert)

Google Calendar Desklet

A desktop based GUI application that will allow users to view / add / modify events on their google calendar directly from their desktop.

Honesty system

A libgnotify application that warns the user if the system is capable of performing a certain action. For example, if a user tries to update his system but he only have a few spaces left, a message will say "Honestly, you only have 3MB left, and you would still want to update your system, do you really want to do this or let's fire up the space freeing wizard and try to do the update later." This application will try to evaluate any resources available for a certain action to be taken, if the user is running Inkscape SVG editor, and the system doesn't have enough memory to run a new called application, then a message will say "Honestly, youre resources are continually being consumed by Inkscape SVG editor, and you would still insist to run OpenOffice, I think it's better to save your work first and close the currently running application, and run OpenOffice." If the user insist to run OpenOffice, then the system is in risk of being unresponsive. THe honesty system will try to save the system from being unresponsive, and risk of shutdown it improperly.

Bring me back to Original State

The user had first encountered linux, and experiment with alot of different things. He put all the applets in his taskbar, messed up his default keyboard shortcuts, create alot of changes in the settings, until he can't use the system anymore because his system is now insane. This application will bring back the desktop's original state, clearing all the things he made and make them default.

SivanGreen: using the backend that was created for HomeUserBackup we can through yet another GUI frontend that the user will run to when he wants things to go back, and use the backend itself when the first gnome sessions starts and snapshot the current state of desktop settings in order to use it to go back to sane state if required.

Distributed Wiki

Ubuntu provides tools useful for multiple distributions (Launchpad, Rosetta) in various domain (translation, bug reporting). But for the moment, there is no way to share documentation with other distributions (or it is not used). A wiki could produce some feeds (defined by some standard XML schema), useable by other wikis. For example, the kernel people could have their own wiki, and the ubuntu people could provide ubuntu kernel specific articles, with some content directly coming from the kernel wiki. The source wiki (kernel) could also link to the destination one for specific informations. Actually, this is not only Ubuntu related, Wikipedia could for example use Ubuntu wiki feeds to provide some of the content of its Ubuntu related articles... This way, there would be no duplication of the documentation effort, and each community could concentrate on its own domain. People contributing to the kernel documentation would contribute to every documentation effort using the kernel wiki feeds (Wikipedia, Ubuntu...).

Expose for Metacity

A completely expose-alike effects for Metacity, using no hardware acceleration, just plain generic hardware. Binds Key F9 to automatically arrange all open windows, and show them all in one screen. F10 to show only a certain application that is running, for example, multiple Firefox session is opened, F9 will bring up all the firefox windows into the screen and show them all.

Ubuntu Welcome Center

Spec: Ubuntu_Welcome_Center

A GUI application that assist the user with the application that he will be using in GNOME, and the capabilities of Ubuntu. The application must be attractive and easy to use for new users to easily adopt in Ubuntu.

Ubuntu Tutorial

A GTK+ computer aided instruction application that instruct the user on navigating the Desktop, and using GNOME. It must cover all the aspects in GNOME and must have videos and audio to instruct the user with those aspects.

Ubuntu backup/rollback solution

Provide a complete backup/rollback solution for Ubuntu. It should also have support for running before system boots, to be able to snapshot partitions which are generally in use when system is running. It should also be able to recover a system if disaster happens (it runs before the system boot, and gives user a option to recover to some point). Example of nice backup solution is TrueImage.

Zsync based delta updates

Use some delta based download solution for deb packages and index files. The most promising candidate for this is a hacked up zsync that understands about deb package internals for the syncs. See for some ideas.


Monodoc-like viewer/editor for Docbook.

Web Based Docbook/Code WYSIWYG Editor/Viewer

Sarma-like (a previous Google SoC project that isn't completed) on line viewer/editor for Docbook and/or other code, perhaps with Launchpad integration and separate instances for each project. Could also tie in with the Distributed Wiki idea above, and although compleatly graphical when viewing and editing Docbook XML. Would run out of a Bazaar repository.

A "Smart" Bugreporting Tool

Create a graphical tool for Ubuntu that can be used to submit bug reports to Malone that ships all the needed information for the bugreport automatically, and can determine if the bug report to be filed is already in the Malone tracker, reducing duplicate bug reports.

HTB simple generator

Create a text and graphical tool for Ubuntu, that can be used to generate htb scripts. Should be very friendly for the "newbie administrator(s)". Would be add to Ubuntu-server project.

Ubuntu Internet Connection Sharing

An easy to use GUI application to setup Ubuntu to share internet connection, throught network or dial-up. It must also contains some options to setup a router, DHCP, firewall and proxy for the connected clients.

Zenity Script Designer

A GUI application that easily create zenity scripts to be used in GNOME scripting tasks, for administrators, or users.

System Information and Sanity Check

A GUI application that scans your system and check if the system is sane for common tasks like automatic updates. It also checks your swap space if it comply with kernel 2.6 swap space requirements. It also check if your proc virtual memory is set to correct size based on your memory and suggest a size for your system. The system information can be saved to a file which contains all hardware and software information, and system status.

GoogleSoC2006 (last edited 2008-08-06 17:01:06 by localhost)