Differences between revisions 139 and 140
Revision 139 as of 2006-05-03 03:46:17
Size: 16896
Editor: cpe-66-1-159-102
Comment: Added python job board work
Revision 140 as of 2006-05-03 07:26:18
Size: 16896
Editor: SteveHolden
Comment:
Deletions are marked like this. Additions are marked like this.
Line 56: Line 56:
 * Push-button web. A prototype system exists to manage HTML and ReST content in a relational database and publish it as static HTML. The wxPython GUI needs improvement and a more consistent substitution mechanism is required, together with better documentation and a supporting web content (which should be managed as a push-button web).
Line 127: Line 126:
 * Push-button web. A prototype system exists to manage HTML and ReST content in a relational database and publish it as static HTML. The wxPython GUI needs improvement and a more consistent substitution mechanism is required, together with better documentation and a supporting web content (which should be managed as a push-button web).

These are the [http://code.google.com/soc/ Google "Summer of Code"] projects involving Python and mentored by the Python Software Foundation. Discussion about any SoC topic should take place on the mailing list: [mailto:soc2006@python.org soc2006@python.org] [http://mail.python.org/mailman/listinfo/soc2006 "Click here to join the list."]

For information on the accepted projects for 2005, see ["SummerOfCode/2005"].

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 nice information for students:

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

How to apply as a mentor

The mentor's responsibility is to ensure the student makes progress. This could be 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 following ideas are just suggestions. You're free to invent your own ideas, or to use their suggestions as starting points.

Python language / CPython interpreter

  • Some ideas to help get you started: look at the SimpleTodo and CodingProjectIdeas pages. [http://www.python.org/dev/peps/pep-0042/ PEP 42] also lists feature ideas.

  • Integrate [http://www.nedbatchelder.com/code/modules/coverage.html Ned Batchelder's coverage module] into the core, along with improved performance profiling, and make 'em both thread-smart (so that we can get accurate stats on multicore CPUs).

  • Revive restricted Python -- inspired by a recent thread on the py3k list (would be mentored by Brett Cannon: request that student who takes this on not use it as basis of work to be published because of competition with my dissertation)
  • Add regular code-coverage (both C and Python) to the build system (maybe even to Buildbot?)
  • Provide more and better debugging of reference counting, garbage collection, and other memory issues for extension and embedding authors.
  • Enable I18N identifiers support for py3k.
  • Write tools that leverage the new compiler AST-- tools to analyze code, walk the AST, modify it, allow a modified AST to be compiled back to bytecode. Work on PEP 267.
  • Create a practical statistical profiler designed for inclusion in core Python. (You might want to take a look at Andy Wingo's [http://wingolog.org/archives/2005/10/ statprof] profiler as a starting point. -- SkipMontanaro)

  • The development of the new [http://numeric.scipy.org/ NumPy] has led to good ideas for how to get a generic multidimensional array object into Python 2.6. Somebody willing to work with the NumPy developers to take the essential portions of NumPy and create a basearray (also called a dimarray) that could be included as a base-class multidimensional array object along with a general-purpose data-type object. This project has already been started but needs someone with time to help it along. See the [http://numeric.scipy.org/array_interface.html Array Interface] description page for an SVN check-out. This project has large impact potential for Python.

  • Improve Python threading performance, maybe remove Global Interpreter Lock (GIL). (Note that the chance of getting a remove-the-GIL patch into core Python is probably zero.)

Python libraries

python.org website, docs, tools

  • Automate postings to the [http://python.org/community/jobs/ Python Job Board].

  • Help improve the www.python.org web site production system (pyramid) and write documentation to prepare it for open source release.
  • Help move www.python.org towards dynamic content generation techniques.
  • Improve Buildbot for python use and/or in general.
    • Add a SQL backend to store build results
    • Implement per-test-case "Problem Tracking"
    • write more status display plugins, both web and IM
  • Several DocumentationTools exist for Python. Choose one and improve it. Choose two and combine their features. Choose four or more and take over the world. The Python documentation world, at least.

  • There are a lot of potential [http://docutils.sourceforge.net/ Docutils] and [http://docutils.sourceforge.net/rst.html reStructuredText] projects in the [http://docutils.sourceforge.net/docs/dev/todo.html To Do List]. Some examples (listed in the "Minimum Requirements..." section): Nested inline markup; Python Source Reader; Suitability for Python module documentation.

  • Create a source code analysis tool similar to that used to produce reports in [http://maven.apache.org/ Maven]. Perhaps integrate it with [http://projects.edgewall.com/trac Trac].

Applications in, of or with Python

  • Write a new and useful application in Python.
  • Improve an existing Python application (e.g. [http://wiki.list.org/display/DEV/Summer+of+Code Mailman], BitTorrent, Zope). Some Python-based projects are SoC mentoring organizations in their own right, so you might end up being mentored by them, not the PSF. (You should probably contact a current developer on the project first, to ensure that your plans mesh with theirs. JimJJewett offers to help if you want to work on [http://www.plkr.org plucker], which lets you read web pages on a disconnected palm pilot.)

  • Add a web-based admin interface and/or user-oriented views to [http://www.third-bit.com/drproject DrProject], a lightweight project management portal intended for use in software engineering courses.

  • There are a number of potential TurboGears projects that may be interesting related to Kid, SQLAlchemy and TurboGears itself (like the FastData package).

  • A web-based offering through-the-web editing (with version control), execution, and testing of code (see ["/WebIDE"])
  • Create a full-featured WSGI app server (taking into account projects like [http://www.saddi.com/software/flup/ flup]) with special attention to things like resource usage and restarting after crashes, to make it suitable for commodity hosting environments ([mailto:ianb@colorstudy.com contact]).

  • A client side web browser. Grail is not currently maintained, and the others are almost entirely for automated or testing purposes, without a good interactive mode. But try to keep the scope reasonable, somehow. Perhaps hooking beautifulsoup or tidy to elementtree, urllib or urllib2, cookielib, and a text (or very basic) Tk front end? Do keep the DOM exposed, so that others can build on it more easily. Alternatively extracting an HTML 2 Tk widget from the grail project and them building more support of HTML 4 into in would be very useful.
  • [http://pyxides.stani.be/ PyxIDE] has several potential projects related to IDEs in Python. Real-time code analysis would be a good project (which could in turn be used to build auto-completion and other tools).

  • Improve the Eclipse IDE's support for Python: http://pydev.sf.net

  • Improved python code generation support in umbrello [http://uml.sourceforge.net/index.php] or alternatively a pure python implementation to parse umbrello files and generate python code.

  • Bring [http://www.enthought.com/enthought/wiki/MayaVi MayaVi 2's] feature set up to the level of [http://mayavi.sourceforge.net MayaVi 1.5] ([mailto:robert.kern@enthought.com contact]).

  • integrate Bayesian Filtering with MoinMoin. see: [http://gauss.ffii.org/BayesWiki full proposal]

    • isn't this better under the MoinMoin mentors? see below..

  • [http://pywinauto.pbwiki.com/ pywinauto]

    • Create tool to allow macro recording (possibly using pyAA or pyHook - or other tools).
    • Research how one pywinauto script can work on any number of (spoken) languages.
  • [http://regal.sdsu.edu/stars Stars]

    • Space Time Analysis of Regional Systems
    • Assist with the refactoring of this program... Tasks include, visualization, interaction and data structures.
  • Push-button web. A prototype system exists to manage HTML and ReST content in a relational database and publish it as static HTML. The wxPython GUI needs improvement and a more consistent substitution mechanism is required, together with better documentation and a supporting web content (which should be managed as a push-button web).

Related sponsors

While not sponsors themselves, the PyPy and Jython projects have many SoC sized tasks available. For PyPy project has lots of SoC sized tasks. 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. (There's some discussion on edu-sig which coincides with some of aims BTW, 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!)

Accepted proposals

Note: if a project is listed as having two mentors, the first mentor listed is the primary mentor, and the second one is the back-up mentor.

  • None yet.

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

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