While we're on the plot window...



C Y wrote:
> 
> --- Richard Fateman <fateman@cs.berkeley.edu> wrote:
> 
> > Although it is sometimes considered impolite to
> > question
> > why people are programming up anything, I can't
> > resist
> > asking you why you are doing this.
> 
> No problem.  Most advanced users of maxima will find
> MathShield cumbersome and useless, so I don't blame
> you for asking.  I'm targeting this for people like
> myself and my fellow students, who basically just want
> to compute a few integrals now and then and are not so
> great at command line stuff.

If you have a command structure in Mathshield that requires no
learning,  that would be interesting; is that the
point?  If it is just something else to learn, why would
fellow students like it any better? Do you have any
tests to show that it is easier to use?


>Also, it's a learning
> experience for me in terms of coding, tools like cvs,
> and how to think about designing and debugging, since
> I've never really done any of that before beyond my
> intro CS courses.

"It's a learning experience" is
a good excuse for a student to do almost
anything :)

> 
> > In particular, why
> > are you using MathML,
> > which so far as I can tell is
> > quite unsuitable for this purpose.
> > For example, how
> > do you encode
> > "interrupt the computation"?
> > How do you encode a macsyma program as MathML,
> > except
> > perhaps as a text string, in which case, what's the
> > point?
> 
> The way I hope to work this will be somewhat similar
> to the way Mathematica has done it, i.e. formatting
> things like fractions, square roots, exponents and
> integral signs, while allowing people to enter text
> commands when it suits their purpose (like
> programming.) 

I believe that Mathematica does not use MathML, though
it is willing to produce it if you wish. There is a
protocol used for communicating between front and
back ends of Mathematica  (mathtalk?) and there is
also a protocol with Maple (or used to be... Irena,
I think), and the commercial Macsyma uses some kind
of Lisp, plus some signalling mechanism.  You have
no signalling mechanism, and perhaps don't understand
why you need it.  


> From the mathml, perl scripts can then
> be used to process the expression down into maxima
> syntax,

If you are writing the front end, why not just have
the front end talk to the back end in something that
the back end already understands.  There are two
obvious choices:  the macsyma command language and the
underlying lisp.   You are just making more work
for yourself by having to write a translator into
mathml and a translator out.  You are also increasing
the bandwidth requirements by a factor of 50 or so as
well as lacking vital communication protocols, which
you presumably would just make up in some non-standard
way.
There are also programs to display math in typeset
form (in lisp, and also see MINSE/glyphd, which I am using,
which produces little GIFs for human consumption).

> and then the same process in reverse can
> translate certain parts of the answer into MathML
> (leaving some as text) and send the to the display
> widget.

You seem to be concerned with perl and tk.  Do you
know lisp?  I think your project will require it,
and you might find that you will not need much else.


>  For example, if I were entering an expression
> with multiple fractions, exponentials within
> exponentials, and other such fun complexities, I would
> want to see it displayed in a formatted form in order
> to better keep track of it.

Maxima already does this.  Why not ask Maxima to 
send you the formatted expressions. 

>  However, for other things
> like writing macsyma programs, you are correct in
> saying that Mathml would be useless and a hinderance,
> so in those instances the Mathml would give way to
> pure text entry, which would still be allowed.
> Basically this is aimed at making a few of maxima's
> abilities easier to use (at least for a user like me)
> while hopefully not making more advanced usage
> impossible.
> 
> The reasons I picked MathML specifically are that
> there has already been some work done on a GTK display
> widget for MathML called GTKMathView and the hope that
> MathML abilities in Mozilla would eventually open up
> some possibilities for easy display of math notebooks
> on the web.

There is already math display (even conversion into
TeX) in maxima.  Are you going to go through every
construction in Maxima and convert it into MathML? Guess
what... not everything in Maxima has a MathML encoding.
And are you going to convert everything in MathML into
Maxima?  Guess what... some things may not be in Maxima.

> 
> So that's the idea - to add formatting where it is
> helpful and add some graphical tools for people who
> (like me) are bad at remembering the syntax rules.
> Maybe a good analogy would be the Lyx program - most
> advanced users use raw latex or tex because they have
> more power and options, but a lot of people use Lyx
> because it makes things simpler for them and their
> needs are modest.  Lyx allows TeX expressions, but
> also provides buttons for basic functionality.  I've
> use Lyx quite a bit, and I've found I like that
> approach. 

I've never seen Lyx.

>  You can start out doing things slowly with
> the graphical buttons, but the equations are entered
> as equations with immediate visual feedback rather
> than long, cryptic text strings and as you gradually
> learn the TeX commands you get faster.  To me, it
> seems like a good way for beginners to approach maxima
> too.  Whether I can pull it off or not is something
> else again, but it never hurts to try and the worst
> that will happen is that I'll know more rather than
> less.  :-)

No, here's worse... you will
waste a bunch of your time, do poorly in classes, drop
out of school, fail to impress the potential spouse
of your dreams of the suitability of your genes. 
Disappoint Mom & Dad that they don't have grandchildren,
etc etc.  :)

Good luck.
 RJF