Hello,

Within one year, I would like to push for SAGE to have at least ten thousand
serious users instead of only a few hundred users (I estimate there are < 400
users of SAGE in the world today).  I think the following are the main
priorities
if we want to make this happen:

1. Installation:

    - LINUX: We need .deb source and binary package for
Debian/Ubuntu-based Linux machines that installs sage to /opt/sage.  A
minimum requirement for this
package is that absolutely anybody on a Debian system with the appropriate
Debian package tools can create this deb, e.g., by typing something
like "sage -bdistdeb filename.deb"; no further work should be needed.

    - LINUX: We need an .rpm src and binary package for Redhat-based systems.
The issues are similar to for a deb.

    - OS X: We need an .app bundle for SAGE, i.e., a way to create a
.app directory structure, so users get a single icon that they can
drag anywhere, e.g., their /Applications folder.  Double clicking on
the icon should start a SAGE notebook server and pop up a copy of SAGE
running in Firefox, or complain that Firefox must be installed.  The
notebook server should just run in the background, and should turn
itself off if it isn't used for 1 hour.  The SAGE Notebook should very
clearly
report what happens if the notebook server disappears.   It is
critical that either this .app bundle be creatable on OS X in an
automated fashion that anybody with OS X and xcode can do by typing
"sage -bdistosx filename-2.4.2.pkg" say.

    - MS Windows: We need a .msi installer that installs cygwin and
SAGE together to a uers's directory.  Gary Zablackis used to make one
of this, but he is no longer contributing to SAGE, unfortunately.
Nobody has volunteered to take over.   Creation of this installer
should be as automated as possible, optimally do-able entirely from
SAGE/Cygwin by typing a command in SAGE or from Cygwin.

2. The Notebook:

   - It *needs* to be redone using Twisted, or at least some sort of
more robust multi-threaded or asynchronous I/O model that supports ssl
connections.
   - There are several major problems with the GUI that need to be addressed:
        * The edit mode has two problems: (1) images aren't preserved;
(2) one can't always insert new cells between html text.
        * The textarea's need to be replaced by a full-fledged code
editor with syntax highlighting, autoindent, etc.  Tom Boothby is
working on this.
        * Saving and loading of worksheets needs to be revamped.
        * Printing should use pdflatex, etc.; this would look vastly
better.  Also, export (and import) of worksheets and notebooks to
latex should be trivial.

   - Full text doc and source search needs to be optimized.  I just
wrote a 2-liner using grep, but Alex Clemesha has some good SQLite
code that should replace this.  Alternatively, maybe there is an
indexing extension to grep (??).

3. Symbolic Calculus:
    - Aside from section 1 above on installation, this is the most
important thing for SAGE to be useful to a wide range of people.
    - A first release of this is very close.  I would have released it
already, but
 when stress testing Bobby's latest version I quickly discovered some issues
 with the Maxima <--> SAGE interface that have to be resolved,
probably via some very unpleasant and tricky pexpect hacking.  :-(
    - Making Symbolic Calculus fast and robust enough is going to
require some very serious work and minimizing or eliminating
dependence on Maxima. Fortunately symbolic computer algebra is fairly
well studied and well understood...

4. Bugs:
   - SAGE still has way way too many bugs.
   - The patch referee system is helping greatly so far.  Many thanks
for all the volunteers who have helped with this!
   - Everybody who considers sending me code -- please, please, please
strive for the absolutely highest quality you can.  Write doctests for
every function.  Create a  TESTS section in docstrings with even more
tests.  Create an automated testing function.  Etc.

5. Publicity:
I think what is needed to grow the user base to > 10K is the following:
  - Please, write journal articles, books, and papers (both research
and aimed at undergrads) that have snippets of SAGE code or mention
how to use SAGE.  Naturally, I'm doing this a lot (my modular forms
book has SAGE code, and I'm redoing my elementary number theory book
to use SAGE before it gets published), etc.   If you write foo.tex
with SAGE code in verbatim blocks, you can do "sage -t foo.tex" and it
will doctest your file for you.
  - Articles like the blog post Georg wrote recently are excellent publicity.
  - We should create a nice general and very pretty SAGE poster, then
print up a few hundred and send them to all people on sage-devel to
post in their places of employment, etc.
  - Give talks at conferences and mention SAGE.

6. Commutative Algebra and Linear Algebra:
   - Martin Albrecht is doing excellent work laying the groundwork to
make polynomial arithmetic, etc., in SAGE superb.
   - Linear algebra is also going reasonably well, in that the overall
situation is finally reasonably good, after a year of serious pain.

-----

Most development work on SAGE right now is on advanced
research-related algorithms, not on the issues listed above.  I'm very
proud of this work, and I see it as our greatest strength -- it
distinguishes SAGE as a technology from Maple/Mathematica/MATLAB.
Keep up the great work!

If you're interested in seriously helping with anything listed above
(or have a student who can -- most work on the above points so
far has been done by undergraduates!), please reply to this email and
explain your interest, or email me.

William

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [EMAIL PROTECTED]
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/
-~----------~----~----~----~------~----~------~--~---

Reply via email to