Last summer I started a project that seems to be very similar to what
you are describing.
http://code.google.com/p/symbide/
Although it has some limitations, I think the basis is pretty well
written. It supports sympy (e.g. you don't have to define numbers and
variables explicitly), plotting with Matplotlib and Gnuplot, printing
via Latex, export as xml/html, ..
I even implemented a csv import functionality, since I needed it for my
studies.
basti
I did not read all of your post.
But, are you determined to use GTK ?
I would be much happier if you could go with wx -- wxPython.
It is also a quite powerful GUI gramework, and it runs much better on
non-Linux platforms:
I think there is a GTK version for Windows, but it surely is non-native.
Also for Mac -OSX, as far as I know, GTK apps would always depend on
X11 and not be native.
Matplotlib supports wxPython.
I understand that GTK vs. wx is almost a religious question for some
people. But I hope I'm not alone in seeing the advantages of wxPython.
It certainly is a very well developped platform and comes with a super
helpful community. Many SciPy tools (e.g. the new MayaVi2) are build
around wxPython.
Thanks for writing free code,
Sebastian Haase
> --~--~---------~--~----~------------~-------~--~----~
+1. Moreover it can integrate with a lot of existing and to come tools
for scientific python.
Cheers,
Gaël
thank you for your reply. Now I have much clearer view on the project
you would like to do.
> Ok the question I did not answer why I do not work on sage?
>
> I like sage and I think it is really great software. I want to create
> an alternative to the sage webbased interface because I think GTK is a
> superior technology for creating an interactive interface. I think in
> the long run a gtk interface will be easier to maintain and extend
> (things like autocompletion, syntaxcheck, etc can be easily
> implemented with a custom gtk.TextBuffer and gtk.TextView ). I think
> an easy to use and powerful GUI is the key feature to bring open
> source mathematical technology to the mass market.
This is a concrete motivation, which the previous application was
missing. Having light weight version (but full of features and user
friendly) of SAGE notebook is an interesting idea. Note however that
Basti have done a lot work in this field, so I think cooperation with
him would be very fruitful. Then you would have a basis and could
implement more advanced features and, what is more important, it would
be more likely to finish your project in GSoC time frame.
Basti, could you tell us about symbide's status (last commit was on 05 January).
> are you determined to use GTK ?
symbide is written using GTK, so if you would like to extended
symbide's functionality, then GTK is must. I won't judge which is
better, GTK or WX, but if you have good understanding of GTK and know
how to use it efficiently, then it would be better to use it. Of
course there is a point in using WX, as Sebastian suggested.
So, Philip, please write new application, change the title to
something meaningful eg. "GTK based GUI for SymPy" (or something
similar), add motivation why not SAGE notebook, in which details
projects will differ. Also don't forget to say a few words about
SymPy, ie. why for SymPy, what improvements it will gain eg. better
MathML generation code etc.
Mateusz
2008/3/31, PhilippStrack <philipp...@gmail.com>:
In interest of reducing duplication of effort, I wish to mention that
Benjamin Ragan-Kelley is putting a lot of effort in making a notebook
front end for ipython1. He is not talking too much about it, because he
is a guy who code rather than talks.
I must admit I feel that using ipython1 as an execution engine, and
building a notebook interface that is general, and not taylored to a
specific application, like symbolic calculation, is the right way to go.
However, in its current status, there is a lot of work in the ipython1
tree to do, because the goals of the project are very ambitious. I don't
know exactly what the status of the notebook interface is, but I know
these guys have been thinking about it for a long time.
My 2 cents,
Gaël
I asked the same questions and Benjamin has shown us the current
status in Austin - it's pretty impressive. But as you said, still more
work needs
to be done.
I am going to write to ipython-dev to point attention to this thread,
as this application wants to have something useful now. ipython1 is
ambitious and
it may take a year or something, until something usable comes out -
but yet, I like the modular architecture of ipython1.
Ondrej
http://lists.ipython.scipy.org/pipermail/ipython-dev/2008-March/003777.html
Ondrej
I agree with you as far as the timescales. What I am wondering about is
if it would be possibe to reuse part of the exiting code and extend it to
your specific purposes. That way, with some luck, the resulting
short-term solution could one day more easily be ported to use ipython1.
I would love it if the approaches didn't diverge too much.
My 2 cents,
Gaël
Exactly.
I think that the application is quite modular though, so most stuff
should be possible to easily reuse.
Ondrej
I suggest you to subscribe to ipython-dev, and ask there, as I did
(see my link above).
Because not only Benjamin, but also people like Fernando Perez and
Brian Granger will let you know what they think,
as all of them are developing ipython1.
Generally it's good to discuss similar things on the list, because as
you can see, it's a very effective way to quickly get the idea
analyzed from all sides.
Ondrej
First, thanks for the updated application.
Second, let me thank Saroj for the suggestions, I agree with all of them.
Third, I still haven't seen your email to ipython-dev list. :) The
application deadline was extended to April 7, so you still have plenty
of time. IPython guys are really cool and I myself have learned a lot
of thinks from them and besides that, it's important to get in touch
with people doing similar things, so that you can leverage each
other's work. If you write them, I am sure they'll have constructive
comments too.
Thanks,
Ondrej
You already got a feedback on the ipython list. :) Just keep discussing.
Ondrej
Have a look at my last blogpost, the part on the ipython sprint. This is
not trivial, but I suspect the callback approach has a chance to work. I
am actually having a hard time wrapping my head around this problem, and
little time to spend on it.
Cheers,
Gaël
Sorry, I forgot the link:
http://gael-varoquaux.info/blog/?p=26
Gaël
Me neither :->. This is a hard problem. Whatever code you write that
moves forward, whether is has an abstraction layer, or not, will be
useful, because it will help us understand the problems and the necessary
abstractions.
Cheers,
Gaël