Differences between revisions 5 and 6
Revision 5 as of 2010-12-02 12:33:26
Size: 2019
Editor: punchagan
Comment: Changed content about textbook conversion
Revision 6 as of 2010-12-10 00:16:25
Size: 5687
Comment: Add IPython sprint topics
Deletions are marked like this. Additions are marked like this.
Line 38: Line 38:

=== IPython ===

We have a number of possible things to work on for IPython.

* HTML notebook. There is currently an open [[https://github.com/ipython/ipython/pull/179|pull request]] with a draft implementation, but its author has been busy and could use help.

* HTML5 backend support for matplotlib in the html notebook. John
Hunter is also coming to the conference/sprints, so this would make a
perfect topic for joint work. Though I'd love to have finished
merging James' branch before that happens...

* Implementing proper history support in the new Qt console. This is really important for day to day usability, and not terribly hard.

* Website work: I'd like to move us away from the Moin wiki as our
main site into a standalone, sphinx-generated website. The wiki could
continue to exist in a reduced form for purely wiki-type things
(cookbook recipes, etc), but the bulk of the site would be much better
as a sphinx-generated site, hopefully with a nice theme that
differentiates it visually from the standard documentation themes.

This project has the advantage of requiring less/no knowledge of the
core codebase, while being very useful to the project at large.

* Attacking any of the critical bug fixes we have listed on the site,
in particular working on the unicode mess.

* Documentation audit/update. Our docs have fallen badly behind and
need a solid audit to identify the problems, as well as good tutorials
to be written for some of the new features (qt console, new paralllel
branch, etc). Again, very useful and not requiring detailed knowledge
of the codebase. This audit should goes through our docs and label each section with a set of classifiers like: delete, update, rewrite, add, ...

* Updating the docs for the sections that describe completely stable code, APIs and interfaces. There are huge sections of the docs that have not been touched for years and have not even been fully updated to use all that Sphinx has to offer.

* Improving test coverage (and implementing coverage reporting in the
first place, so we know where we stand).

* Auditing and triaging the bug list for obsolete/incomplete bugs that
don't apply to trunk anymore, closing them as needed. Right now we
have a lot of 'weed growth' in the bug list.

* Commenting on the existing open pull requests so that we can move
them forward or merge if ready.

* Create a more full blown QtApp for the qtconsole with useful menus, etc.

* Add new sub widgets that for example show the state of the kernel and have buttons for restarting, etc.

* Allowing the new Qt console to work in a single process. This may
appear paradoxical (since we did all that work to be able to run in
*two* processes), but there are scenarios where someone may want to
embed an IPython rich widget inside an existing application that has a
namespace to be interactively manipulated. Mayavi is a prime example
that does that, and right now it would not be able to use our console,
since the Qt widget expects to be a separate process.

* Develop a curses frontend. Wendell Smith discussed this a while ago
and has some thoughts on the matter, but I don't know if he has made
significant inroads; you may want to ping him first.

* Start experimenting with ZeroMQ to familiarize yourself with this system, as it is at the heart of much of our new system.

If you are interested in any of these, I strongly suggest you read in advance our [[http://ipython.scipy.org/doc/nightly/html/development/index.html|development guidelines]] so that you arrive at the sprints reasonably ready to start doing productive work.

SciPy.in 2010 Sprint Topics

Please specify the topics for sprints that you would like the participants to work on. Where ever relevant, please add links to the bug-tracker or mailing list discussion. Also, it would be nice, if the topics can be classified based on the skill level required to work on them.

scikits.image

We have tasks for everyone from beginners to seasoned coders. We need people to write tutorials, to test code, to implement new features, to adapt source code already available, etc.

Please refer to our development website for a more detailed list!

Textbook Conversion

The idea is to create a repository of Open Educational content in the form of source code to complement text books. This is also and opportunity for the participants to apply the computational techniques they will learn during the tutorials.

We have put together a set of books with increasing complexity and level of prerequisites. Participants are expected to form groups and work on and finish off a textbook of interest during the sprints. These solutions, after a review, will be made available in a public repository.

For beginner of Python/Sage, we suggest the following books:

1. Getting started with MATLAB - Rudra Pratap

2. Calculus of One Variable - Keith E. Hirst

For participants who knew to work on Python/Sage and would like to work on slightly mathematical material, we suggest:

3. Advanced Engineering Mathematics - Erwin Kreyszig [split into three parts]

4. Linear Algebra - Gilbert Strang

5. An Introduction to Partial Differential Equations with Matlab - Matthew P. Coleman

For those who don't want to do anything but physics (!), we suggest:

6. Modern Physics - Kennith Krane

7. Introduction to Dynamics - Ian Percival, Derek Richards

If a group of people are interested in working on a particular book, please feel free to suggest books, before the conference begins.

IPython

We have a number of possible things to work on for IPython.

* HTML notebook. There is currently an open pull request with a draft implementation, but its author has been busy and could use help.

* HTML5 backend support for matplotlib in the html notebook. John Hunter is also coming to the conference/sprints, so this would make a perfect topic for joint work. Though I'd love to have finished merging James' branch before that happens...

* Implementing proper history support in the new Qt console. This is really important for day to day usability, and not terribly hard.

* Website work: I'd like to move us away from the Moin wiki as our main site into a standalone, sphinx-generated website. The wiki could continue to exist in a reduced form for purely wiki-type things (cookbook recipes, etc), but the bulk of the site would be much better as a sphinx-generated site, hopefully with a nice theme that differentiates it visually from the standard documentation themes.

This project has the advantage of requiring less/no knowledge of the core codebase, while being very useful to the project at large.

* Attacking any of the critical bug fixes we have listed on the site, in particular working on the unicode mess.

* Documentation audit/update. Our docs have fallen badly behind and need a solid audit to identify the problems, as well as good tutorials to be written for some of the new features (qt console, new paralllel branch, etc). Again, very useful and not requiring detailed knowledge of the codebase. This audit should goes through our docs and label each section with a set of classifiers like: delete, update, rewrite, add, ...

* Updating the docs for the sections that describe completely stable code, APIs and interfaces. There are huge sections of the docs that have not been touched for years and have not even been fully updated to use all that Sphinx has to offer.

* Improving test coverage (and implementing coverage reporting in the first place, so we know where we stand).

* Auditing and triaging the bug list for obsolete/incomplete bugs that don't apply to trunk anymore, closing them as needed. Right now we have a lot of 'weed growth' in the bug list.

* Commenting on the existing open pull requests so that we can move them forward or merge if ready.

* Create a more full blown QtApp for the qtconsole with useful menus, etc.

* Add new sub widgets that for example show the state of the kernel and have buttons for restarting, etc.

* Allowing the new Qt console to work in a single process. This may appear paradoxical (since we did all that work to be able to run in *two* processes), but there are scenarios where someone may want to embed an IPython rich widget inside an existing application that has a namespace to be interactively manipulated. Mayavi is a prime example that does that, and right now it would not be able to use our console, since the Qt widget expects to be a separate process.

* Develop a curses frontend. Wendell Smith discussed this a while ago and has some thoughts on the matter, but I don't know if he has made significant inroads; you may want to ping him first.

* Start experimenting with ZeroMQ to familiarize yourself with this system, as it is at the heart of much of our new system.

If you are interested in any of these, I strongly suggest you read in advance our development guidelines so that you arrive at the sprints reasonably ready to start doing productive work.

Scipy2010/SprintTopics (last edited 2010-12-16 11:47:48 by punchagan)