SummerofCode2006

Differences between revisions 7 and 8
Revision 7 as of 2006-05-22 02:32:53
Size: 4123
Editor: 66-191-67
Comment:
Revision 8 as of 2006-05-28 02:07:52
Size: 7205
Editor: 66-188-77-153
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
Google is accepting student proposals for Summer of Code 2006. Applications must be recieved before May 8, 2006. For more info, see: The lists of proposed Ubuntu project ideas for the 2006 Summer of Code is [https://wiki.ubuntu.com/GoogleSoC2006 here].
Line 7: Line 7:
 * [http://code.google.com/soc/student_step1.html Google Summer of Code student signup]
 * [http://code.google.com/soc Google Summer of Code Home Page]
 * [http://code.google.com/soc/studentfaq.html Google SoC Student FAQ]
 * [http://code.google.com/soc/mentorfaq.html Google SoC Mentor FAQ]
 * [http://drupal.org/node/59037 Drupal's How To Write A Summer of Code Application] - very useful info, read it! Thanks to Drupal for compiling this**.
 
Here are a few suggestions for students interested in participating:
The official list of accepted projects is [http://code.google.com/soc/ubuntu/about.html here].
Line 15: Line 9:
=== Things to consider: === === XGL-based screen magnifier ===
Line 17: Line 11:
 * You should know how to progam already, preferably in python.
 * You should at least have a working knowledge of Ubuntu, and knowing our community and its working structure would be an advantage.
 * Relative to the whole job market, not many people have the sorts of skills Ubuntu hacking will give you. Doing any serious work on Ubuntu will not only make you a more confident developer, it will look great on your CV/resume.
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 [http://accessibility.kde.org/ 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.
Line 21: Line 18:
=== How to succeed: === === A simple on-screen keyboard ===
Line 23: Line 20:
 1. Don't overbook yourself. Working on your Summer of Code project should be your main activity for the entire summer.
 2. You must provide weekly status reports.
 3. You will be expected to learn how to do things the Ubuntu way - don;t worry your mentor will help you where necessary.
 4. Submit progress reports and patches early and often, so we can track your progress and we'll be able to help you much better if we can see regular progress. Also your mentor is more likely to accept smaller (more obviously correct) patches.
 5. You need submit a completed spec at the end of the project. It is best if you use the wiki as you go along, to make sure you capture as much relevant information as possible. See SpecLifeCycle for details of how to write a good spec. If you project does not yet have a spec use the SpecTemplate to create one. Don't forget to make sure your spec is registered in [https://launchpad.net/distros/ubuntu/+addspec Blueprint on Launchpad].
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 [:Accessibility/Specs/SOK:Spec].
Line 29: Line 22:
The most important item is #1. You'll have a lot to learn before you will get to the point where you can begin coding your project, and the projects are all non-trivial. We will provide you with amazing support from the mentors and community, but it is up to you to make sure that you can focus on your project === 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.
Line 31: Line 29:
{i} Tip: Do not ask us what we want you to do; you need to be able to figure that out yourself. 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.
Line 33: Line 31:
{i} Tip: Don't feel you have to use one of the [https://wiki.ubuntu.com/GoogleSoC2006 listed ideas], or even that they're necessarily good projects to work on! People just add them as they think of good beginner projects. In fact, a custom project proposal is likely to be more impressive, as it shows you've put time into researching the project and getting familiar with its needs.

{i} Tip: Some things that look trivial may not be, and vice-versa. Investigate well! :)

=== Proposal suggestions: ===

  * Write up your proposal simply, concisely, and in your own words
  * Include some evidence that you are a good programmer
  * If you have already submitted patches to Ubuntu implementing part of your project, please link to them from the proposal
  * Where possible discuss your proposal in advance on our [http://www.ubuntu.com/community/lists mailing lists] or on [http://www.ubuntu.com/community/irc IRC] to get feedback from the Ubuntu community

=== Ubuntu Projects ===

The lists of Ubuntu project Ideas for the 2006 Summer of Code are [https://wiki.ubuntu.com/GoogleSoC2006 HERE]
https://launchpad.net/distros/ubuntu/+spec/simple-prog-app
Line 49: Line 34:
---- === Network Authentication ===
Line 51: Line 36:
~- ** Note : 'Writing a Summer of Code Application ' is copyright by Angie Byron and Karoly Negyesi and available under a CC Attribution Share-Alike 2.0' -~ === willow proxy packaging and a configuration utility ===

Package the [http://www.digitallumber.com/software/willow/ 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.


=== 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.

https://launchpad.net/distros/ubuntu/+spec/migration-assistance


=== 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.

https://launchpad.net/distros/ubuntu/+spec/offline-updater

=== Kubuntu OEM Installer ===

An OEM installer to match the Ubuntu spec.

https://wiki.kubuntu.org/UbuntuDownUnder/BOFs/OEMInstaller

=== 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 ===

KDE lacks a working floppy/USB disk formatting tool. [http://jr.falleri.free.fr/kformat/wiki/Home KFormat] is a start, and it will be built on top of [http://solid.kde.org/ Solid], KDE's hardware interface.

http://mail.kde.org/pipermail/kde-hardware-devel/2006-March/000046.html

=== 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.

http://bazaar-vcs.org/SubmitByMail

=== 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.

=== 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.

=== Safety Boat ===

=== 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ć.

http://bazaar-vcs.org/GraphicalUserInterface

=== 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.

https://launchpad.net/distros/ubuntu/+spec/samba-config-gui

=== 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 [http://www.kde-apps.org/content/show.php?content=29295 KPowersave] configuration. Since these are all harware-related, reliance on [http://solid.kde.org Solid] (KDE's hardware interface) would be preferable.

http://www.simonzone.com/software/guidance/

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 [https://wiki.ubuntu.com/GoogleSoC2006 here].

The official list of accepted projects is [http://code.google.com/soc/ubuntu/about.html here].

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 [http://accessibility.kde.org/ 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 [:Accessibility/Specs/SOK: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.

https://launchpad.net/distros/ubuntu/+spec/simple-prog-app

Network Authentication

willow proxy packaging and a configuration utility

Package the [http://www.digitallumber.com/software/willow/ 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.

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.

https://launchpad.net/distros/ubuntu/+spec/migration-assistance

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.

https://launchpad.net/distros/ubuntu/+spec/offline-updater

Kubuntu OEM Installer

An OEM installer to match the Ubuntu spec.

https://wiki.kubuntu.org/UbuntuDownUnder/BOFs/OEMInstaller

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

KDE lacks a working floppy/USB disk formatting tool. [http://jr.falleri.free.fr/kformat/wiki/Home KFormat] is a start, and it will be built on top of [http://solid.kde.org/ Solid], KDE's hardware interface.

http://mail.kde.org/pipermail/kde-hardware-devel/2006-March/000046.html

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.

http://bazaar-vcs.org/SubmitByMail

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.

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.

Safety Boat

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ć.

http://bazaar-vcs.org/GraphicalUserInterface

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.

https://launchpad.net/distros/ubuntu/+spec/samba-config-gui

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 [http://www.kde-apps.org/content/show.php?content=29295 KPowersave] configuration. Since these are all harware-related, reliance on [http://solid.kde.org Solid] (KDE's hardware interface) would be preferable.

http://www.simonzone.com/software/guidance/

SummerofCode2006 (last edited 2008-08-06 16:18:57 by localhost)