Differences between revisions 1 and 152 (spanning 151 versions)
Revision 1 as of 2005-06-27 06:59:05
Size: 9185
Comment:
Revision 152 as of 2006-05-23 14:34:57
Size: 5637
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Python Implementation of the Data Access Protocol = This page is for students and mentors for the [http://code.google.com/soc/ Google "Summer of Code"] projects involving Python and mentored by the Python Software Foundation (PSF).
Line 3: Line 3:
(Roberto Antonio Ferreira De Almeida) Discussion about any Python-related SoC topic should take place on
[http://mail.python.org/mailman/listinfo/soc2006 the soc2006 mailing list]. Joining this list is strongly encouraged for people interested in discussing possible projects, people who'd be willing to help students this summer as mentors, and any students considering applying for the program.
Line 5: Line 6:
The Data Access Protocol (DAP) is a data transmission protocol
designed specifically for science data. The protocol relies on the
widely used HTTP and MIME standards, and provides data types to
accommodate gridded data, relational data, and time series, as well as
allowing users to define their own data types. The initiative is
funded by NASA, and counts with the support of several
institutions. Hundreds of scientific datasets are available on the
internet through DAP servers, which can be accessed remotely by DAP
clients in a transparent and efficient way. Here I propose to develop
a Python implementation of the protocol based on its latest
specification. The proposed implementation will consist of a client
module that will allow Python applications to access remote datasets,
as well as a server for data stored in a variety of formats commonly
used by the scientific community, including NetCDF and Matlab files.
For information on last year's accepted projects, see ["SummerOfCode/2005"].
Line 20: Line 8:
Mentor: Paul DuBois. = Students: How to submit a proposal =

[http://code.google.com/soc/student_signup.html Apply through Google's online form.]

[http://code.google.com/soc/student_step1.html Submit an application.]

The Drupal folks have some good information for students on how you should write your application:

 * [http://drupal.org/node/59963 Student requirements]
 * [http://drupal.org/node/59037 HOWTO write an application]

Here is Google's [http://code.google.com/soc/studentfaq.html Student FAQ].

== Tips on writing your proposal ==

'''Be detailed.'''
Don't say "I want to improve Python's support of XYZ", because that's vague, making it difficult to assess the project's feasibility or the time required. What changes would you make to improve XYZ support?

'''Compare with alternative projects.'''
If your project will do task XYZ, look at other existing projects
that perform the same task and
explain how yours is different or better. (Or you can write a proposal to enhance an existing project instead.)

'''Try to provide a rough timeline.'''
How much time would each change take (a day, a week, six weeks)? What intermediate milestones will there be? (e.g. for a game, you might get an initial graphic display in week 1, write a parser for level definitions in week 2, write a level editor in weeks 3 and 4, etc.)

'''Get feedback.''' Post the proposal to a relevant mailing list and ask for comments. Post the proposal to your weblog and see what people think.

'''Describe your experience.'''
Why are you a good person to work on this project? What skills/interests/knowledge do you have that are applicable?

'''Suggest a mentor.'''
If you know a developer who would be a good mentor for your project,
contact him/her and ask if they're interested. In 2005, some interesting projects went unfunded because there was no one in the pool of mentors who felt capable of handling them.
Line 23: Line 44:
= Interactive Comments & Annotation for the Python Standard Reference = = Mentors: How to apply =
Line 25: Line 46:
(Brian Beck) The mentor's responsibility is to ensure the student makes progress. This could entail coaching them, providing motivation, making sure they aren't stuck, answering technical questions, or pointing the student to the proper resources. However, the mentor is not expected to do work for the student. In order to accomplish this, the mentor is expected to dedicate a couple of hours per week.
Line 27: Line 48:
A flexible system for comments and annotation on web pages, geared towards
the Python standard reference, using Ajax on the client-side and Python on
the server-side.
[http://code.google.com/soc/mentor_step1.html Apply through Google's online form.]
Line 31: Line 50:
Mentors: Ian Bicking, Andrew Kuchling  * [http://mail.python.org/pipermail/python-dev/2006-April/063965.html Announcement made to Python-Dev]
 * [http://code.google.com/soc/mentorfaq.html Mentor FAQ]
 * Contact [mailto:nnorwitz@gmail.com Neal Norwitz]
  * If neither Neal nor Guido know you personally, please provide personal references of some sort.
Line 33: Line 55:
= Bitten: A Python framework for collecting software metrics from automated builds = = Proposal ideas =
Line 35: Line 57:
(Christopher Lenz)
  mentors: gregwilson; trentm | = Bitten: A Python framework for collecting software metrics from automated builds = Today's auto
The ideas on the following pages are just suggestions. You're free to invent your own ideas, and don't have to use these suggestions as starting points.
Line 38: Line 59:
The goal of this work is to design and implementat of a distributed system for automated builds and continuous integration that allows the central collection and storage of software metrics generated during the build. The information collected this way needs to be structured and available in a machine-readable format, so that it can be analyzed, aggregated/correlated and presented after the build itself has completed.  * ["SummerOfCode/PythonCore"]
 * ["SummerOfCode/PythonWebSite"]
Line 40: Line 62:
Mentors: Greg Wilson, Trent Mick. This page can help you craft your proposals to the PSF mentors and their interests.
 * ["SummerOfCode/Mentors"]
Line 42: Line 65:
= A Program Visualization Tool = = Related sponsors =
Line 44: Line 67:
(Tero Kuusela) While not sponsors themselves, the PyPy and Jython projects have many SoC sized tasks available. For PyPy, see [http://codespeak.net/pypy/dist/pypy/doc/independent-project-ideas.html] for some concrete suggestions.
Line 46: Line 69:
The goal is to write, in Python, a functional program visualization
tool that can visualize Python code. With the visualization tool, one
can write a program and see the execution visualized to help
understanding how the program works. This is especially useful to
assist students learning how to program.
Those interested in working in [http://www.djangoproject.com Django] may do so [http://code.djangoproject.com/wiki/SummerOfCode2006 under the auspices of the Django group].
Line 52: Line 71:
Mentor: David Ascher. MoinMoin is also participating as their own organization, see [http://moinmoin.wikiwikiweb.de/GoogleSoc2006] for project ideas.
Line 54: Line 73:
[http://www.bbc.co.uk/rd/ BBC Research] is also a mentor organisation for python projects using the [http://kamaelia.sourceforge.net/Introduction.html Kamaelia] project for audio/video & multimedia/networking related projects, also for graphical construction of systems. Please see our [http://kamaelia.sourceforge.net/SummerOfCode2006.html Summer of Code] page for more details. (BTW, there's some discussion on edu-sig which coincides with some of our aims, so if you're interested in python for schools, talk to us, we can't guarantee anything but you'll understand why we're interested if you chat to us!)
Line 55: Line 75:
The current list of ideas that the Kamaelia project is looking to mentor includes the following:
 * "Trusted Communications" (trusted by the user)
 * "Component bindings to AV codecs"
 * "Modifications of Visual Graphline editors, Reapplication to Graphline Video Editting"
 * "CSS-esque Styling and XML (?) Layout Definition of Pygame Applications"
 * "Collaborative Sketching Server - A P2P Events Backplane Application"
 * "Creation of an integrated bit torrent component"
 * "OpenGL widget framework"
 * "Hierarchical topology visualiser"
 * "Hierarchical Introspector"
 * "Distributed physics"
 * "Primitives for graphical composition"
Line 56: Line 88:
= Object-Oriented File System Virtualisation = = Accepted proposals =
Line 58: Line 90:
(Adam Kerz)

Create an object oriented model of a file system in Python that can be used to interface many different resource types (with appropriate implementations).

Mentor: Trent Mick.

= Wax GUI for Python =

(Abhishek Reddy)


Wax requires work on four broad fronts. Firstly, support for several
basic controls need to be added, some of which are listed
above. Secondly, the design of the whole module has to be reviewed,
particularly focusing on the initialisation. Thirdly, there are
teething problems with passing data between Wax and wxPython that must
be looked at. Fourthly, documentation, presently lacking, needs to be
written.

Mentor: Hans Nowak

= PyTrails =

(Jennifer Dozar)

I'm working on an extensible opensource engine for implementing
trail-style games such as Oregon Trail or Amazon Trail. The primary
goal is to produce a quality edutainment title that can be used free
of cost. The secondary goal is to make it easy for other edutainment
trail games to be created. PyTrails will be Python based and uses
PyGame. The engine will allow following a branching map including
making stops to rest, hunt, or trade. Additional choices such as
shopping and fording rivers may be available at special points. Each
of these activities will be replacable in other trail games as to
allow for maximum flexibility.

Mentors: Cameron Laird, Andrew Kuchling

= mmpy -- A garbage collection tool kit in Python =

(Carl Friedrich Bolz)

The project aims at producing a framework for writing and
evaluating garbage collectors in Python. The interfaces to
the low level memory and to the object model will be general
enough to make it usable for a wide range of projects in
need for garbage collection as well as for teaching and
research purposes. It will be designed with flexibility and
modularity in mind to encourage component reuse. It aims a
being directly useful for the PyPy project and translatable
by its translation tools.


Mentors: Samuele Pedroni, Armin Rigo

= Python to C++ translator =

(Mark Dufour)

As part of my Master's Thesis, I am working on a
Python-to-C++ compilation system.

Mentors: Jeremy Hylton, Brett Cannon

= Mailbox modification =

(Gregory K. Johnson)

I propose to rewrite the Python library's mailbox module to support
mailbox modification. I would extend the module's API (e.g., mailboxes
would sport dictionary-like mapping) and enhance certain existing
functionality (e.g., message objects would maintain
mailbox-format-specific attributes). Full backward compatibility would
be maintained.

Mentor: Andrew Kuchling

= Memory Profiler =

(Nick Smallbone)

I would like to apply to work over the summer on a Python memory
profiler, as listed at CodingProjectIdeas.

To see how much work is involved in this, I've put together a
prototype, which tries to enumerate all objects from a root,
calculating the size of each object it finds.

Mentors: Michael Hudson, Jeremy Hylton

= Python Bayesian Network Toolbox =

(Elliot Cohen)

Understanding about Bayesian Belief Networks and use of them is
becoming more and more widespread. As understanding develops and
spreads out of the research community, there is greater and greater
need for a simple to use efficient open source Bayesian Network
Toolbox. Bayesian Networks have been used to study a wide array of
different areas including, ecological systems, medical diagnoses and
financial modeling, among others. Currently, tools to define and use
Bayesian Networks are limited to expensive closed source libraries or
open source libraries designed for too specific a domain. One package
that does support many varieties of Bayesian Networks is Kevin
Murphy's Full BNT, which supports both discrete and continuous
probability distributions in static and dynamic Bayesian Networks.

Mentor: James Tauber

= asyncIO =

(Vladimir Sukhoy)

The proposed goal is to bring cross-platform proactive I/O
capabilities to Python. That will enable whole new style of
application development with Python in cases when I/O is a bottleneck.

Mentor: Mark Hammond?


= Interactive Python Notebook =

(Toni Alatalo)

See <http://ipython.scipy.org/google_soc/ipnb_google_soc.pdf>.

Mentor: Fernando Perez

= Porting _sre.c and arraymodule.c to Python =

(Niklaus Haldimann)

I would like to create a port of the standard library modules "_sre" and "array" to pure Python. This will benefit alternative Python implementations like PyPy, Jython and IronPython. These projects all have to provide their own implementations of standard library modules written in C if they're not available in pure Python.

Mentors: Armin Rigo, Samuele Pedroni

= Python Profile Replacement Project =

(Floris Bruynooghe)

Idea from ProfileReplacementProject page.

The current profiler is not free according to the DFSG (Debian Free
Software Guidelines) and has been taken out of the main Debian
distribution (bug #293932, http://bugs.debian.org/293932). This
affects many users as the profiler is integrated into ipython for
example[1]. Patches for these programs to run without the profiler
have been incorporated, but this is only patchwork and ipython or one
lost previously standard functionality.

Mentors: Brett Cannon

= Wax =

(Jason Gedge)

This project consists of updating the Wax library for Python. Code
will be updated, or even added, to further develop the Wax
library. Also, a primary focus will be that of documentation, which
Wax currently lacks.

Mentors: Hans Nowak

= Data Serving/Collection Framework in Python/WSGI =

(Ho Chun Wei)

A framework based on bulk data serving/collection via the
internet. Bulk data are in the form of files that could easily be
several hundred MB (not surveys or simple POST data).

The client has a file repository that it wishes to sync to the server
(a WSGI application). This server should be able to facilitate
transfer via a number of protocols, including HTTP file transfer, HTTP
form upload, FTP, Email.

This project is aimed not at yet another ad-hoc file transfer or p2p
file-sharing program but as a persistent production setup for
transferring data from data collection sites/areas to a server,
possibly via internet through different methods to get through strict
organizational firewalls and web admins.

Mentors: Ian Bicking


= A Mathematica-like Notebook GUI for IPython =

(Tzanko Matev)

I propose to write a GUI for IPython resembling the
interfaces of the computer algebra applications Mathematica
and Maple.

Mentor: Fernando Perez
No decisions have been made yet.

This page is for students and mentors for the [http://code.google.com/soc/ Google "Summer of Code"] projects involving Python and mentored by the Python Software Foundation (PSF).

Discussion about any Python-related SoC topic should take place on [http://mail.python.org/mailman/listinfo/soc2006 the soc2006 mailing list]. Joining this list is strongly encouraged for people interested in discussing possible projects, people who'd be willing to help students this summer as mentors, and any students considering applying for the program.

For information on last year's accepted projects, see ["SummerOfCode/2005"].

Students: How to submit a proposal

[http://code.google.com/soc/student_signup.html Apply through Google's online form.]

[http://code.google.com/soc/student_step1.html Submit an application.]

The Drupal folks have some good information for students on how you should write your application:

Here is Google's [http://code.google.com/soc/studentfaq.html Student FAQ].

Tips on writing your proposal

Be detailed. Don't say "I want to improve Python's support of XYZ", because that's vague, making it difficult to assess the project's feasibility or the time required. What changes would you make to improve XYZ support?

Compare with alternative projects. If your project will do task XYZ, look at other existing projects that perform the same task and explain how yours is different or better. (Or you can write a proposal to enhance an existing project instead.)

Try to provide a rough timeline. How much time would each change take (a day, a week, six weeks)? What intermediate milestones will there be? (e.g. for a game, you might get an initial graphic display in week 1, write a parser for level definitions in week 2, write a level editor in weeks 3 and 4, etc.)

Get feedback. Post the proposal to a relevant mailing list and ask for comments. Post the proposal to your weblog and see what people think.

Describe your experience. Why are you a good person to work on this project? What skills/interests/knowledge do you have that are applicable?

Suggest a mentor. If you know a developer who would be a good mentor for your project, contact him/her and ask if they're interested. In 2005, some interesting projects went unfunded because there was no one in the pool of mentors who felt capable of handling them.

Mentors: How to apply

The mentor's responsibility is to ensure the student makes progress. This could entail coaching them, providing motivation, making sure they aren't stuck, answering technical questions, or pointing the student to the proper resources. However, the mentor is not expected to do work for the student. In order to accomplish this, the mentor is expected to dedicate a couple of hours per week.

[http://code.google.com/soc/mentor_step1.html Apply through Google's online form.]

Proposal ideas

The ideas on the following pages are just suggestions. You're free to invent your own ideas, and don't have to use these suggestions as starting points.

This page can help you craft your proposals to the PSF mentors and their interests.

  • ["SummerOfCode/Mentors"]

Related sponsors

While not sponsors themselves, the PyPy and Jython projects have many SoC sized tasks available. For PyPy, see [http://codespeak.net/pypy/dist/pypy/doc/independent-project-ideas.html] for some concrete suggestions.

Those interested in working in [http://www.djangoproject.com Django] may do so [http://code.djangoproject.com/wiki/SummerOfCode2006 under the auspices of the Django group].

MoinMoin is also participating as their own organization, see [http://moinmoin.wikiwikiweb.de/GoogleSoc2006] for project ideas.

[http://www.bbc.co.uk/rd/ BBC Research] is also a mentor organisation for python projects using the [http://kamaelia.sourceforge.net/Introduction.html Kamaelia] project for audio/video & multimedia/networking related projects, also for graphical construction of systems. Please see our [http://kamaelia.sourceforge.net/SummerOfCode2006.html Summer of Code] page for more details. (BTW, there's some discussion on edu-sig which coincides with some of our aims, so if you're interested in python for schools, talk to us, we can't guarantee anything but you'll understand why we're interested if you chat to us!)

The current list of ideas that the Kamaelia project is looking to mentor includes the following:

  • "Trusted Communications" (trusted by the user)
  • "Component bindings to AV codecs"
  • "Modifications of Visual Graphline editors, Reapplication to Graphline Video Editting"
  • "CSS-esque Styling and XML (?) Layout Definition of Pygame Applications"
  • "Collaborative Sketching Server - A P2P Events Backplane Application"
  • "Creation of an integrated bit torrent component"
  • "OpenGL widget framework"
  • "Hierarchical topology visualiser"
  • "Hierarchical Introspector"
  • "Distributed physics"
  • "Primitives for graphical composition"

Accepted proposals

No decisions have been made yet.

SummerOfCode/2007 (last edited 2008-11-15 14:00:01 by localhost)

Unable to edit the page? See the FrontPage for instructions.