[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-23 Thread Martin Albrecht

 That I definitely agree with.  I would be very disturbed if we had
 a java app that implemented important computational functionality
 that is not available from the command line.  There was actually
 a numerical analysis java applet that is GPL'd that was discussed
 here a while ago that would have been exactly this.  That discussion
 died though.  Including it in sage would be a big mistake.

That was entirely my point. If I cannot ssh to a machine any more and run some 
computation there in Sage then I'd disappointed. If there is another 
(graphical) interface to achieve the same (or better looking) then I have no 
objection. Another point: One of my main applications of Sage is writing 
programs in Sage, i.e. I use the Sage library as a library. AFAIK a Java 
applet won't benefit me there and thus I couldn't use that functionality in 
my code. For me Sage is definitely not a scientific calculator, though I 
often fire up Sage instead of e.g. 'bc' to to divide two floating point 
numbers :-)

Martin

-- 
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_www: http://www.informatik.uni-bremen.de/~malb
_jab: [EMAIL PROTECTED]


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread Ted Kosan

William wrote:

  If further testing is successful, I would like to have simpleJSON
  included in SAGE.  What procedure do I need to follow in order to make
  an official software addition request?

 (1) Convince us it's a good idea.  You basically just did that.

 (2) Create a trac ticket and then to attach some code that
 we can try it out.

A simpleJSON spkg has now been created and more information about it
can be found in its trac ticket:

http://www.sagetrac.org/sage_trac/ticket/1510

William has added the following comment to this ticket which requests
that the spkg be discussed on sage-devel before deciding on whether or
not to include it in Sage:

I think some sort of general voting and discussion should occur
before including
any new packages standard in Sage, especially ones that don't cover
some very clear
mathematical area that is completely unconvered by Sage (e.g., R and PolyBori?
did address a clear mathematical area). In particular, it is
_critical_ that there be
more than one person who really wants the package to go in before we
even consider
putting it in. I suggest that:

   1. simplejson be made an optional package,
   2. there be a post to sage-devel to start some discussion about whether 
 this actually
belongs in Sage. That it is is easy to put in
Sage (it's pure python) is a plus, but is
definitely not enough of an argument (to put it mildly).

Remember, every package that goes into Sage will cause Michael
Abshoff, and me,
and others headaches at some point, and will add
to the horrendous problem we
already have with packages getting out of date with upstream.

Also, perhaps there should be somebody -- probably Ted in this case
-- who very clear
volunteers to keep the package up to date for the next year, and find
somebody to take
over if they can't continue.

The above was quick brainstorming. It is not meant to be some well
thought out procedure,
which is something I don't think we have yet.  -- William

The purpose for adding simpleJSON to Sage is to give clients an
object-based, language-neutral method for communicating with the Sage
server.  This package is not about adding mathematical capabilities to
Sage, but rather, it is for allowing clients to more easily access the
mathematical functionality it already has.  I am specifically using
simpleJSON to allow applets, which are loaded from a separate server
into a worksheet, to pull data out of Sage.  Allowing applets to be
loaded from a separate server removes the need for them to be included
with Sage itself which I think is a good route to follow.

I have estimated that there are probably hundreds of math, science,
and engineering-oriented Java applets in existence that are capable of
adding value to Sage.  My goal with these applets is to not only make
them available in the notebook, but to also attract a significant
number of their developers to the Sage project so that they can add
even more value to it.

If there is no easy way for these applets to communicate with the Sage
server, however, there is not much point in embedding them in a
worksheet.

As for the idea of making simpleJSON an optional package, my thought
is that there is little point in this.  If a newbie Windows user wants
to use a calculator applet in a worksheet because this is the level of
technology they are comfortable with, they are probably not going to
be very successful installing an optional package.

Anyway, I researched a number of alternatives before choosing a
JSON-based solution to this client communications problem.  It is
relatively clean and it seems to work fairly well.  If people have
alternative ways to solve this problem, however, I would like to hear
them :-)

Ted

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread David Joyner

On Jan 22, 2008 5:05 AM, Ted Kosan [EMAIL PROTECTED] wrote:

 William wrote:

   If further testing is successful, I would like to have simpleJSON
   included in SAGE.  What procedure do I need to follow in order to make
   an official software addition request?
 
  (1) Convince us it's a good idea.  You basically just did that.
 
  (2) Create a trac ticket and then to attach some code that
  we can try it out.

 A simpleJSON spkg has now been created and more information about it
 can be found in its trac ticket:

 http://www.sagetrac.org/sage_trac/ticket/1510

 William has added the following comment to this ticket which requests
 that the spkg be discussed on sage-devel before deciding on whether or
 not to include it in Sage:

 I think some sort of general voting and discussion should occur
 before including
 any new packages standard in Sage, especially ones that don't cover
 some very clear
 mathematical area that is completely unconvered by Sage (e.g., R and 
 PolyBori?
 did address a clear mathematical area). In particular, it is
 _critical_ that there be
 more than one person who really wants the package to go in before we
 even consider
 putting it in. I suggest that:
 
1. simplejson be made an optional package,
2. there be a post to sage-devel to start some discussion about whether 
  this actually
 belongs in Sage. That it is is easy to put in
 Sage (it's pure python) is a plus, but is
 definitely not enough of an argument (to put it mildly).
 
 Remember, every package that goes into Sage will cause Michael
 Abshoff, and me,
 and others headaches at some point, and will add
 to the horrendous problem we
 already have with packages getting out of date with upstream.
 
 Also, perhaps there should be somebody -- probably Ted in this case
 -- who very clear
 volunteers to keep the package up to date for the next year, and find
 somebody to take
 over if they can't continue.
 
 The above was quick brainstorming. It is not meant to be some well
 thought out procedure,
 which is something I don't think we have yet.  -- William

 The purpose for adding simpleJSON to Sage is to give clients an
 object-based, language-neutral method for communicating with the Sage
 server.  This package is not about adding mathematical capabilities to
 Sage, but rather, it is for allowing clients to more easily access the
 mathematical functionality it already has.  I am specifically using
 simpleJSON to allow applets, which are loaded from a separate server
 into a worksheet, to pull data out of Sage.  Allowing applets to be
 loaded from a separate server removes the need for them to be included
 with Sage itself which I think is a good route to follow.

 I have estimated that there are probably hundreds of math, science,
 and engineering-oriented Java applets in existence that are capable of
 adding value to Sage.  My goal with these applets is to not only make
 them available in the notebook, but to also attract a significant
 number of their developers to the Sage project so that they can add
 even more value to it.

 If there is no easy way for these applets to communicate with the Sage
 server, however, there is not much point in embedding them in a
 worksheet.

 As for the idea of making simpleJSON an optional package, my thought
 is that there is little point in this.  If a newbie Windows user wants
 to use a calculator applet in a worksheet because this is the level of
 technology they are comfortable with, they are probably not going to
 be very successful installing an optional package.


I can see you don't like the idea of making JSON merely an optional
package but one possibly way to hopefully help your proposal would be to
first make an optional package and then see how that goes. I think for
William and Michael, the effort required to change an optional package
to a standard package isn't great. On the other hand, it does make it
easier for people to test (and even for you to create bug fixes) for
optional packages. You could also add some details about it to the
wiki at http://wiki.sagemath.org/optional_packages_available_for_SAGE
So, I agree with William.



 Anyway, I researched a number of alternatives before choosing a
 JSON-based solution to this client communications problem.  It is
 relatively clean and it seems to work fairly well.  If people have
 alternative ways to solve this problem, however, I would like to hear
 them :-)

 Ted

 


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread mhampton

I agree - an optional package makes more sense for the moment.  The
spkg is less than a mb, fortunately, so adding it to the standard
packages eventually wouldn't inflate the total size that much.

There are several optional packages that I use a lot and I hope to
eventually have in sage as standard (biopython, polymake, phcpack) but
I am waiting to make my final case (for different reasons for each
package, but that's another thread I guess).

I think this could be an exciting way to get all the java applet
makers out there interested in sage, although I don't completely
understand the architecture of what this is supposed to do.

Cheers,
Marshall Hampton

On Jan 22, 6:23 am, David Joyner [EMAIL PROTECTED] wrote:
 On Jan 22, 2008 5:05 AM, Ted Kosan [EMAIL PROTECTED] wrote:





  William wrote:

If further testing is successful, I would like to have simpleJSON
included in SAGE.  What procedure do I need to follow in order to make
an official software addition request?

   (1) Convince us it's a good idea.  You basically just did that.

   (2) Create a trac ticket and then to attach some code that
   we can try it out.

  A simpleJSON spkg has now been created and more information about it
  can be found in its trac ticket:

 http://www.sagetrac.org/sage_trac/ticket/1510

  William has added the following comment to this ticket which requests
  that the spkg be discussed on sage-devel before deciding on whether or
  not to include it in Sage:

  I think some sort of general voting and discussion should occur
  before including
  any new packages standard in Sage, especially ones that don't cover
  some very clear
  mathematical area that is completely unconvered by Sage (e.g., R and 
  PolyBori?
  did address a clear mathematical area). In particular, it is
  _critical_ that there be
  more than one person who really wants the package to go in before we
  even consider
  putting it in. I suggest that:

 1. simplejson be made an optional package,
 2. there be a post to sage-devel to start some discussion about whether 
   this actually
  belongs in Sage. That it is is easy to put in
  Sage (it's pure python) is a plus, but is
  definitely not enough of an argument (to put it mildly).

  Remember, every package that goes into Sage will cause Michael
  Abshoff, and me,
  and others headaches at some point, and will add
  to the horrendous problem we
  already have with packages getting out of date with upstream.

  Also, perhaps there should be somebody -- probably Ted in this case
  -- who very clear
  volunteers to keep the package up to date for the next year, and find
  somebody to take
  over if they can't continue.

  The above was quick brainstorming. It is not meant to be some well
  thought out procedure,
  which is something I don't think we have yet.  -- William

  The purpose for adding simpleJSON to Sage is to give clients an
  object-based, language-neutral method for communicating with the Sage
  server.  This package is not about adding mathematical capabilities to
  Sage, but rather, it is for allowing clients to more easily access the
  mathematical functionality it already has.  I am specifically using
  simpleJSON to allow applets, which are loaded from a separate server
  into a worksheet, to pull data out of Sage.  Allowing applets to be
  loaded from a separate server removes the need for them to be included
  with Sage itself which I think is a good route to follow.

  I have estimated that there are probably hundreds of math, science,
  and engineering-oriented Java applets in existence that are capable of
  adding value to Sage.  My goal with these applets is to not only make
  them available in the notebook, but to also attract a significant
  number of their developers to the Sage project so that they can add
  even more value to it.

  If there is no easy way for these applets to communicate with the Sage
  server, however, there is not much point in embedding them in a
  worksheet.

  As for the idea of making simpleJSON an optional package, my thought
  is that there is little point in this.  If a newbie Windows user wants
  to use a calculator applet in a worksheet because this is the level of
  technology they are comfortable with, they are probably not going to
  be very successful installing an optional package.

 I can see you don't like the idea of making JSON merely an optional
 package but one possibly way to hopefully help your proposal would be to
 first make an optional package and then see how that goes. I think for
 William and Michael, the effort required to change an optional package
 to a standard package isn't great. On the other hand, it does make it
 easier for people to test (and even for you to create bug fixes) for
 optional packages. You could also add some details about it to the
 wiki athttp://wiki.sagemath.org/optional_packages_available_for_SAGE
 So, I agree with William.



  Anyway, I researched a number of alternatives before 

[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread Martin Albrecht

 I think this could be an exciting way to get all the java applet
 makers out there interested in sage, although I don't completely
 understand the architecture of what this is supposed to do.

Wouldn't a Java applet imply that the functionality it provides could only be 
accessed via Sage's web interface? 

I would like to establish some (roughly) like this: If a computation cannot be 
expressed from the command line (in pure Python) then it cannot be a standard 
part of Sage. E.g. if you cannot compute $sin(x)$ for some $x$ from the 
command line but you can do it by clicking some Java buttons, then this 
functionality would not be considered a part of (standard) Sage. 

Would that make sense?
Martin

-- 
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_www: http://www.informatik.uni-bremen.de/~malb
_jab: [EMAIL PROTECTED]


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread boothby

 I think this could be an exciting way to get all the java applet
 makers out there interested in sage, although I don't completely
 understand the architecture of what this is supposed to do.

 Wouldn't a Java applet imply that the functionality it provides could only be
 accessed via Sage's web interface?

 I would like to establish some (roughly) like this: If a computation cannot be
 expressed from the command line (in pure Python) then it cannot be a standard
 part of Sage. E.g. if you cannot compute $sin(x)$ for some $x$ from the
 command line but you can do it by clicking some Java buttons, then this
 functionality would not be considered a part of (standard) Sage.

 Would that make sense?
 Martin

No, that makes no sense at all.  First off, I don't see this as a danger.  
Second, interactive widgets are pretty frikkin' sweet -- you should have seen 
the stuff high school kids were doing with Manipulate in Mathematica at the 
joint math meeting.  The notebook already has a number of features that the 
commandline doesn't.  Why do you feel the need to freeze the interface of 
Sage so it can never grow past the commandline?  That's Matlab's approach, and 
I think their interface sucks.


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread Nick Alexander


On 22-Jan-08, at 9:08 AM, [EMAIL PROTECTED] wrote:


 I think this could be an exciting way to get all the java applet
 makers out there interested in sage, although I don't completely
 understand the architecture of what this is supposed to do.

 Wouldn't a Java applet imply that the functionality it provides  
 could only be
 accessed via Sage's web interface?

 I would like to establish some (roughly) like this: If a  
 computation cannot be
 expressed from the command line (in pure Python) then it cannot be  
 a standard
 part of Sage. E.g. if you cannot compute $sin(x)$ for some $x$  
 from the
 command line but you can do it by clicking some Java buttons, then  
 this
 functionality would not be considered a part of (standard) Sage.

 Would that make sense?
 Martin

 No, that makes no sense at all.

One reason to do this is because automated testing graphical  
interfaces (including, but not limited to, the notebook) tends to be  
nigh on impossible.  If it can't be done from the command line, it's  
pretty hard to test; if it's not tested, I'd like it to not be widely  
accepted.

Nick

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread boothby




On Tue, 22 Jan 2008, Nick Alexander wrote:



 On 22-Jan-08, at 9:08 AM, [EMAIL PROTECTED] wrote:


 I think this could be an exciting way to get all the java applet
 makers out there interested in sage, although I don't completely
 understand the architecture of what this is supposed to do.

 Wouldn't a Java applet imply that the functionality it provides
 could only be
 accessed via Sage's web interface?

 I would like to establish some (roughly) like this: If a
 computation cannot be
 expressed from the command line (in pure Python) then it cannot be
 a standard
 part of Sage. E.g. if you cannot compute $sin(x)$ for some $x$
 from the
 command line but you can do it by clicking some Java buttons, then
 this
 functionality would not be considered a part of (standard) Sage.

 Would that make sense?
 Martin

 No, that makes no sense at all.

 One reason to do this is because automated testing graphical
 interfaces (including, but not limited to, the notebook) tends to be
 nigh on impossible.  If it can't be done from the command line, it's
 pretty hard to test; if it's not tested, I'd like it to not be widely
 accepted.

 Nick


The interface itself might be tricky -- however, the communication protocol 
isn't hard to test, whatever computations go on behind the scenes aren't hard 
to test, and Java has some *great* unit-testing capabilities, so that side 
isn't hard to test either.  In short, there is very little that we wouldn't be 
able to test in an automated way.


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread didier deshommes

 On Tue, 22 Jan 2008, Nick Alexander wrote:
  I would like to establish some (roughly) like this: If a
  computation cannot be
  expressed from the command line (in pure Python) then it cannot be
  a standard
  part of Sage. E.g. if you cannot compute $sin(x)$ for some $x$
  from the
  command line but you can do it by clicking some Java buttons, then
  this
  functionality would not be considered a part of (standard) Sage.
 
  Would that make sense?
  Martin

There is something I don't get: it seems like JSON is going to be used
by clients to simply send or receive data from SAGE. What the client
does with the result of the computation is its problem. Why do we have
to worry about testing this at all?

 The interface itself might be tricky -- however, the communication protocol 
 isn't hard to test, whatever computations go on behind the scenes aren't hard 
 to test, and Java has some *great* unit-testing capabilities, so that side 
 isn't hard to test either.  In short, there is very little that we wouldn't 
 be able to test in an automated way.


And what is there to test? That the data is well-formed?

didier

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread William Stein

On Jan 22, 2008 5:41 AM, mhampton [EMAIL PROTECTED] wrote:

 I agree - an optional package makes more sense for the moment.  The
 spkg is less than a mb, fortunately, so adding it to the standard
 packages eventually wouldn't inflate the total size that much.

I propose the following:

  (1) Json support is made an optional package
  (2) Once there are some actual interesting uses of it, then we
   seriously consider making it a standard package.  (This could
   be a week from now, etc.)

Regarding 2, I never remember being convinced to put anything
into Sage unless there was a really cool application that _used_
it.   E.g., I didn't want to put libgd in sage and wouldn't until Tom
Boothby showed off a bunch of very high resolution fractal images
he could render very quickly using libgd, which matplotlib sucked at.
That was pretty convincing.

 There are several optional packages that I use a lot and I hope to
 eventually have in sage as standard (biopython, polymake, phcpack) but
 I am waiting to make my final case (for different reasons for each
 package, but that's another thread I guess).

 I think this could be an exciting way to get all the java applet
 makers out there interested in sage, although I don't completely
 understand the architecture of what this is supposed to do.

 Cheers,
 Marshall Hampton

 On Jan 22, 6:23 am, David Joyner [EMAIL PROTECTED] wrote:

  On Jan 22, 2008 5:05 AM, Ted Kosan [EMAIL PROTECTED] wrote:
 
 
 
 
 
   William wrote:
 
 If further testing is successful, I would like to have simpleJSON
 included in SAGE.  What procedure do I need to follow in order to make
 an official software addition request?
 
(1) Convince us it's a good idea.  You basically just did that.
 
(2) Create a trac ticket and then to attach some code that
we can try it out.
 
   A simpleJSON spkg has now been created and more information about it
   can be found in its trac ticket:
 
  http://www.sagetrac.org/sage_trac/ticket/1510
 
   William has added the following comment to this ticket which requests
   that the spkg be discussed on sage-devel before deciding on whether or
   not to include it in Sage:
 
   I think some sort of general voting and discussion should occur
   before including
   any new packages standard in Sage, especially ones that don't cover
   some very clear
   mathematical area that is completely unconvered by Sage (e.g., R and 
   PolyBori?
   did address a clear mathematical area). In particular, it is
   _critical_ that there be
   more than one person who really wants the package to go in before we
   even consider
   putting it in. I suggest that:
 
  1. simplejson be made an optional package,
  2. there be a post to sage-devel to start some discussion about 
whether this actually
   belongs in Sage. That it is is easy to put in
   Sage (it's pure python) is a plus, but is
   definitely not enough of an argument (to put it mildly).
 
   Remember, every package that goes into Sage will cause Michael
   Abshoff, and me,
   and others headaches at some point, and will add
   to the horrendous problem we
   already have with packages getting out of date with upstream.
 
   Also, perhaps there should be somebody -- probably Ted in this case
   -- who very clear
   volunteers to keep the package up to date for the next year, and find
   somebody to take
   over if they can't continue.
 
   The above was quick brainstorming. It is not meant to be some well
   thought out procedure,
   which is something I don't think we have yet.  -- William
 
   The purpose for adding simpleJSON to Sage is to give clients an
   object-based, language-neutral method for communicating with the Sage
   server.  This package is not about adding mathematical capabilities to
   Sage, but rather, it is for allowing clients to more easily access the
   mathematical functionality it already has.  I am specifically using
   simpleJSON to allow applets, which are loaded from a separate server
   into a worksheet, to pull data out of Sage.  Allowing applets to be
   loaded from a separate server removes the need for them to be included
   with Sage itself which I think is a good route to follow.
 
   I have estimated that there are probably hundreds of math, science,
   and engineering-oriented Java applets in existence that are capable of
   adding value to Sage.  My goal with these applets is to not only make
   them available in the notebook, but to also attract a significant
   number of their developers to the Sage project so that they can add
   even more value to it.
 
   If there is no easy way for these applets to communicate with the Sage
   server, however, there is not much point in embedding them in a
   worksheet.
 
   As for the idea of making simpleJSON an optional package, my thought
   is that there is little point in this.  If a newbie Windows user wants
   to use a calculator applet in a worksheet because this is the level of
   technology 

[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread Ted Kosan

William wrote:

 I propose the following:

   (1) Json support is made an optional package
   (2) Once there are some actual interesting uses of it, then we
seriously consider making it a standard package.  (This could
be a week from now, etc.)

+1

Ted

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread Justin C. Walker


On Jan 22, 2008, at 5:54 AM, Martin Albrecht wrote:


 I think this could be an exciting way to get all the java applet
 makers out there interested in sage, although I don't completely
 understand the architecture of what this is supposed to do.

 Wouldn't a Java applet imply that the functionality it provides  
 could only be
 accessed via Sage's web interface?

 I would like to establish some (roughly) like this: If a  
 computation cannot be
 expressed from the command line (in pure Python) then it cannot be  
 a standard
 part of Sage. E.g. if you cannot compute $sin(x)$ for some $x$ from  
 the
 command line but you can do it by clicking some Java buttons, then  
 this
 functionality would not be considered a part of (standard) Sage.

 Would that make sense?

Independent of the specific issue of JSON, I agree with this.  I  
hardly ever use the notebook functionality, so anything I can't get  
at from the command-line is of no use to me.

Justin

--
Justin C. Walker, Curmudgeon-At-Large
Institute for the Enhancement of the Director's Income

Experience is what you get
   when you don't get what you want.





--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread Justin C. Walker


On Jan 22, 2008, at 9:51 AM, Nick Alexander wrote:
 On 22-Jan-08, at 9:08 AM, [EMAIL PROTECTED] wrote:
 I think this could be an exciting way to get all the java applet
 makers out there interested in sage, although I don't completely
 understand the architecture of what this is supposed to do.

 Wouldn't a Java applet imply that the functionality it provides
 could only be
 accessed via Sage's web interface?

 I would like to establish some (roughly) like this: If a
 computation cannot be
 expressed from the command line (in pure Python) then it cannot be
 a standard
 part of Sage. E.g. if you cannot compute $sin(x)$ for some $x$
 from the
 command line but you can do it by clicking some Java buttons, then
 this
 functionality would not be considered a part of (standard) Sage.

 Would that make sense?
 Martin

 No, that makes no sense at all.

 One reason to do this is because automated testing graphical
 interfaces (including, but not limited to, the notebook) tends to be
 nigh on impossible.  If it can't be done from the command line, it's
 pretty hard to test; if it's not tested, I'd like it to not be widely
 accepted.

It's not true that testing GUIs is in any way impossible (I believe  
several companies make such products, and make a pretty good living  
at it).

However, I don't think there is a freely-available way to do it, and  
in this aspect, your point is well-taken, and reinforces to my being  
against splitting the functionality of Sage.

Justin

--
Justin C. Walker, Curmudgeon-At-Large
Institute for the Absorption of Federal Funds

Some people have a mental horizon of radius zero, and
call it their point of view.
   -- David Hilbert




--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread Justin C. Walker


On Jan 22, 2008, at 9:08 AM, [EMAIL PROTECTED] wrote:


 I think this could be an exciting way to get all the java applet
 makers out there interested in sage, although I don't completely
 understand the architecture of what this is supposed to do.

 Wouldn't a Java applet imply that the functionality it provides  
 could only be
 accessed via Sage's web interface?

 I would like to establish some (roughly) like this: If a  
 computation cannot be
 expressed from the command line (in pure Python) then it cannot be  
 a standard
 part of Sage. E.g. if you cannot compute $sin(x)$ for some $x$  
 from the
 command line but you can do it by clicking some Java buttons, then  
 this
 functionality would not be considered a part of (standard) Sage.

 Would that make sense?
 Martin

 No, that makes no sense at all.  First off, I don't see this as a  
 danger.  Second, interactive widgets are pretty frikkin' sweet --  
 you should have seen the stuff high school kids were doing with  
 Manipulate in Mathematica at the joint math meeting.  The notebook  
 already has a number of features that the commandline doesn't.  Why  
 do you feel the need to freeze the interface of Sage so it can  
 never grow past the commandline?  That's Matlab's approach, and I  
 think their interface sucks.

I am not at all sure what JSON is all about, but if it pertains  
mostly to the user interface, rather than the mathematics capability  
of Sage, then I think that

  - it should be non standard;

  - perhaps it is time to take seriously the split between the front  
end and kernel of Sage itself.

Doing this runs the danger of fragmenting the development effort, but  
it does let those interested in the notebook aspects of Sage focus on  
that, while those interested in the mathematics can focus on their  
piece(s).

This will prove to be way too simplistic a view, I think, and I can  
foresee some significant issues arising from such a split, but it may  
be time to discuss it, so that it doesn't just happen.

Forewarned is forearmed (although most of us have only two :-}).

Justin

--
Justin C. Walker, Curmudgeon-at-Large
() The ASCII Ribbon Campaign
/\ Help Cure HTML Email




--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread Ted Kosan

Justin wrote:

 It's not true that testing GUIs is in any way impossible (I believe
 several companies make such products, and make a pretty good living
 at it).

 However, I don't think there is a freely-available way to do it, and
 in this aspect, your point is well-taken, and reinforces to my being
 against splitting the functionality of Sage.

Here are 3 open source Java GUI testers that may be useful:

http://abbot.sourceforge.net/doc/overview.shtml

http://www.uispec4j.org/

http://pounder.sourceforge.net/

Ted

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread Nick Alexander


On 22-Jan-08, at 6:03 PM, Ted Kosan wrote:


 Justin wrote:

 It's not true that testing GUIs is in any way impossible (I believe
 several companies make such products, and make a pretty good living
 at it).

 However, I don't think there is a freely-available way to do it, and
 in this aspect, your point is well-taken, and reinforces to my being
 against splitting the functionality of Sage.

 Here are 3 open source Java GUI testers that may be useful:

 http://abbot.sourceforge.net/doc/overview.shtml

Does this look anything like our existing doctests?  Did you like the  
looks of the tutorial?  I certainly did not -- I'd beat my head into  
the ground trying to remember the names of my components, etc.

 http://www.uispec4j.org/

This looks the most promising, but it's not exactly

sage: factor(20)
2^2 * 5

 http://pounder.sourceforge.net/

Pounder seems to have the best concept (record actions, check  
conditions) but is, of course, no longer developed.

Nick

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread Robert Bradshaw

On Jan 22, 2008, at 5:41 AM, mhampton wrote:

 I think this could be an exciting way to get all the java applet
 makers out there interested in sage, although I don't completely
 understand the architecture of what this is supposed to do.

The way I understand it, JASON is a simple format to serialize  
hierarchal data structures, and writers/parsers are simple and  
available in many languages (e.g. Python, javascript, and Java). Kind  
of like a text pickle. It's what XML was supposed to be, without the  
insane amount of extra baggage.


 On Jan 22, 2008, at 5:54 AM, Martin Albrecht wrote:

 Wouldn't a Java applet imply that the functionality it provides  
 could only be
 accessed via Sage's web interface?

 I would like to establish some (roughly) like this: If a  
 computation cannot be
 expressed from the command line (in pure Python) then it cannot be  
 a standard
 part of Sage. E.g. if you cannot compute $sin(x)$ for some $x$  
 from the
 command line but you can do it by clicking some Java buttons, then  
 this
 functionality would not be considered a part of (standard) Sage.

 Would that make sense?
 Martin

This is one of the huge advantages that Java has over javascript-- 
from the command line one can pop up an applet just as well as  
showing it in a browser (its easier in fact). Think of how jmol 3d  
works now (and though they provided a separate application  
interface, this is not a requirement to being able to pop it up).

I would imagine that most applets would not provide new functionality  
so much as a alternative interface to the functionality already  
there. For example, a virtual scientific calculator would allow one  
to do arithmetic, or even algebra by pushing buttons, but it would  
just be an interface to the real work that gets done (via some  
command) in Sage (otherwise one ends up re-inventing the wheel and  
looses advantage of bundling with Sage). Another example is an applet  
for creating and laying out graphs via drag-and-drop. Now one can  
always specify vertex positions manually from the command line, but  
this interface is so cumbersome that few use it.

I do agree that it's important any (computational) functionality  
should be available from the command line.


On Jan 22, 2008, at 9:51 AM, Nick Alexander wrote:

 One reason to do this is because automated testing graphical
 interfaces (including, but not limited to, the notebook) tends to be
 nigh on impossible.  If it can't be done from the command line, it's
 pretty hard to test; if it's not tested, I'd like it to not be widely
 accepted.

The testing concern is a valid one. However, I would see JASON used  
more as an easy interface to 3rd party applets that want to be able  
to interact with Sage. If some of those applets are really useful/ 
powerful eventually materialize we would consider including them with  
Sage on a case-by-case basis at that time.

That being said, I think the best route is to make it an optional  
package and see where it goes from there.

- Robert


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2008-01-22 Thread William Stein

On Jan 22, 2008 4:51 PM, Robert Bradshaw [EMAIL PROTECTED] wrote:

 On Jan 22, 2008, at 5:41 AM, mhampton wrote:

  I think this could be an exciting way to get all the java applet
  makers out there interested in sage, although I don't completely
  understand the architecture of what this is supposed to do.

 The way I understand it, JASON is a simple format to serialize
 hierarchal data structures, and writers/parsers are simple and
 available in many languages (e.g. Python, javascript, and Java). Kind
 of like a text pickle. It's what XML was supposed to be, without the
 insane amount of extra baggage.

In fact JSON (not JASON) *is* javascript.   More precisely
it's a subset of the javascript language that basically
serves a similar purpose for transmitting serialized objects.

  On Jan 22, 2008, at 5:54 AM, Martin Albrecht wrote:
 
  Wouldn't a Java applet imply that the functionality it provides
  could only be
  accessed via Sage's web interface?
 
  I would like to establish some (roughly) like this: If a
  computation cannot be
  expressed from the command line (in pure Python) then it cannot be
  a standard
  part of Sage. E.g. if you cannot compute $sin(x)$ for some $x$
  from the
  command line but you can do it by clicking some Java buttons, then
  this
  functionality would not be considered a part of (standard) Sage.
 
  Would that make sense?

I might be completely misunderstanding your
suggestion, so if so, please clarify.
The core goal of Sage is to provide a viable alternative to
Magma, Maple, Mathematica, and MATLAB.   Maple, Mathematica,
and MATLAB all provide sophisticated graphical interfaces, some
of which is clearly of great value to a huge number of people.
There is no way Sage can be a viable alternative to those systems
if it eschews all non-command line functionality.

Also, your suggestion doesn't help at all with this discussion about
JSON, since JSON has nothing to do with graphics / GUI's, etc.
It's just an object serialization protocol (that happens to be useful
in writing some GUI's).

Regarding testing the notebook, say, there is no technical reason
that it can't be done.   Dsage is in a sense very similar, in that it
is a complicated network application -- the reason DSage has good
automatic unit tests and the Sage notebook doesn't, is that Yi Qiang
who wrote DSage is just that Yi put in the extra effort to do the
testing right, and with the notebook we didn't.   That said, I think that
we've made over a 100 releases of Sage and the notebook has
very rarely had any serious bugs in it (that we didn't already know about);
I think that is because we very rarely change the notebook, and when we
do change it a lot then thoroughly test it (there is actually a checklist for
testing the notebook by hand).   So the world isn't going to end because
the Sage notebook doesn't have tons of automated tests.

 This is one of the huge advantages that Java has over javascript--
 from the command line one can pop up an applet just as well as
 showing it in a browser (its easier in fact). Think of how jmol 3d
 works now (and though they provided a separate application
 interface, this is not a requirement to being able to pop it up).

 I would imagine that most applets would not provide new functionality
 so much as a alternative interface to the functionality already
 there. For example, a virtual scientific calculator would allow one
 to do arithmetic, or even algebra by pushing buttons, but it would
 just be an interface to the real work that gets done (via some
 command) in Sage (otherwise one ends up re-inventing the wheel and
 looses advantage of bundling with Sage). Another example is an applet
 for creating and laying out graphs via drag-and-drop. Now one can
 always specify vertex positions manually from the command line, but
 this interface is so cumbersome that few use it.

 I do agree that it's important any (computational) functionality
 should be available from the command line.

That I definitely agree with.  I would be very disturbed if we had
a java app that implemented important computational functionality
that is not available from the command line.  There was actually
a numerical analysis java applet that is GPL'd that was discussed
here a while ago that would have been exactly this.  That discussion
died though.  Including it in sage would be a big mistake.


 On Jan 22, 2008, at 9:51 AM, Nick Alexander wrote:

  One reason to do this is because automated testing graphical
  interfaces (including, but not limited to, the notebook) tends to be
  nigh on impossible.  If it can't be done from the command line, it's
  pretty hard to test; if it's not tested, I'd like it to not be widely
  accepted.

 The testing concern is a valid one. However, I would see JASON used
 more as an easy interface to 3rd party applets that want to be able
 to interact with Sage. If some of those applets are really useful/
 powerful eventually materialize we would consider including them with

[sage-devel] Re: Adding JSON capabilities to SAGE

2007-12-14 Thread Ted Kosan

William wrote
  If further testing is successful, I would like to have simpleJSON
  included in SAGE.  What procedure do I need to follow in order to make
  an official software addition request?

 (1) Convince us it's a good idea.  You basically just did that.

 (2) Create a trac ticket and then to attach some code that
 we can try it out.

I have created the following trac ticket which contains an enhancement
request for adding SimpleJSON to SAGE:

http://www.sagetrac.org/sage_trac/ticket/1510

The ticket includes instructions which describe how to send JSON-based
2D graphics information to a notebook applet for interactive viewing.

Ted

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~--~~~~--~~--~--~---



[sage-devel] Re: Adding JSON capabilities to SAGE

2007-12-10 Thread William Stein

On Dec 10, 2007 8:50 AM, Ted Kosan [EMAIL PROTECTED] wrote:

 I have been experimenting with techniques for allowing Java applets to
 communicate with the SAGE server and the technique I like the best so
 far is to use JSON objects (http://json.org).  I am currently using
 simpleJSON (http://undefined.org/python/#simplejson) on the SAGE
 server and I have it successfully communicating with an applet.

 What I like about JSON is that it is a language-neutral way to send
 data through a network that does not have as high an overhead as XML.
 Also, most popular computer languages have at least one open source
 JSON implementation available which makes the creation of SAGE clients
 in these languages fairly easy.

 If further testing is successful, I would like to have simpleJSON
 included in SAGE.  What procedure do I need to follow in order to make
 an official software addition request?

(1) Convince us it's a good idea.  You basically just did that.

(2) Create a trac ticket and then to attach some code that
we can try it out.

 -- William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~--~~~~--~~--~--~---