Today at the AMS meeting Tom Boothby and I had a long talk with the
people at the "Wiris Booth":
http://www.wiris.com/
Wiris is a closed source commercial math software company that makes a
web-based interface
to their own custom mathematical software. They ended the
discussion by telling us that their
web-based interface is (going to be) much better than ours.
It would be good for you to take a look at what Wiris does if you are
interesed in
the Sage notebook. Ted Kosan, you might particularly find Wiris
interesting since
it is a 100% java app instead of javascript.
William
--
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org
> It would be good for you to take a look at what Wiris does if you are
> interested in the Sage notebook.
Here is a direct link to the demo applet. Just click the link, wait a
bit for the applet to load, and then play with it.
http://www.wiris.com/applets/CAS/en/cas_1_en.htm
> Ted Kosan, you might particularly find Wiris interesting since
> it is a 100% java app instead of javascript.
>...
>They ended the discussion by telling us that their web-based
>interface is (going to be) much better than ours.
The Wiris notebook Applet seems to provide a good opportunity to
discuss notebook strategy.
I like the AJAX notebook. But my position is that an AJAX-based
notebook that is so good it pushes the limits of what AJAX can do
would still be no where near as capable as a well-written Java
Applet-based notebook. I think Java is at least an order of magnitude
more capable than Javascript is and I don't see this changing anytime
soon. Execute the following two blocks of code in separate worksheet
cells for a further demonstration of this:
#GUI widgets.
html('<applet id="mathrider"\
code="SwingSetApplet"\
width="695" height="525"\
codebase="http://sage.math.washington.edu/home/tkosan/mathrider/SwingSet/"\
archive="SwingSet.jar" MAYSCRIPT></applet>')
#2D graphics.
html('<applet id="mathrider"\
code="Java2DemoApplet.class"\
width="695" height="525"\
codebase="http://sage.math.washington.edu/home/tkosan/mathrider/Java2D/"\
archive="Java2Demo.jar" MAYSCRIPT></applet>')
So, if people want a notebook that can do everything the current
notebook can do, plus is capable of doing everything that the Wiris
notebook can do (and the Mathematica notebook for that matter), Java
is the technology for the job for the foreseeable future :-)
Ted
> And it is supposed to work with what? On Linux I get a blank page with
> firefox and konqueror - opera just went and crashed.
> I certainly won't take seriously a product of that kind, that I cannot
> test on Linux.
FWIW, it worked for me under Ubuntu Gutsy with firefox...
I did notice one neat thing it had: the represent() command, which
does the kind of nice plot that Ondrej was recently referring to (take
a function and plot it with asymptotes, critical points, etc, with a
single command that figures the whole thing out).
Cheers,
f
I'm using OSX 10.5.1 on a standard mac laptop, and I just
get a blank screen too.
William
That's weird. On my Core Duo (10.5.1), it works just fine...(I tried
the CAS, and clicked the "represent -> plotter" line).
Is there anything showing up in your logs when you do this? I
usually open Console, select "all messages" and then "insert marker"
before trying something I'm tracking down. That helps keep the chaos
from the logs manageable.
Justin
--
Justin C. Walker, Curmudgeon-at-Large
() The ASCII Ribbon Campaign
/\ Help Cure HTML Email
It works for me now. I think there was a problem because the network
I was on was slow /flakie.
-- William
> And it is supposed to work with what? On Linux I get a blank page with
> firefox and konqueror - opera just went and crashed.
> I certainly won't take seriously a product of that kind, that I cannot
> test on Linux.
It takes a while for the applet to load the first time. I had to wait
for a minute or two for it to fully load.
Ted
> but I'm more
> and more convinced that a huge java applet is not the best way for any
> webbased project. There are two things to consider: 1. it is much
> heavier, concerning load time/memory and so on.
With bandwidth and memory capacity increasing exponentially, this is
fast becoming a non-issue.
>it depends on
> installing java, that's not default on win32!
But Java installs so easily on win32 that I don't know anyone who has
a problem doing this anymore. Beyond this, Java runs reasonably
uniformly across the major browsers which will avoid most of the
multi-browser difficulties the Javascript notebook faces. Another
plus is that most cell phones also run Java.
> and 2. on the javascript
> side, in the future a lot will change when there are good JIT
> compilers. this could make js-code possibly ~10-100x faster!
Javascript will become quicker but what I am even more interested in
are Java's huge libraries and the huge and growing amount of open
source software that is written in Java. I don't see Javascript
matching this any time soon, if ever.
Beyond this, Java is still the most popular programming language in
existence (http://www.tiobe.com/tpci.htm) and so it is an extremely
safe bet by almost any metric :-)
Ted
On Jan 8, 2008, at 2:29 PM, Ted Kosan wrote:
>
> Harald wrote:
>
>> but I'm more
>> and more convinced that a huge java applet is not the best way for
>> any
>> webbased project. There are two things to consider: 1. it is much
>> heavier, concerning load time/memory and so on.
>
> With bandwidth and memory capacity increasing exponentially, this is
> fast becoming a non-issue.
I disagree with this. In the same way that the stock market, say,
builds in the "common wisdom" about the future into the current price
of any stock being traded, developers are building in an expectation
of future bandwidth and capacity to the products they are developing
now.
The overall performance gain for new hardware does not compare to the
actual raw numbers, since the software is generally at or ahead of
that performance curve.
Is running Vista on last year's ThinkTank recommended?
I think Harald's comment is apt.
Justin
--
Justin C. Walker, Curmudgeon-At-Large, Director
Institute for the Enhancement of the Director's Income
--------
The path of least resistance:
it's not just for electricity any more.
--------
I've heard that before! But I don't believe this is the panacea!
>
>
>> it depends on
>> installing java, that's not default on win32!
>
> But Java installs so easily on win32 that I don't know anyone who has
> a problem doing this anymore. Beyond this, Java runs reasonably
> uniformly across the major browsers which will avoid most of the
> multi-browser difficulties the Javascript notebook faces. Another
> plus is that most cell phones also run Java.
>
>
-1
>
>> and 2. on the javascript
>> side, in the future a lot will change when there are good JIT
>> compilers. this could make js-code possibly ~10-100x faster!
>
> Javascript will become quicker but what I am even more interested in
> are Java's huge libraries and the huge and growing amount of open
> source software that is written in Java. I don't see Javascript
> matching this any time soon, if ever.
>
> Beyond this, Java is still the most popular programming language in
> existence (http://www.tiobe.com/tpci.htm) and so it is an extremely
> safe bet by almost any metric :-)
>
-1
Maybe java is popular, but ask your self why? Managers want it, but they
usually don't know why!
Ok, I once thought java was the way to go, but now I'm a convert.
I hate java. E.g. why the hell the new jmoll graphics does not work on
my Fedora 7 install from the sage command line?
Jaap
>
> I think Harald's comment is apt.
>
+1
Jaap
> > With bandwidth and memory capacity increasing exponentially, this is
> > fast becoming a non-issue.
> >
>
> I've heard that before! But I don't believe this is the panacea!
The exponential growth of computing indicates that by 2020, a $1000
computer will have the same capacity as a human brain. By 2050, a
$1000 computer will have the same capacity as all the human brains on
the planet.
http://en.wikipedia.org/wiki/Image:PPTExponentialGrowthof_Computing.jpg
http://www.kurzweilai.net/meme/frame.html?main=/articles/art0134.html?
To me, exponential growth seems more like magic than anything else,
even if it is just simple science :-)
If these projections are even close to being accurate then computer
capacity is not going to be a problem for Java. I truly believe that
the real issue we will be dealing with in the not so distant future is
the best way to upload Sage into human brains.
> Maybe java is popular, but ask your self why? Managers want it, but they
> usually don't know why!
Java is one of the most popular languages for manager-free open source
projects on sourceforge too:
http://www.cs.berkeley.edu/~flab/languages.html
I agree, though, that Java has a significant amount of hype associated
with it and this is definitely a distraction.
> Ok, I once thought java was the way to go, but now I'm a convert.
> I hate java.
Truth be told, I like programming in Python better than Java when this
is feasible. For rich cross-platform browser-based applications,
however, it is difficult to beat.
>E.g. why the hell the new jmoll graphics does not work on
> my Fedora 7 install from the sage command line?
Some of this might be due to the quickness with which jmol was added
to Sage so that it could be demonstrated at the AMS meeting.
Ted
Count me off!
>
>> Maybe java is popular, but ask your self why? Managers want it, but they
>> usually don't know why!
>
> Java is one of the most popular languages for manager-free open source
> projects on sourceforge too:
>
> http://www.cs.berkeley.edu/~flab/languages.html
>
People and lemmings have something in common! See the primaries in the USA.
The best thing java has brought us is Jython.
> I agree, though, that Java has a significant amount of hype associated
> with it and this is definitely a distraction.
>
>
>
>> Ok, I once thought java was the way to go, but now I'm a convert.
>> I hate java.
>
> Truth be told, I like programming in Python better than Java when this
> is feasible. For rich cross-platform browser-based applications,
> however, it is difficult to beat.
>
I'm not convinced as long Microsoft exists!?
>
>
>> E.g. why the hell the new jmoll graphics does not work on
>> my Fedora 7 install from the sage command line?
>
> Some of this might be due to the quickness with which jmol was added
> to Sage so that it could be demonstrated at the AMS meeting.
>
Don't think so. It just demonstrates that java is not the
ubiquitous platform to rely on!
Jaap
>
> Jaap wrote:
>
>>> With bandwidth and memory capacity increasing exponentially, this is
>>> fast becoming a non-issue.
>>>
>>
>> I've heard that before! But I don't believe this is the panacea!
>
> The exponential growth of computing indicates that by 2020, a $1000
> computer will have the same capacity as a human brain. By 2050, a
> $1000 computer will have the same capacity as all the human brains on
> the planet.
You may be confusing capacity with capability :-}
Regardless of the capacity of whatever shows up in the morning, these
things will still be programmed by humans, who are notoriously
clueless about how the brain works. That means that neither the
hardware nor the software will be any more efficient than they
currently are, and in addition, the software is being increasingly
developed by programmers who are relying on that capacity to cover up
for a real lack of talent and understanding.
That last isn't intended as a slight/insult. I mean that more and
more people are getting hauled into the programming profession
without any real understanding of the job. "Java is so simple a
child can use it" is something that (while hyperbole) product
development managers seem to believe. This is one of the reasons
(but certainly not the only) that we don't see an overall increase in
"system performance" to match what we see in our hardware components.
Your comment that "computer capacity is not going to be a problem for
Java" seems indicative of that mind-set.
I don't think Moore's Law figures into this: hardware and software
will continue to progress to meet each other's demands, and when one
slows, the other will too.
Justin
--
Justin C. Walker, Curmudgeon-At-Large
Director
Institute for the Enhancement of the Director's Income
--------
"Weaseling out of things is what separates us from the animals.
Well, except the weasel."
- Homer J Simpson
--------
Java simple? Teaching experience tells me that learning java is only
possible under the condition that you know java!
[..]
Jaap
Anyway, what I am more interested in than specific Sage client types
is a good way for all client types to talk with Sage. Here is Wiris's
communication architecture:
http://www.wiris.com/images/stories/architecture_en.jpg
What I would like to have in Sage is a protocol like what Wiris seems
to have which is general enough to be used even with something out of
the ordinary like educational portal software.
I would like to use the protocol to allow Java applets to communicate
with Sage, but I would also like to use it to allow OpenOffice to
communicate with Sage directly and SecondLife to communicate with it
using its scripting language.
Any ideas on what a protocol like this would look like?
Ted
Just to break up the tension in this thread a little bit, here's my
idea of what it might look like:
http://sage.math.washington.edu/home/was/tmp/architecture_en.jpg
William
Java is for dinosaurs. Flash for the win! You can make pretty loading bars, *super* snazzy interfaces, and it's easy to use. Also, it can easily play sound (which the javascript notebook will probably not be capable of, ever). Flash has much better cross-platform support; it's a true web technology.
Just a quick question: Isn't Flash a closed-source commercial product, hence
completely unsuitable for use as a core technology in Sage? (In contrast,
Java is (supposed to be?) GPL'd now. )
-- William
Yes it is closed (btw, I don't think Tom was advocating the use of
Flash in Sage, just pointing out the fact that it is near-perfect for
web developement in his view). I just want to point out the obvious
about Javascript: it's a bona fide platform for web development that
is "installed" by default on most modern browsers. You actually have
to install Java (now that it's GPL-compatible) and you don't gain much
in the short run for web dev. If you want to get serious about web
development why not ship PHP, which was specifically written for the
web?
So it's -1 from me on Java *for web dev*. I would not discount Java
for other things: a combination of Java platform + scripting language
(like python, php, perl) could open up exciting possibilities for Sage
.
didier
>
>
> >
>
> Just to break up the tension in this thread a little bit, here's my
> idea of what it might look like:
>
> http://sage.math.washington.edu/home/was/tmp/architecture_en.jpg
The idea of separating the Sage computation engine from the notebook
server looks interesting. I took that idea, expanded upon it and then
added standard web service protocols
(http://en.wikipedia.org/wiki/Web_service):
http://sage.math.washington.edu/home/tkosan/misc/web_service_architecture.png
Ted
Yes, and as Michael almost detected, I was being sarcastic. Didier is nearly right -- I think flash is neat, and in some ways better than Java: relevantly, for web-based software.
Here's the truth, though. Memory and time concerns regarding Java are nearly insignificant when compared to javascript. However, javascript is nearly platform-independent (though there are a number of freakish differences, the gap is diminishing), and it is a *very* active area. The amount of Java on the web has remained nearly constant since the late 90's, support has gotten better in places, and worse in others. Everybody has their own opinion on what technology is best, and they all have great justifications. The notebook works, and it's being improved.
If Ted wants to write a Java notebook, cool. If Timothy wants to write a Flash notebook, cool. I'd really prefer people to help out with the notebook, since homework already keeps me stretched thin, and I'd rather be writing more mathematical code. But hey, y'all are volunteers -- do what you want. I'll complain if the interface design sucks, and try to offer constructive advice.
http://sage.math.washington.edu/home/boothby/web_service_architecture_joke.png
(tongue firmly in cheek)
>I'd really prefer people to help out with the notebook, since
homework already keeps me.
>stretched thin, and I'd rather be writing more mathematical code.
But hey, y'all are volunteers -- do what you want.
I am about 1/3 of the way through the O'Reilly JavaScript book and I
think I will be able to help out with the notebook by the time I
finish it. I have been spending time studying the notebook code and
it is starting to make sense. What would be helpful, though, is if
all the functions in the notebook had some comments added to them :-)
Ted
> Excellent idea, Ted. I took your idea, expanded upon it, and added standard scalable development concepts to accelerate the synergy of the web service protocols you've proposed.
>
> http://sage.math.washington.edu/home/boothby/web_service_architecture_joke.png
>
> (tongue firmly in cheek)
That's quite funny :-)
Anyway, in about the same amount of time it took you to put that
together, I got a graphic equation editor working in the notebook.
Just execute the following code in a notebook cell for a
demonstration:
html('<applet id="mathrider"\
width="540" height="322"\
archive="Project.jar,AbsoluteLayout.jar,swing-layout-1.0.jar,jdom.jar,jep.jar"\
code="Display.MainApplet.class"\
codebase="http://sage.math.washington.edu/home/tkosan/mathrider/DragMath/applet/classes"\
name="DragMath">\
MAYSCRIPT </applet>')
Ted
Maybe it's just that my system senses my inate hostility to Java, but
this doesn't seem to work well for me (Mac OS X, 10.4.11, Safari 3
Public Beta, whatever version of Java I have).
I pasted the above snippit into the notebook, and evaluated it,
giving me a sort of Java-looking subwindow. I could type a few
things, but after I started clicking on icons, the interface ground
to a halt, and icons got repainted in the wrong places as I clicked.
Java: write once, run occasionally. :-}
Justin
--
> Maybe it's just that my system senses my inate hostility to Java, but
> this doesn't seem to work well for me (Mac OS X, 10.4.11, Safari 3
> Public Beta, whatever version of Java I have).
>
> I pasted the above snippit into the notebook, and evaluated it,
> giving me a sort of Java-looking subwindow. I could type a few
> things, but after I started clicking on icons, the interface ground
> to a halt, and icons got repainted in the wrong places as I clicked.
Perhaps this would help?:
http://www.apple.com/downloads/macosx/apple/macosx_updates/javaformacosx104release6.html
Ted
Sorry; I should have noted the version installed here. I installed
this last month, so that's not the issue.
Justin
--
Justin C. Walker, Curmudgeon-At-Large, Director
Institute for the Enhancement of the Director's Income
--------
> Sorry; I should have noted the version installed here. I installed
> this last month, so that's not the issue.
Does this code work? It is the standard GUI widget demo that is
distributed with the Java development kit:
#GUI widgets.
html('<applet id="mathrider"\
code="SwingSetApplet"\
width="695" height="525"\
codebase="http://sage.math.washington.edu/home/tkosan/mathrider/SwingSet/"\
archive="SwingSet.jar" MAYSCRIPT></applet>')
Ted
Since we're comparing Java to Javascript for the purposes of an equation editor,
I did a quick google search and found that the author of jsmath wrote
a javascript
equation editor. Please try it out:
http://www.math.union.edu/~dpvc/talks/2006-12-08.IMA/editor.html
It uses jsmath to implement an equation editor. Lets see how many
people have trouble using this and how many don't, and what you think
of how it looks.
-- william
Roughly the same behavior: I think the Java engine gets confused
about where things are, so it ends up repainting in the wrong place.
In this case, I could get the menus (File, Options, ...) to drop by
clicking below and to the right of where they appeared on-screen.
After a while that seemed to cure itself.
This graphic (from The "RadioButtons" view) shows what might be a
glitch (I haven't seen this operate, so it's a guess; the "blotch"
will show up below and to the right of whatever circle I click on):
> Roughly the same behavior: <snip>
It looks like this is a known issue:
"
According to Apple specs OS X 10.5 Leopard already runs the newer
Version (J2SE 1.5.0_13 and 1.4.2_16),. However, Tiger and Leopard use
different build numbers, so problem seems limited to Tiger 10.4.10 and
.11, and only if updated with Java Release 6 (installs J2SE 1.5.0_13
and 1.4.2_16 in OS X 10.4.10 & .11). Previous Release 5 for Tiger
(installs J2SE 1.5.0_07 and 1.4.2_12), as well as Safari 3 (in Combo
Update 10.4.11) and all earlier Apple updates improved things quite a
bit from the start, but from now on: better test those Apple updates
on a non-Oanda-critical system.
"
The full forum thread is here which discusses workarounds:
http://www2.oanda.com/cgi-bin/msgboard/ultimatebb.cgi?ubb=get_topic;f=17;t=003729
Ted
The editor seems to work well, and since it has few moving parts,
there is little to go wrong :-}. It's pretty hard to judge based on
the simple "worksheet" in this presentation (unless I missed
something), but it looks OK to me.
The comparison would be better if the site were in some way
equivalent to what Ted cobbled up.
A couple of points in favor of the jsMath version: more ability to
use the keyboard. Even in Mathematica, selecting a particular form
plants the "template" for the form in the editing area.
In the Java version, you select the form, which gives you a floating
template, which you then have to place in the editing area (e.g., for
exponentiation). In addition, it appears only some of the components
of the equation are editable (in "X+Y", I can select and change "X"
and "Y", but not "+"?), and navigating between these "components" is
not simple ("TAB" sometimes works, but not "->"?).
I don't know whether these are limitations of the model, or of the
quick mockup Ted did.
This works for me quite well (Debian sid, epiphany), but needs more
polishing (for
example I tried sin(pi)) and it didn't look as pretty as latex. :)
To take my part in the flamebate, I also prefer ajax, as this is slow,
and maybe it sucks, but it works. java is maybe gpl,
but it is not in Debian (there are some licensing problems with some
parts of the java,
but I didn't dug into it). And as seen in this thread, ajax mostly
works for everyone,
but not java.
Ondrej
> In addition, it appears only some of the components
> of the equation are editable (in "X+Y", I can select and change "X"
> and "Y", but not "+"?),
Double click on the operator to select it and then select a
replacement operator from the pallet.
>and navigating between these "components" is
> not simple ("TAB" sometimes works, but not "->"?).
<tab> moves forward through the equation and <shift><tab> moves backwards.
Some documentation is available here:
http://www.dragmath.bham.ac.uk/doc/index.html
Ted
They layout is actually 100% identical to latex, since it is a
complete javascript
implementation of the TeX math layout algorithm.
If you install the jsmath fonts, which are tiny 120KB download from
http://www.math.union.edu/~dpvc/jsMath/download/jsMath-fonts.html
then using the above javascript equation editor demo will look exactly 100%
identical to LateX. I've attached a screen shot. Otherwise jsmath just
uses unicode fonts that don't look as good.
-- William
>
> To take my part in the flamebate, I also prefer ajax, as this is slow,
> and maybe it sucks, but it works. java is maybe gpl,
> but it is not in Debian (there are some licensing problems with some
> parts of the java,
> but I didn't dug into it). And as seen in this thread, ajax mostly
> works for everyone,
> but not java.
>
> Ondrej
>
>
> >
>
--
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org
On Wed, 9 Jan 2008, Ted Kosan wrote:
> The clicking & dragging interface is *painful*. I can't see using that for anything more than a few symbols.
I agree, the interface is not very usable. On the plus side, however,
the application's core looks solid and the project looks fairly
active:
0.6.2 Notes (2007-12-23 12:02)
0.6.1 Notes (2007-12-18 13:40)
0.6 Notes (2007-12-12 06:36)
0.5 Notes (2007-09-20 07:34)
0.4 Notes (2007-08-17 11:11)
My thought is that there is a good chance they would improve the user
interface if given some feedback.
Ted
This definately has some little issues that I don't like (for example, typing "in", which you might want to be the product i*n), but this looks good and works very well. Also, it's very fast.
For the record: I will *never* use any interface that requires me to use the mouse for non-trivial input, except for paint programs (well... I guess, if somebody wanted to pay me $100 and hour to do so...), and I won't inflict such interfaces on others. DragMath is a dead end, in my mind. This is a very nice start.
>This is a very nice start.
But the original discussion was about Javascript vs. Java as a
technology for enhancing the notebook. I think that Wiris provides a
good example of what Java is capable of in this area but it would be
unfair to compare the Javascript equation editor to Wiris CAS since
the Javascript one is unfinished (I like what it can do so far
though). Has anyone been able to find a finished Javascript-based
equation editor that can be used for an apples-to-apples comparison
with Wiris CAS?
Ted
What is unfinished about it? Just because the author had/has more
plans for it doesn't mean it isn't very useable now (more so, I would
argue, than a drag-n-drop interface).
- Robert
> What is unfinished about it? Just because the author had/has more
> plans for it doesn't mean it isn't very useable now (more so, I would
> argue, than a drag-n-drop interface).
Mouse positioning of the cursor, cut and paste, multiple fonts, font
resizing, multiple equations on one "sheet" of paper, 2D plotting, 3D
plotting, tabbed panes, etc. Moving on to DragMath's capabilities:
load and save to disk, multi-language support, export to LaTeX,
MathML, Maple, and Maxima along with the ability to add additional
export formats (like Sage) by editing an XML-based configuration file.
I know what Java can do and I have posted demo code which illustrates
it running in the notebook. Now I want to see what Javascript is
capable of because almost everything GUI-related I have seen which is
written in Javascript seems unfinished to me when compared to Java GUI
stuff. From what I have seen so far, Javascript is simply incapable
of coming anywhere close to what Java can do. If it can, I would love
to see actual running examples like I have been providing :-)
Going back to the initial post in this thread, the Wiris people
"...ended the discussion by telling us that their web-based interface
is (going to be) much better than ours." I don't think they arrived
at this conclusion by thinking that William and Tom were substandard
programmers (which is obviously not the case). I think they looked at
the Sage notebook and concluded they could have written an equivalent
in Java with something like NetBeans in a day or two.
Anyway, since I am one of the few Java developers on this list (and
since I was mentioned by name in the original post) I felt it was my
duty to provide arguments for the Java-side of this discussion. I
have done this to my satisfaction :-)
Ted
> Robert wrote:
>
>> What is unfinished about it? Just because the author had/has more
>> plans for it doesn't mean it isn't very useable now (more so, I would
>> argue, than a drag-n-drop interface).
>
> Mouse positioning of the cursor, cut and paste,
OK, these would be nice to have.
> multiple fonts, font
> resizing, multiple equations on one "sheet" of paper, 2D plotting, 3D
> plotting, tabbed panes, etc.
Much of this seems completely irrelevant to making an equation editor.
> Moving on to DragMath's capabilities:
> load and save to disk, multi-language support, export to LaTeX,
> MathML, Maple, and Maxima along with the ability to add additional
> export formats (like Sage) by editing an XML-based configuration file.
Again, with the exception of exporting to Sage (or something easily
parsed--but I think parsing LaTeX should be easy enough and it's
something we're going to want anyway) this all seems irrelevant to
being able to sit down at the browser and easily compose an equation.
(And I might be bias in this example because for me, the less I have
to use my mouse the better.)
> I know what Java can do and I have posted demo code which illustrates
> it running in the notebook. Now I want to see what Javascript is
> capable of because almost everything GUI-related I have seen which is
> written in Javascript seems unfinished to me when compared to Java GUI
> stuff. From what I have seen so far, Javascript is simply incapable
> of coming anywhere close to what Java can do. If it can, I would love
> to see actual running examples like I have been providing :-)
I am (perhaps one of the few) in agreement with you that Java is more
powerful than Javascript, but since Javascript is much lighter
weight, more prevalent, and integrates more closely with the web-page
paradigm it often seems the better tool for a web-based interface. Of
course for some things (e.g. Jmol, and I think there will be others)
Java is clearly the best route.
> Going back to the initial post in this thread, the Wiris people
> "...ended the discussion by telling us that their web-based interface
> is (going to be) much better than ours." I don't think they arrived
> at this conclusion by thinking that William and Tom were substandard
> programmers (which is obviously not the case). I think they looked at
> the Sage notebook and concluded they could have written an equivalent
> in Java with something like NetBeans in a day or two.
I'm hoping you meant that as a hyperbole--I've worked on my fair
share of java projects in my day and writing something as
sophisticated as the Java notebook in any language is a significant
undertaking. Good GUIs can be written Java, but I've seen a lot of
bad ones too. We'll see how it all plays out, but I'm not worried
about the route we've taken (and, with you and the Enthought stuff, I
won't be surprised if there's a Java interface alternative to Sage
someday as well).
Personally I think it is *already* better than any other equation editor
that I have ever used. I would like to very strongly encourage you to
continue with this project.
William
Just out of curiosity do you know of _any_ javascript equations editors
that are actually pretty good / finished / better than your current
jsmath-based one?
William
Agreed.
> It's definitely something that needs to be
> done, and I wish I had more time to devote to it, as the jsMath-based
> editor could probably do the job.
I definitely agree. Plus it is beautiful because it uses the tex layout
algorithm unlike almost every other equation editor.
It's possible people workin on the Sage project will play around further
with your jsMath-based equation editor, and if so we'll be sure to give
back any code we write.
-- William
> Today at the AMS meeting Tom Boothby and I had a long talk with the
> people at the "Wiris Booth":
> http://www.wiris.com/
> Wiris is a closed source commercial math software company that makes a
> web-based interface to their own custom mathematical software.
Was the idea of Wiris using Sage as an additional calculation engine
for their client discussed at all?
Ted
No. Wiris is a commercial company
and I got the very strong impression that they view Sage as basically
potential competition whose mere existence is bad for them. In fact,
they're right to be worried, since there have been discussions
on sage-devel about modifying Sage
so that it could be rolled out in France/Spain for high school and college
use -- and that is _exactly_ the current market of Wiris. I definitely
suggested various times opportunities for collaboration, but I don't think they
were interested at all and would rather we just didn't exist.
I was also pretty soundly criticized by someone else at the Wiris booth for (1)
not using OpenMath/MathML for communication between different components
of Sage, and (2) for not having an OpenMath output / input format for every
Sage object. I'm not really interested in starting a discussion
about this here
on sage-devel -- all that OpenMath stuff is nice in theory, but it doesn't have
much to do with the sort of problems Sage is built to solve. With Sage the
goal is to create the best system we can using when possible very good
existing tools -- and the question is how best to do this. OpenMath doesn't
fit in at all for that problem. It may be very relevant for other
problems later on;
I don't know. Just for concreteness, imagine if when you typed
expand( (x+1)^3 )
the following happened:
(1) (x+1)^3 is converted to some sort of XML openmath format.
(2) That openmath format is sent to maxima via pexpect
(3) A maxima function that I guess I would write converts that
XML into a valid Maxima expression
(4) Sage then requests calling expand on the result
(5) Sage then asks Maxima to take that result and convert
it to XML openmath format.
(6) Sage asks Maxima to display the XML format and Sage reads it back.
(7) Sage parses the XML format and constructs the Sage expression
x^3 + 3*x^2 + 3*x + 1
This would just be a much more complicated, slower, and vastly more
error prone version of what we already do. I see no value in it whatever.
-- William
On Mon, 21 Jan 2008, William Stein wrote:
>
> On Jan 21, 2008 4:16 PM, Ted Kosan <ted....@gmail.com> wrote:
>>
>> William wrote:
>>
>>> Today at the AMS meeting Tom Boothby and I had a long talk with the
>>> people at the "Wiris Booth":
>>> http://www.wiris.com/
>>> Wiris is a closed source commercial math software company that makes a
>>> web-based interface to their own custom mathematical software.
>>
>> Was the idea of Wiris using Sage as an additional calculation engine
>> for their client discussed at all?
>
> No. Wiris is a commercial company
> and I got the very strong impression that they view Sage as basically
> potential competition whose mere existence is bad for them. In fact,
> they're right to be worried...
Our chat with them was strange, to say the least. One of them kept complimenting Sage, and saying how awesome it was -- and then, as William said, turned around and practically verbally abused us for not using OpenMath, and then went back to complimenting us. Another was friendly and diplomatic, and seemed really excited to show off the product. The third was quiet, and didn't say much until we left; when I shook his hand, he looked William in the eye, and said, "Wiris is going to beat Sage."
Even if they were interested in using Sage as a calculation engine, I wouldn't lift a finger to help them; if it took any changes in our licensing, I'd refuse. They want to dominate the education market -- their literature said it, their salesperson was openly aggressive towards us. Unless they open their code, I will not support working with them one bit.
I think that their interface looks nice (w00, rounded corners!) but that's about all that I like about their product. We have nothing to gain that would be worth the means.
> > Was the idea of Wiris using Sage as an additional calculation engine
> > for their client discussed at all?
>
> No. Wiris is a commercial company
> and I got the very strong impression that they view Sage as basically
> potential competition whose mere existence is bad for them. In fact,
> they're right to be worried, since there have been discussions
> on sage-devel about modifying Sage
> so that it could be rolled out in France/Spain for high school and college
> use -- and that is _exactly_ the current market of Wiris. I definitely
> suggested various times opportunities for collaboration, but I don't think they
> were interested at all and would rather we just didn't exist.
This is what I suspected happened.
The reason I bring this up is that I was just about to create some
marketing materials which stated how much more powerful Sage was than
a scientific calculator, and how people should seriously consider
using Sage instead. I acquired a TI84 calculator recently and I was
going to use it to show how Sage could absolutely run rings around it
at a far lower cost.
But then it came to me that instead of making TI an enemy, what I
really wanted to see happen was for TI to embrace Sage and find ways
to give their customers an enhanced level of service with it. TI
might lose calculator sales to Sage in some areas, but if Sage is able
to increase the use of mathematics in the world by, say, 5%, this
should also expand the market for calculators which should benefit TI
in the long run. TI should also be able to find other ways to make
money with Sage.
The reason this idea came to me was that I have followed Sun
Microsystems very closely from about 1998 to the present and I watched
how the open source community applied steady and relentless pressure
to them during this period until they were transformed into an almost
completely open source company. The transformation is so complete
that they are even open sourcing their chip designs now and an
increasing number of their upper-level managers are open source "rock
stars".
The way that you and Tom describe Wiris' reaction to Sage and the idea
of collaboration sounds very similar to Sun's reaction to open source
before their transformation. What I am thinking is that, if an
arrogant company like Sun can be transformed by open source, then
companies like Wiris and TI can be transformed too with enough
persistence.
> I was also pretty soundly criticized by someone else at the Wiris booth for (1)
> not using OpenMath/MathML for communication between different components
> of Sage, and (2) for not having an OpenMath output / input format for every
> Sage object. I'm not really interested in starting a discussion
> about this here
> on sage-devel -- all that OpenMath stuff is nice in theory, but it doesn't have
> much to do with the sort of problems Sage is built to solve. With Sage the
> goal is to create the best system we can using when possible very good
> existing tools -- and the question is how best to do this. OpenMath doesn't
> fit in at all for that problem. It may be very relevant for other
> problems later on;
> I don't know.
The LaTeX --> OpenOffice translator I have been working on has forced
me to think about LaTeX and MathML quite a bit and I think a separate
thread on this topic would be interesting.
Anyway, while I was researching translators, I located the following
python program that translates LaTeX to MathML. Perhaps it would be
useful to add to Sage?:
http://sage.math.washington.edu/home/tkosan/misc/latex2mathml.py
tkosan@sage ~/hp_backup/tmp/scripts/scripts $ python latex2mathml.py
"\frac{{x}^{2} }{7}"
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mfrac><msup><mi>x</mi><mn>2</mn></msup><mn>7</mn></mfrac>
</math>
tkosan@sage ~/hp_backup/tmp/scripts/scripts $ python latex2mathml.py
"{{{3 \cdot \sin \left( a \right)} \cdot b} \cdot {e}^{\frac{4}{c}} }"
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow><mrow><mrow><mrow><mn>3</mn><mo>â
</mo><mi mathvariant="normal">sin</mi></mrow><mrow><mo
minsize="1">(</mo><mi>a</mi><mo minsize="1">)</mo></mrow></mrow><mo>â
</mo><mi>b</mi></mrow><mo>â
</mo><msup><mi>e</mi><mfrac><mn>4</mn><mi>c</mi></mfrac></msup></mrow>
</math>
Ted
Interesting. I tried many times to convince John Cannon to open
source Magma, and always failed. In some ways, Sage is my final
attempt to convince Magma to open source. So far unfortunately
it is failed completely to achieve that, and I fear it never will, because
too many egos are involved (unlike Sun, which is probably more
about the bottom line).
> > I was also pretty soundly criticized by someone else at the Wiris booth for (1)
> > not using OpenMath/MathML for communication between different components
> > of Sage, and (2) for not having an OpenMath output / input format for every
> > Sage object. I'm not really interested in starting a discussion
> > about this here
> > on sage-devel -- all that OpenMath stuff is nice in theory, but it doesn't have
> > much to do with the sort of problems Sage is built to solve. With Sage the
> > goal is to create the best system we can using when possible very good
> > existing tools -- and the question is how best to do this. OpenMath doesn't
> > fit in at all for that problem. It may be very relevant for other
> > problems later on;
> > I don't know.
>
> The LaTeX --> OpenOffice translator I have been working on has forced
> me to think about LaTeX and MathML quite a bit and I think a separate
> thread on this topic would be interesting.
Sure, start another thread. Just to be clear, I meant only to be talking
about *content* MathML above, not presentation MathML.
> Anyway, while I was researching translators, I located the following
> python program that translates LaTeX to MathML. Perhaps it would be
> useful to add to Sage?:
>
> http://sage.math.washington.edu/home/tkosan/misc/latex2mathml.py
>
> tkosan@sage ~/hp_backup/tmp/scripts/scripts $ python latex2mathml.py
> "\frac{{x}^{2} }{7}"
> <math xmlns='http://www.w3.org/1998/Math/MathML'>
> <mfrac><msup><mi>x</mi><mn>2</mn></msup><mn>7</mn></mfrac>
> </math>
>
> tkosan@sage ~/hp_backup/tmp/scripts/scripts $ python latex2mathml.py
> "{{{3 \cdot \sin \left( a \right)} \cdot b} \cdot {e}^{\frac{4}{c}} }"
> <math xmlns='http://www.w3.org/1998/Math/MathML'>
> <mrow><mrow><mrow><mrow><mn>3</mn><mo>â
> </mo><mi mathvariant="normal">sin</mi></mrow><mrow><mo
> minsize="1">(</mo><mi>a</mi><mo minsize="1">)</mo></mrow></mrow><mo>â
> </mo><mi>b</mi></mrow><mo>â
> </mo><msup><mi>e</mi><mfrac><mn>4</mn><mi>c</mi></mfrac></msup></mrow>
> </math>
>
>
> Ted
>
> >
>
--