[IPython-user] Workspaces with Embedded IPython

Gael Varoquaux gael.varoquaux@normalesup....
Thu Aug 14 18:16:49 CDT 2008


On Thu, Aug 14, 2008 at 02:37:03PM -0700, Fernando Perez wrote:
> >> Please allow me to bore everyone with an outline of my project (and
> >> indirectly respond to Ryan's question).  Everyone's help on the
> >> workspace issue was so useful, I'd love to some general guidance
> >> before I waste too much time going down blind alleys.  Some of my
> >> design issues are beyond the scope of this ipython e-mail list.   I
> >> plan to start posting to pertinent bulletin boards, but I'd rather
> >> list all my main architecture questions;  just ignore points that are
> >> irrelevant.

> >>  My goal is to create an OS (BSD-license) tool for processing
> >> time&frequency data.  This is a fairly small niche, but one that would
> >> be well-served by the growing python-based replacements for Matlab.
> >> It requires specialized algorithms (I'm 75% done writing these),
> >> decent plottings capability (2D, Log-log and some 3D), some
> >> interactions with plotting and customizable scripting (hence the need
> >> for workspace interaction).  Using python, ipython, numpy and wxpython
> >> as the foundation seems pretty certain.  I'm still evaluating the
> >> various plotting engines (matplotlib, chaco).

Sounds great. It fits quite well with my own personnal goals: develop
good interactiv tools for scientific computing with Python. I was paid by
ENthought to work on the Ipython wx widget for this purpose and I would
say it is one of the key elements of my approach.

As far as the rest of the techonology stack I plan to use:

 * GUI: Wx python, beause it is BSD-license-compatible and
   cross-platform. But I want to restrict the amount of Wx code that I
    write to a few widgets (like the IPython one) as wx tends to induce tight
    coupling and to let the model bleed in the UI or vice-versa.

 * Enthought-Traits: that my main tools for event-driven programming and
   GUIs. I love it.

 * Enthought-Envisage: in the long run we need a plugin architecture, to
   be able to get the 3D plotting GUI from one program, the spreadsheet
   display from another, ... Envisage is very abstract and slows down the
   development process, so I wouldn't introduce it too early, but I think at
   some point you gain in using it (envisage 3, not 2).

 * Matplotlib: the scripting API is excellent, the output-quality is
   fantastic. I would definitely like to expose MPL's pylab in the shell,
   and intergate the windows.

 * Enthought-Chaco: Matplotlib is a bit slow at redrawing and in
   interaction. It doesn't have an event model as good as Chaco. I would
   base my interactive plotting (eg right click on an array -> plot, or
   oscilloscope-type view) on Chaco

 * Mayavi2 for 3D plotting: what can I say? I have been working on
   Mayavi2 to make it easy to use in the context of a Python IDE for more
   than a year. IMHO this is by far the best option for 3D plotting, and
   it is very interactiv.

Are you coming at Scipy? It would be great to dicuss our ideas. Evan
Patterson and I have started a small experimental project on an IDE in
the last days (nothing to show yet guys, sorry, we are just
experimenting).

Keep in contact, and join us on the enthought-dev mailing-list. We are
all very excited about these prospects, and we need to work together
rather than duplicate the efforts.

Gaël


More information about the IPython-user mailing list