Both the Sage notebook and codenode are similar projects that support development of Python programs via a web browser interface. They have been around for about 4 years, and full source code is available for both in case you want to setup your own server (there are dozens of Sage notebook servers used at universities around the world).
Microsoft has given significant funding to support the development of Sage and R. In the case of Sage the funding has always been "no strings attached". (I am director of the Sage project, and Sage is licenced under the GPL.)
I am a mathematics professor at the University of Washington in Seattle, and I published a textbook that I use in a course I teach. According to Washington State law, any royalties I receive as a result of purchases of my textbook by students in the course must be donated to the university (I tracked student purchases and donated a corresponding amount to UW). Second, I got permission from the publisher (Springer-Verlag) to make a free PDF version of the book available.
> I don't want to load 20 modules before I can begin coding. I just want to input my algorithm and get a result I expect (not 5/2=2).
You might want to try Sage (sagemath.org and sagenb.org). It's Python, but it fixes the "5/2" issue and preloads numerous modules.
(1/10)^n for integer n is irrational in base 2 and the truncation was unavoidable.
Whether or not a number is irrational does not depend on the base. The number (1/10)^n is rational in any base. By irrational, maybe you meant "finite decimal expansion"?
Unrelated: The article starts with the example 599999999999999 - 599999999999998 = 0 in Google. Fortunately some software gives the correct result by default.
That's a good explanation. I have to emphasize though, that they actually found all the congruent numbers up to a trillion only under the completely unproven hypothesis that the Birch and Swinnerton-Dyer conjecture is true. It's entirely possible that this conjecture is false, and some of the numbers they found are actually not congruent numbers. However, part of the conjecture is known (by work of Coates and Wiles -- the same Wiles who proved Fermat's Last Theorem), so we do know that all numbers they didn't list are definitely not congruent numbers.
I own the 128GB RAM, etc., computer that the second group did the computation on. I have a Sun X4550 24TB disk array (ZFS) connected to it, but I only allocated a few terabytes of space for a scratch disk. They were well into the calculation when I found out what they were up to (I was initially annoyed, since they were saturating the network). I think they were just being polite to me and the other users by not using a lot more disk.
I asked them before this came out, and they said they didn't want to post their code on the press release in order to avoid being slashdotted. Seriously. I think the code is certainly available upon request, and will be made available later when the hoopla dies down. Much of it is in FLINT, which is part of Sage.
It is an *open problem* to show that there exists algorithm at all to decide whether a given integer N is a congruent number. Full stop. It's not a question of speed, or even skipping previous integers. We simply don't even know that it is possible to decide whether or not integers are congruent numbers. However, if the Birch and Swinnerton-Dyer conjecture is true (which we don't know), then there is an algorithm.
> What the community needs right now is a Python distro with enough of a > numerics and graphics package rolled in to do 90 percent of what is in > Matlab.
> (Are the Python people still hashing out that Numerics/Numpy divide?
No that is done. And the lead developer of Numpy -- Travis Oliphant -- now gets to work full time on Python scientific computing, as an employee of Enthought.
> Is there an engineering graphics library that is Numerics/Numpy compatible?
There is Matplotlib for matlab like numpy graphics, and Chaco for more dynamic 2d graphics. MayaVi and Sage both provide powerful 3d graphics.
> I find the packaging of SAGE to be rather arrogant and self-important.
The current packaging of Sage was the most technically efficient way to accomplish the goals of the Sage project quickly: (1) create a distribution of math software that builds from scratch on all modern OS X and Linux installs, (2) create a new library of functionality that ties it all together and more, and (3) create interfaces to most existing mathematical software. Creating.deb,.rpm's etc., is something that we've always planned to do: see http://wiki.sagemath.org/DebianSAGE
> At first glance it looks like SAGE is millions of lines of source code. > On closer inspection I find that SAGE is really just several dozen open > source mathematics packages bundled together in a tarball with the SAGE > name slapped on it.
Sage is not "just that". It is nearly 70 packages, which took many people a huge amount of time to get to all build together correctly -- and in many cases (e.g., linbox, genus2reduction, mpfi, pyrex/cython, Singular, etc.) Sage developers fixed significant bugs in those packages or made major contributions; in some cases taking them from being nearly-orphaned research only systems to serious projects. And Sage is also a huge amount of new code.
> On even closer inspection I find that there is actually > SAGE code that appears very worthwhile, additional functionality is provided, > a consistent interface, etc. However, I'm not going to use it seriously > because I can't 'apt-get install sage-math'.
That will come later when people who want to apt-get Sage actually put in the work to make it happen. This is of course happening now and I strongly support it. I just don't have the time to do it myself.
> SAGE wants me to download > and install more than 200MB of stuff that isn't going to be handled by > my OS package management, and it duplicates many of the components I > already have installed that are handled by my OS package management.
In fact, because SAGE builds completely self contained it will not conflict with or cause any headaches with anything you have installed.
> Don't make me use your own forked and patched versions of Pari or GAP.
I am certainly not making you use anything.
> I can 'apt-get install pari-gp gap' today(and I already have). I'm > not going to install your alternative versions and deal with any > inconsistancies between them. I'm not throwing out the ease of use that > OS level package management provides to get SAGE. I know many other > people who aren't going to do it either.
Look, there is nothing whatever about the Sage project or me that is against mainstream packaging. It's just that Sage is a volunteer project for which most developers are naturally mathematicians. We simply don't have the time to maintain Debianizing dozens of packages. Arrogance has nothing to do with it. I very much hope http://wiki.sagemath.org/DebianSAGE takes off.
The sage-vmware image (which is currently the best way to run sage on Microsoft Windows) contains a complete copy of Ubuntu Linux and GCC, in addition to a full build of Sage. There is a project to create a complete native Windows port, but that will take more developers and time. It's nontrivial to do because some of the components of Sage were developed by math researchers who primarily care about Linux/OS X.
> The success of Sage won't be determined by how powerful it is.
The success of Sage with research mathematicians may be determined by how powerful Sage is, but you're right -- the success for 99% of users won't be determined by that.
> As others have observed, it is largely a mashup of existing stuff. > Its success will be determined by how easy it is to use. If someone > can put together some decent documentation
We have many people in the development team who are really very interested in writing good documentation (and who write published mathematics books as part of our jobs). For example, the author of "Adventures in Group Theory: Rubik's Cube, Merlin's Machine, and Other Mathematical Toys" is one of the main Sage developers (he's coming out with a new version of the book that uses Sage soon).
> and a semi-intuitive UI, it will take off.
From the start we've had many undergraduates with a software engineering background involved in the project and they have helped immensely with the browser-based GUI (which one can use locally -- no need to be online!). Also, us "professional mathematicians" -- even the ones that use mainly FOSS -- really do greatly value having a nice GUI. You might be able to try out the GUI right now here:
>>... and there's actually another SAGE project at the >> University of Washington (which I can't find a link for) >> which does something entirely different.
>The System to Administer Grants Electronically?
I've had accountants from University of Washington call me about learning Sage (their Sage, not mine) in one of my classes, or in one of the Sage Days coding sprint workshops like http://sagemath.org:9001/days7.
I also have a really cool "SAGE" (the grant system) refrigerator magnet that my accountant here gave me.
-- Willam (a Sage developer at University of Washington)
> Sage encourages the user to view the source of their functions > because scientific work must be accountable and peer-reviewed. > Everything you depend upon must be proved and their > implementation must be correct.
I agree. Moreover most Sage users know somewhat how to program (since Sage is a programming language, after all), and hence knows how to use code. The same probably isn't the case for Firefox users.
> Since R has a great user base and is so easy to add extensions to, > wouldn't it make more sense to put sage inside of R?
1. Sage (which is nearly 5 million lines of code) is already much bigger than R.
2. One of the main goals of Sage is to be a cross-platform distribution of math software, and including R in Sage fits well with this goal. (Morever the core functionality of R compiles from source in 5 minutes.)
3. Sage uses the Python language, which has advantages over special-purpose math languages.
4. We would love for there to be an interface from R to Sage also.
By the way, R frickin' rocks, and was one of the main inspirations for Sage!
Disclaimer: I wrote the AMS opinion piece being discussed.
>...is this saying the American Mathematical Society > is accepting proprietary software used in proofs?
Yes, the AMS does sometimes publish papers that contain tables, conclusions, data, etc., that were computed using only proprietary software. These tables may then be used by other mathematicians in their work... As an example, here is a paper that I personally co-authored that uses proprietary software (Magma http://magma.maths.usyd.edu.au/magma/) for the calculations:
This sort of thing is now extremely common in computational number theory, at least.
Re:Python is part of the answer
on
Open Source Math
·
· Score: 1
> Actually the source code to almost every function is available in Mathematica, > it just isn't distributed under an open source license.
I wish. This is simply wrong. Since you're using OS X as an example, much of the core functionality is defined in the files here:/Applications/Mathematica.app/SystemFiles/Kernel/SystemResources
All of that code is compiled and closed. For example, the function BernoulliB, which I would like to see the source code of (since I've written a paper about how to compute it efficiently) seems to be defined in/Applications/Mathematica.app/SystemFiles/Kernel/SystemResources/MacOSX-x86-64/SpecialFunctions/Bernoulli.mx
which is a compiled binary file.
-- William
Re:Math is "Free", MY LILY-WHITE ASS.
on
Open Source Math
·
· Score: 5, Insightful
> In mathematics information is passed on free of charge and everything is laid open for checking.'
> I'm not going to disagree with the "laid open" part, but the "free of charge" nonsense > is just typical marxist university professor hypocrisy.
Taken out of context the quote might not make sense to you. The full quote from Neubuser is:
You can read Sylow's Theorem and its proof in Huppert's book in the library [...] then you can use Sylow's Theorem for the rest of your life free of charge, but for many computer algebra systems license fees have to be paid regularly [...]. You press buttons and you get answers in the same way as you get the bright pictures from your television set but you cannot control how they were made in either case.
With this situation two of the most basic rules of conduct in mathematics are violated: In mathematics information is passed on free of charge and everything is laid open for checking. Not applying these rules to computer algebra systems that are made for mathematical research [...] means moving in a most undesirable direction. Most important: Can we expect somebody to believe a result of a program that he is not allowed to see? Moreover: Do we really want to charge colleagues in Moldova several years of their salary for a computer algebra system?
When Neubuser says that mathematics is "free of charge" he means that one can use theorems one reads without having to pay to use those theorems. He is of course not at all claiming that publishers do not charge for books and papers that contain mathematics. Put simply, if I want to use the "FactorN" function in Mathematica, I have to pay for the privilege every time I use it. If I want to use the theorem that every integer factors uniquely as a product of primes, then I never have to pay, even if I am using that theorem in a published proof.
-- William
Re:look at who's speaking...
on
Open Source Math
·
· Score: 3, Informative
The AMS did not write that article. I wrote the article as an opinion piece and the AMS published it. They do not necessarily agree with the points made in the article.
By the way, the article is not about formal automated proofs. It is about what is now standard procedure in mathematical research, namely proofs that look like this:
[Formal mathematical argument]... and (using [Mathematica|Magma|...]) we deduce that [...].
It's incredibly common right now when reading published mathematical papers to see random citations to using closed source software to do key steps of calculations. Usually even the code used to get the closed source program to yield the result isn't given.
The way many mathematicians read proofs is that they often basically skim the argument to get a general idea of what it is about. Then they decide they want to prove something similar or related, and they "dive" into the most refined details of some key part of the argument. When a part of the argument is "... using Mathematica we deduce..." this gets very very frustrating, since one just hits a brick wall. And, in practice, reimplementing -- with enough optimization to make it useful for research -- just one or two key functions from Mathematica or Magma, can take literally years of work (in fact, that's exactly what I've been doing the last few years with http://sagemath.org/). And sometimes exactly that is necessary to go beyond what has already been done, i.e., to do research.
Both the Sage notebook and codenode are similar projects that support development of Python programs via a web browser interface. They have been around for about 4 years, and full source code is available for both in case you want to setup your own server (there are dozens of Sage notebook servers used at universities around the world).
Microsoft has given significant funding to support the development of Sage and R. In the case of Sage the funding has always been "no strings attached". (I am director of the Sage project, and Sage is licenced under the GPL.)
I am a mathematics professor at the University of Washington in Seattle, and I published a textbook that I use in a course I teach. According to Washington State law, any royalties I receive as a result of purchases of my textbook by students in the course must be donated to the university (I tracked student purchases and donated a corresponding amount to UW). Second, I got permission from the publisher (Springer-Verlag) to make a free PDF version of the book available.
> I don't want to load 20 modules before I can begin coding. I just want to input my algorithm and get a result I expect (not 5/2=2). You might want to try Sage (sagemath.org and sagenb.org). It's Python, but it fixes the "5/2" issue and preloads numerous modules.
(1/10)^n for integer n is irrational in base 2 and the truncation was unavoidable.
Whether or not a number is irrational does not depend on the base. The number (1/10)^n is rational in any base. By irrational, maybe you meant "finite decimal expansion"?
Unrelated: The article starts with the example 599999999999999 - 599999999999998 = 0 in Google. Fortunately some software gives the correct result by default.
That's a good explanation. I have to emphasize though, that they actually found all the congruent numbers up to a trillion only under the completely unproven hypothesis that the Birch and Swinnerton-Dyer conjecture is true. It's entirely possible that this conjecture is false, and some of the numbers they found are actually not congruent numbers. However, part of the conjecture is known (by work of Coates and Wiles -- the same Wiles who proved Fermat's Last Theorem), so we do know that all numbers they didn't list are definitely not congruent numbers.
I own the 128GB RAM, etc., computer that the second group did the computation on. I have a Sun X4550 24TB disk array (ZFS) connected to it, but I only allocated a few terabytes of space for a scratch disk. They were well into the calculation when I found out what they were up to (I was initially annoyed, since they were saturating the network). I think they were just being polite to me and the other users by not using a lot more disk.
I asked them before this came out, and they said they didn't want to post their code on the press release in order to avoid being slashdotted. Seriously. I think the code is certainly available upon request, and will be made available later when the hoopla dies down. Much of it is in FLINT, which is part of Sage.
It is an *open problem* to show that there exists algorithm at all to decide whether a given integer N is a congruent number. Full stop. It's not a question of speed, or even skipping previous integers. We simply don't even know that it is possible to decide whether or not integers are congruent numbers. However, if the Birch and Swinnerton-Dyer conjecture is true (which we don't know), then there is an algorithm.
afaik elliptical encryption, which is also usable for asymmetric encryption, isn't impacted.
It is impacted. There are also quantum algorithms to break elliptic curve cryptography.
See, e.g., http://arxiv.org/abs/quant-ph/0301141
Microsoft also recently donated $32,000 to support the Sage Mathematics Software Project, which produced GPL'd free software. See the financial contributors list.
-- William (Sage developer)
> What the community needs right now is a Python distro with enough of a
> numerics and graphics package rolled in to do 90 percent of what is in
> Matlab.
Good idea. This is what both Sage and the Enthought Python Distribution are
shooting for.
> (Are the Python people still hashing out that Numerics/Numpy divide?
No that is done. And the lead developer of Numpy -- Travis Oliphant --
now gets to work full time on Python scientific computing, as an
employee of Enthought.
> Is there an engineering graphics library that is Numerics/Numpy compatible?
There is Matplotlib for
matlab like numpy graphics, and Chaco for more dynamic 2d graphics. MayaVi and Sage both provide powerful 3d graphics.
In the Sage (AJAX...) notebook we https://www.sagenb.org/home/pub/1693/render
a 3d cube using the
awesome Jmol library.
> I find the packaging of SAGE to be rather arrogant and self-important.
.deb, .rpm's etc., is something that we've always planned
The current packaging of Sage was the most technically efficient way to
accomplish the goals of the Sage project quickly: (1) create a distribution
of math software that builds from scratch on all modern OS X and Linux
installs, (2) create a new library of functionality that ties it all
together and more, and (3) create interfaces to most existing mathematical
software. Creating
to do: see http://wiki.sagemath.org/DebianSAGE
> At first glance it looks like SAGE is millions of lines of source code.
> On closer inspection I find that SAGE is really just several dozen open
> source mathematics packages bundled together in a tarball with the SAGE
> name slapped on it.
Sage is not "just that". It is nearly 70 packages, which took many people
a huge amount of time to get to all build together correctly -- and in many
cases (e.g., linbox, genus2reduction, mpfi, pyrex/cython, Singular, etc.)
Sage developers fixed significant bugs in those packages or made major
contributions; in some cases taking them from being nearly-orphaned research
only systems to serious projects. And Sage is also a huge amount
of new code.
> On even closer inspection I find that there is actually
> SAGE code that appears very worthwhile, additional functionality is provided,
> a consistent interface, etc. However, I'm not going to use it seriously
> because I can't 'apt-get install sage-math'.
That will come later when people who want to apt-get Sage actually put in
the work to make it happen. This is of course happening now and I strongly
support it. I just don't have the time to do it myself.
> SAGE wants me to download
> and install more than 200MB of stuff that isn't going to be handled by
> my OS package management, and it duplicates many of the components I
> already have installed that are handled by my OS package management.
In fact, because SAGE builds completely self contained it will not
conflict with or cause any headaches with anything you have installed.
> Don't make me use your own forked and patched versions of Pari or GAP.
I am certainly not making you use anything.
> I can 'apt-get install pari-gp gap' today(and I already have). I'm
> not going to install your alternative versions and deal with any
> inconsistancies between them. I'm not throwing out the ease of use that
> OS level package management provides to get SAGE. I know many other
> people who aren't going to do it either.
Look, there is nothing whatever about the Sage project or me that is
against mainstream packaging. It's just that Sage is a volunteer project
for which most developers are naturally mathematicians. We simply don't
have the time to maintain Debianizing dozens of packages. Arrogance has
nothing to do with it. I very much hope http://wiki.sagemath.org/DebianSAGE
takes off.
-- William (a Sage developer)
The sage-vmware image (which is currently the best way to run sage on Microsoft Windows) contains a complete copy of Ubuntu Linux and GCC, in addition to a full build of Sage. There is a project to create a complete native Windows port, but that will take more developers and time. It's nontrivial to do because some of the components of Sage were developed by math researchers who primarily care about Linux/OS X.
-- William (A Sage Developer)
Try out Sage's notebook interface right now (before it gets slashdotted)!
https://sage.math.washington.edu:8101/
Just click on "Sign up for a new SAGE Notebook account". Make sure to
use Firefox, Safari, or Opera.
William
> The success of Sage won't be determined by how powerful it is.
The success of Sage with research mathematicians may be determined by how
powerful Sage is, but you're right -- the success for 99% of users won't be
determined by that.
> As others have observed, it is largely a mashup of existing stuff.
> Its success will be determined by how easy it is to use. If someone
> can put together some decent documentation
We have many people in the development team who are really very interested
in writing good documentation (and who write published mathematics books as
part of our jobs). For example, the author of "Adventures in Group Theory:
Rubik's Cube, Merlin's Machine, and Other Mathematical Toys" is
one of the main Sage developers (he's coming out with a new version of the
book that uses Sage soon).
> and a semi-intuitive UI, it will take off.
From the start we've had many undergraduates with a software engineering
background involved in the project and they have helped immensely with
the browser-based GUI (which one can use locally -- no need to be online!).
Also, us "professional mathematicians" -- even the ones that use mainly FOSS --
really do greatly value having a nice GUI. You might be able to try
out the GUI right now here:
https://sage.math.washington.edu:8101/
that is, if it hasn't been slashdotted into oblivion already!
-- Willam
>> ... and there's actually another SAGE project at the
>> University of Washington (which I can't find a link for)
>> which does something entirely different.
>The System to Administer Grants Electronically?
I've had accountants from University of Washington call me about
learning Sage (their Sage, not mine) in one of my classes, or
in one of the Sage Days coding sprint workshops like
http://sagemath.org:9001/days7.
I also have a really cool "SAGE" (the grant system) refrigerator
magnet that my accountant here gave me.
-- Willam (a Sage developer at University of Washington)
> Sage encourages the user to view the source of their functions
> because scientific work must be accountable and peer-reviewed.
> Everything you depend upon must be proved and their
> implementation must be correct.
I agree. Moreover most Sage users know somewhat how to
program (since Sage is a programming language, after all),
and hence knows how to use code. The same probably
isn't the case for Firefox users.
> Since R has a great user base and is so easy to add extensions to,
> wouldn't it make more sense to put sage inside of R?
1. Sage (which is nearly 5 million lines of code) is already much bigger than R.
2. One of the main goals of Sage is to be a cross-platform distribution of math software, and including R in Sage fits well with this goal. (Morever the core functionality of R compiles from source in 5 minutes.)
3. Sage uses the Python language, which has advantages over special-purpose math languages.
4. We would love for there to be an interface from R to Sage also.
By the way, R frickin' rocks, and was one of the main inspirations for Sage!
-- William (a Sage Developer)
For the Sage wiki it is faster to use http://www.sagemath.org:9001/
For the Sage trac server it is faster to use http://trac.sagemath.org:9002/sage_trac
Disclaimer: I wrote the AMS opinion piece being discussed.
...is this saying the American Mathematical Society
>
> is accepting proprietary software used in proofs?
Yes, the AMS does sometimes publish papers that contain tables, conclusions, data, etc., that were computed using only proprietary software. These tables may then be used by other mathematicians in their work... As an example, here is a paper that I personally co-authored that uses proprietary software (Magma http://magma.maths.usyd.edu.au/magma/) for the calculations:
http://www.ams.org/mcom/2001-70-236/S0025-5718-01-01320-5/home.html
This sort of thing is now extremely common in computational number theory, at least.
> Actually the source code to almost every function is available in Mathematica,
/Applications/Mathematica.app/SystemFiles/Kernel/SystemResources
/Applications/Mathematica.app/SystemFiles/Kernel/SystemResources/MacOSX-x86-64/SpecialFunctions/Bernoulli.mx
> it just isn't distributed under an open source license.
I wish. This is simply wrong. Since you're using OS X as an example, much of the core functionality is defined in the files here:
All of that code is compiled and closed. For example, the function BernoulliB, which I would like to see the source code of (since I've written a paper about how to compute it efficiently) seems to be defined in
which is a compiled binary file.
-- William
> I'm not going to disagree with the "laid open" part, but the "free of charge" nonsense
> is just typical marxist university professor hypocrisy.
Taken out of context the quote might not make sense to you. The full quote from Neubuser is:
When Neubuser says that mathematics is "free of charge" he means that
one can use theorems one reads without having to pay to use those theorems.
He is of course not at all claiming that publishers do not charge for
books and papers that contain mathematics. Put simply, if I want to use
the "FactorN" function in Mathematica, I have to pay for the privilege
every time I use it. If I want to use the theorem that every integer
factors uniquely as a product of primes, then I never have to pay, even if
I am using that theorem in a published proof.
-- William
The AMS did not write that article. I wrote the article as an opinion piece and the AMS published it. They do not necessarily agree with the points made in the article.
... and (using [Mathematica|Magma|...]) we deduce that [...].
..." this gets very very frustrating, since one just hits a brick wall. And, in practice, reimplementing -- with enough optimization to make it useful for research -- just one or two key functions from Mathematica or Magma, can take literally years of work (in fact, that's exactly what I've been doing the last few years with http://sagemath.org/). And sometimes exactly that is necessary to go beyond what has already been done, i.e., to do research.
By the way, the article is not about formal automated proofs. It is about what is now standard procedure in mathematical research, namely proofs that look like this:
[Formal mathematical argument]
It's incredibly common right now when reading published mathematical papers to see random citations to using closed source software to do key steps of calculations. Usually even the code used to get the closed source program to yield the result isn't given.
The way many mathematicians read proofs is that they often basically skim the argument to get a general idea of what it is about. Then they decide they want to prove something similar or related, and they "dive" into the most refined details of some key part of the argument. When a part of the argument is "... using Mathematica we deduce
-- William Stein