Google's Summer of Code 2006
Google's Summer of Code is designed to introduce college students to the world of Open Source Software Development. Students whose proposals are accepted recieve a stipend; in exchange, they spend the summer implementing the project described in their proposal.
The lists of proposed Ubuntu project ideas for the 2006 Summer of Code is here.
The official list of accepted projects is here.
The list of tips for applying and participating in Soc is in SummerofCodeTips.
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.
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.
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.
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.
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.
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.
Mentored by MartinPitt
Kubuntu OEM Installer
An OEM installer to match the Ubuntu spec.
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.
Floppy/USB Disk Formatting Tool
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.
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.
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 https://wiki.ubuntu.com/SmallerUpdates for some ideas.
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ć.
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.
Source Control Plugin for Gedit
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.
pyq - A testing/quizzing system for Edubuntu
KControl 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.