JacobPeddicord

Differences between revisions 7 and 8
Revision 7 as of 2010-03-21 22:42:17
Size: 8005
Editor: 208
Comment:
Revision 8 as of 2010-03-22 00:18:25
Size: 9777
Editor: 208
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
 * Identi.ca: http://identi.ca/jacob
Line 55: Line 56:
 * First milestone  * First milestone (mid-June)
Line 92: Line 93:
Considering I like to write code in my free time, I'd say a ''very'' good amount. Considering the fact that I like to write code in my free time, I'd say a ''very'' good amount. I'd be able to work on it at about a 9-5 pace (so about 35 to 40 hours per week)
Line 94: Line 95:
 * Where will you based during the summer?
 * Do you have any commitments for the summer? (holidays/work/summer courses)
 * Please designate a back up student (in case you need to withdraw your application)
==== Where will you based during the summer? ====
At home (Ohio; -0400 UTC) with a not-so-reliable connection, but it hasn't been a problem when working on code or collaborating in the past.

==== Do you have any commitments for the summer? (holidays/work/summer courses) ====
I'll be on vacation the second-to-last week of July (the week after midterm evaluations). I ''may'' have Internet access during that time, but wouldn't count on it.

==== Please designate a back up student (in case you need to withdraw your application) ====
Do not have one at the moment; I highly doubt I'd have to withdraw. Can definitely find someone to work on the project if something turns up.
Line 99: Line 105:
 * Have you ever participated in a previous GSoC? (describe your project)
 * Have you applied for any other 2010 Summer of Code projects? If yes, which ones?
 * Why did you apply for the Google Summer of Code ?
 * Why did you choose Ubuntu as a mentoring organisation?
 * Why do you want to participate and why should Ubuntu choose you?
==== Have you ever participated in a previous GSoC? (describe your project) ====
No.

==== Have you applied for any other 2010 Summer of Code projects? If yes, which ones? ====
I have not; this is my first SoC so I'm still trying to get things straight before applying to things en masse.

==== Why did you apply for the Google Summer of Code? ====
I've always wanted to try out an SoC project since it was announced, but this is the first year I'm actually eligible.

==== Why did you choose Ubuntu as a mentoring organisation? ====
I've been using Ubuntu since 2006, but have never been actively involved in development. I've been pretty involved in the community and have had several stabs at patches, but haven't had the chance to do some real work. I think it's time to change that.

==== Why do you want to participate and why should Ubuntu choose you? ====
 * I'd like to help out in a way that's going to make peoples' lives easier.
 * I like to code.
 * I've been active as an Ubuntu Member in the [[OhioTeam|Ohio LoCo]] and on the [[http://ubuntuforums.org/member.php?u=90021|Ubuntu Forum staff]], and now I'd like to try development itself.
 * I've got a plan for action and the will to implement it.
 * I don't miss deadlines.

Thanks for reading this document; it's a bit on the lengthy side but I hope you enjoyed it. :)
If you have any questions or would like to know more about this proposal, shoot me an email, shout at me on identi.ca, or poke me on IRC.

Jacob Peddicord

Contact information

Project

  • Project Name: Upstart compatible services-admin

  • Project Description:
    • The previous service administration tool was able to list available services and enable/disable them. I plan to create a new services tool from scratch with a few goals in mind:
      • Ease of use - it should display the necessities needed to manage services, while not getting too technical
        • (though some technical knowledge is assumed if a user is messing around with services)
      • Properly secured using PolicyKit

      • Compatibility with Upstart and old-style SysV scripts
      • Configurable - should be able to change properties of services and reload them
      • Package and Launchpad integration - provide methods to uninstall the services' package and to report a bug on it

If you would be willing and able to do other projects instead, which ones?

Clipboard improvements would be another idea that interests me, having been a victim of the "copy, close, paste, realize nothing happened" model.

Why did you like this idea?

Upstart has replaced nearly all of the old boot scripts from /etc/init.d with newer, more concise jobs in /etc/init. The syntax of these files is easy to read, but powerful. That's the same idea in mind here: there should be an easy to use but powerful tool around to manage both Upstart jobs and older SysV scripts. It seems like something that would complement Upstart nicely.

In addition, I'm a server administrator myself and have messed around with Upstart & boot scripts. I'd love to be able to bring this functionality to the desktop in the form of a nice interface.

Please describe a tentative project architecture or an approach to it

There are a few main components that make up this idea:

  • Backends - One common internal API should be used for managing services. This could be accessed using PolicyKit. Two backends would then be used:

    • upstart - managed using dbus
    • sysv - managed via /etc/init.d/ scripts and the service command

  • Management - Services should be able to:
    • be stopped & started

    • be restarted
    • change whether they run on boot
    • have their configuration reloaded (backend-dependent)
    • send other custom signals depending on the service
    • possible for a dependency tree to be calculated for upstart jobs
  • Configuration - To configure service properties, I've thought of a few ideas. One that would most likely work out would include shipping configuration "description" files, either with this project or with service packages themselves. These files would include information on:
    • Variables available for configuration and their types
    • Possible values/constraints
    • Where the actual configuration file(s) is/are stored
    • What needs to happen once the configuration is changed (force-reload, restart, etc)
    • Possibility to launch an external application to configure a service (big maybe here)
  • Package integration - Poll dpkg for information on which package owns a particular service
    • Provide an option to uninstall that package (via aptd or synaptic)
    • Ability to report a bug on that package for a specific service via apport & ubuntu-bug

Give us details about the milestones for this project

  • First milestone (mid-June)
    • Interface skeleton should be designed
    • Upstart backend should be functioning
    • Services should be able to be disabled/enabled/stopped/started/restarted
  • Second milestone (GSoC midpoint)
    • Basic configuration backend and UI in place
    • SysV backend should be functioning
    • Services should be able to be configured and reloaded
  • Final milestone
    • Configuration UI & backend should be complete

    • Configuration descriptions for default system services should be available
    • Documentation should be available on how to ship a service configuration description
    • Package integration should be finished
    • Polish, polish, polish

Why will your proposal benefit Ubuntu?

Both Mac OS X and Windows offer system utilities to administer services. Ubuntu used to, though with a rather limited applet. Having a full-fledged but easy-to-use application to administer and configure services would greatly benefit the user experience. The use of a graphical application would free up the need to use the terminal to configure services. It would make configuration quicker and safer. Instead of needing to launch a root editor to change a setting, a user would only need to set some options in a PolicyKit-managed application. It would make Ubuntu look more friendly to both the tweaking end-user and to the enterprise market, since many businesses may want to be able to easily disable services and set policies on what can be run.

UI mockup

mockup1.png

Open Source

Please describe any previous Open Source development experience

I've been submitting occasional patches to Ubuntu for a while, and somewhat more frequently work on bug management. I've created some projects of my own, including Commandeer and Mound, both of which I've received merge requests on and eventually plan on getting into the archives. I've already packaged gfire for the archives, and have worked on other packages as well.

Why are you interested in Open Source?

Who isn't interested in open source? Wink ;) Seriously, I've always been peeved by the fact that I have to pay to use the computer I bought, and I can't even change it. The open source community has always appealed to me, so much that a few of us have created a site called FOSSwire to write about it (though my activity there has declined lately as I've been involved in other areas). I love the fact that if I make a mistake or need help, there's a whole community of developers who know just what to do. I used to write closed-source applications on Windows years ago, and I can definitely say it is much more fun to stay open.

Availability

How long will the project take? When can you begin?

It will likely take the entire duration of GSoC. I know a good amount about GTK+ and Python programming, but I still will need to research methods of managing services, PolicyKit, and effective communication over DBus. I can begin as soon as the timeline allows. I will have two weeks of class and exams left on May 24, but that hasn't affected my development work in the past.

How much time do you expect to dedicate to this project? (weekly)

Considering the fact that I like to write code in my free time, I'd say a very good amount. I'd be able to work on it at about a 9-5 pace (so about 35 to 40 hours per week)

Where will you based during the summer?

At home (Ohio; -0400 UTC) with a not-so-reliable connection, but it hasn't been a problem when working on code or collaborating in the past.

Do you have any commitments for the summer? (holidays/work/summer courses)

I'll be on vacation the second-to-last week of July (the week after midterm evaluations). I may have Internet access during that time, but wouldn't count on it.

Please designate a back up student (in case you need to withdraw your application)

Do not have one at the moment; I highly doubt I'd have to withdraw. Can definitely find someone to work on the project if something turns up.

Other

Have you ever participated in a previous GSoC? (describe your project)

No.

Have you applied for any other 2010 Summer of Code projects? If yes, which ones?

I have not; this is my first SoC so I'm still trying to get things straight before applying to things en masse.

Why did you apply for the Google Summer of Code?

I've always wanted to try out an SoC project since it was announced, but this is the first year I'm actually eligible.

Why did you choose Ubuntu as a mentoring organisation?

I've been using Ubuntu since 2006, but have never been actively involved in development. I've been pretty involved in the community and have had several stabs at patches, but haven't had the chance to do some real work. I think it's time to change that.

Why do you want to participate and why should Ubuntu choose you?

  • I'd like to help out in a way that's going to make peoples' lives easier.
  • I like to code.
  • I've been active as an Ubuntu Member in the Ohio LoCo and on the Ubuntu Forum staff, and now I'd like to try development itself.

  • I've got a plan for action and the will to implement it.
  • I don't miss deadlines.

Thanks for reading this document; it's a bit on the lengthy side but I hope you enjoyed it. Smile :) If you have any questions or would like to know more about this proposal, shoot me an email, shout at me on identi.ca, or poke me on IRC.

GSoC/2010/JacobPeddicord (last edited 2010-03-26 01:57:50 by 208)