Differences between revisions 1 and 15 (spanning 14 versions)
Revision 1 as of 2009-09-04 00:18:32
Size: 4813
Editor: qed777
Comment: Import http://sage.math.washington.edu/home/wstein/tmp/sageuse/
Revision 15 as of 2009-09-05 13:30:15
Size: 6053
Editor: qed777
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Sage Usability Improvements List =
Adapted from [[http://sage.math.washington.edu/home/wstein/tmp/sageuse/ | this repository]].
= Sage Usability Improvements =

This unofficial wish list is a
dapted from [[http://sage.math.washington.edu/home/wstein/tmp/sageuse/ | this repository]].  Please feel free to add or clarify ideas, link to trac tickets, make comments, reorganize items, point out useful links, etc.
Line 6: Line 7:
 * [[http://groups.google.com/group/sage-devel/msg/e86932eeadd88c6a | latex doc mode]]  * [[http://groups.google.com/group/sage-devel/msg/e86932eeadd88c6a | LaTeX doc mode]].
Line 8: Line 9:
 * [[http://groups.google.com/group/sage-devel/browse_thread/thread/8fa0d854b6928f2b/dc4cfe0a941762aa#dc4cfe0a941762aa | back tick versus $]]-- see sage-devel discussion I started on sept 3; suggestion is to patch Sphinx itself.
 * fix sagenb.org so docstrings look right (sphinx)
 * ReST mode(s):
    (1) replace tinymce by ReST editor?
    (2) %rest in cells, and get rest output.
 * [[http://groups.google.com/group/sage-devel/msg/35e97a1d1cedfdfd | document pexpect users]]
 * [[http://groups.google.com/group/sage-devel/browse_thread/thread/8fa0d854b6928f2b/dc4cfe0a941762aa#dc4cfe0a941762aa | Use $ instead of back ticks for math in reST]] - [[http://trac.sagemath.org/sage_trac/ticket/6892 | #6892]].

 * Use Sphinx for sagenb.org docstrings.

 * reST mode(s):
    1. replace tinymce by reST editor?
      * You might be able to make TinyMCE *be* a reST editor. See [[http://tinymce.moxiecode.com/examples/example_09.php#|this example]] of making TinyMCE into a BBCode editor.
      * reST's implicit closing tags may make this difficult.

    2. %rest in cells, and get reST output. Should this be HTML output from Sphinx?

 * [[http://groups.google.com/group/sage-devel/msg/35e97a1d1cedfdfd | Document pexpect interface for users]].
Line 19: Line 26:
 * add a textcha question for sage notebook signup  * Streamlined deployment - account management, fewer bugs, etc.
Line 21: Line 28:
 * LDAP authentication. Suggested by
"[email protected]
Hello,
I am *very* interested. I am supposed to start a Sage server for *all*
the undergraduate students of my University (at least those learning
maths and computer sciences or physics). My contribution is very small:
add ldap identification, run a server on 3 "large" machines.
Yours
t.d.
"
 * ensure no matter what that worksheet and server are 'nsync
 * [[http://en.wikipedia.org/wiki/Captcha | Captcha]] for notebook sign-up - [[http://recaptcha.net/ | reCAPTCHA]].
Line 33: Line 30:
 * reduce data loss possibilites -- see dataloss.txt  * LDAP authentication. (tdumont)
Line 35: Line 32:
 * Byungchul Cha <[email protected]>: "I am running sage in one of our department servers, so that my students can use them. If my students lose their password, how can I recover it for them? Thanks."  * Guaranteed worksheet-server synchronization.
Line 37: Line 34:
 * make it so username is email address -- i really like that  * Reduce data loss possibilites. ([[http://sage.math.washington.edu/home/wstein/tmp/sageuse/dataloss.txt |dataloss.txt]])
Line 39: Line 36:
 * add users as admin -- see sage-support email to fprimex<[email protected]>  * Recover passwords. (Byungchul Cha)

 * Email address as username.

 * Add users as admins. (fprimex)

 * User groups.
Line 43: Line 46:
 * reorganize the notebook help page  * Balancing server_pool:
{{{
I managed to do a little of this by exporting the directory that the
notebook is running in via NFS to the other machines and maintaining
the same permissions and file structure for everything else. However,
this raised another issue in that not all my machines are of
comparable power. How complicated would it be to add something that
allows you to balance how many processes go to each server? I'm
thinking something along the lines of distcc's host list.
}}}
Line 45: Line 57:
 * automatically have worksheets save their state and restore when started later.  * Account approval:
{{{
> We have a small server and would like provide SAGE (in form of the
> notebook) for the students. However, it maybe a bit
> "risky" (especially, we have no experts to manage it) to open it up to
> everyone. So we would like to have some kind of "account approval"
> procedure. Can that be done, if so how?
}}}
Line 47: Line 66:
 * ability to update the titlebar from sage notebook  * Reorganize the notebook help page.
Line 49: Line 68:
 * ability for interacts to auto-update themselves  * Automatically have worksheets save their state and restore when started later.
Line 51: Line 70:
 * Whoosh fulltext search (search in codenode archives for discussion)  * Update the titlebar from the notebook.
Line 53: Line 72:
 * Keith Lang "Top 10 UX Myths"; http://carsonified.com/blog/design/top-10-ux-myths/  * Auto-updating interacts.
Line 55: Line 74:
 * chat system for students/users  * [[http://whoosh.ca/ | Whoosh]] full-text search ([[http://groups.google.com/group/codenode-devel/browse_thread/thread/d3ffefa3b09937b6/98bdf00f65441934?#98bdf00f65441934 | codenode-devel]]).
Line 57: Line 76:
 * implement %timeit block in notebook  * [[http://carsonified.com/blog/design/top-10-ux-myths/ | Keith Lang's Top 10 UI Myths]].
Line 59: Line 78:
 * [[http://groups.google.com/group/sage-devel/browse_thread/thread/e46f0a59d5cf70dc | tags ]]-- see file tags.txt  * Chat system for students/users - [[http://www.google.com/ig/directory?synd=open&q=chat | Google gadget]]?
Line 61: Line 80:
 * 1 week -- write something to make it easy to embed interacts in other web pages (needed for the frg, imho -- may start this at Lopez).  * Implement %timeit block in notebook.
Line 63: Line 82:
ONDREJ:
. There are things that I now don't like on the Sage notebook, like that if I click on a cell, the frame gets focused (that's ok), but the text moves by one pixel. I hate that. My javascript version doesn't do that, at least on firefox. In fact, it's just a CSS styles issue, so it's easy to fix -- but I wasn't sure if it's just on my firefox, or oeverywhere.
 * [[http://groups.google.com/group/sage-devel/browse_thread/thread/e46f0a59d5cf70dc | Worksheet tags]]. (Brian Granger)
Line 66: Line 84:
 * iphone -- link to do completions  * Embed cells, including interacts, in other web pages.
Line 68: Line 86:
 * notebook input bug -- http://trac.sagemath.org/sage_trac/ticket/6729  * Prevent text movement by a pixel on cell frame focus. (Ondrej)
Line 70: Line 88:
 * debugger in the notebook  * Completions link for iphone.
Line 72: Line 90:
 * Somebody published a irrelevant worksheet (to test the button) and wanted to cancel it but he was not able. He then delete its worksheet, but apparently the worksheet was still published...:(  * Notebook input bug - [[http://trac.sagemath.org/sage_trac/ticket/6729 | #6729]].
Line 74: Line 92:
 * make it possible to delete published worksheets.  * Python debugger in the notebook.
Line 76: Line 94:
 * slideshow mode  * Make it possible to delete published worksheets.
Line 78: Line 96:
 * in-browser zoom-pan-annotate of Sage plots  * Slideshow mode.
Line 80: Line 98:
 * What I mean is that the chance to access at the same time an history powered command line, and a powerful editor (with code completion, tabs, colors, etc.., which looks pretty standard - to not say minimal - in these modern times) looks pretty comfortable to me, but I'll be happy to listen to other comments. I've already heard talking about BeSpin ( https://bespin.mozilla.com/ ) in this list, right? Can't we have something similar? :)  * Interactively zoom, pan, and annotate plots.
Line 82: Line 100:
 * fix moinmoin  * Powerful editor with command-line history, syntax highlighting, context-sensitive completions, etc. - [[https://bespin.mozilla.com/ | BeSpin]].

 * Fix !MoinMoin.

 * Publishing notebook pages to selected users or groups.

 * [[http://groups.google.com/group/sage-devel/browse_thread/thread/da578e3918f08709/da54258f1783b874?#da54258f1783b874 | GUI plugins for math input]].

 * [[http://groups.google.com/group/sage-devel/browse_thread/thread/86429406fb3bba17/dd3163cb2a47fa38?#dd3163cb2a47fa38 | Vector graphics editing]] - [[http://code.google.com/p/svg-edit/ | SVG-edit]].

 * Account tokens:
{{{
A preliminary patch for this is available at
http://www.math.leidenuniv.nl/~wpalenst/sage/account_tokens.patch . It is a
patch against 4.1.1 with tickets 4552
('trac_4552-notebook_account_email.patch'), 6843, 6856 applied.

(TODO: add doctests, implement token-generation page to the interface added by
ticket 4135, allow enabling/disabling the token feature from that page too.)
}}}

 * The 'forgot password' feature (enabled by enabling the 'email' setting of the notebook) currently allows anyone to reset the password of anyone they know the email address of, since it currently directly resets the password and mails the new password to the email address associated with the account. It would probably be better to instead generate a second password for the account, that would only become permanent once it has been used once. Or, alternatively, to email a link with a secure token to a password-change-page.
Line 86: Line 126:
 * Implement a cross-browser web-application testing infrastructure based on webdriver http://code.google.com/p/webdriver/ for the notebook, focused on functionality, consistency and concurrency. For example, execute 10 sessions of virtual calculus students in a loop. tags: google <- for funding? notebook java stresstest Money? Don't know, motivated student who has learned webdesign, java and probably python.  * Notebook testing infrastructure - automated, cross-browser and platform, focused on functionality, consistency, concurrency, and scalability - [[http://seleniumhq.org/ | Selenium]], [[http://testled.com/ | Testled]], [[http://code.google.com/p/webdriver/ | WebDriver]]. For example, execute 10 sessions of virtual calculus students in a loop.
Line 88: Line 128:
 * http://testled.com/  * Make it so Sage binaries don't use SSE3, etc. -- make them FAT!
Line 90: Line 130:
 * make it so sage binaries don't use ssse3, etc. -- make them FAT!  * Windows build farm.
Line 92: Line 132:
 * windows server farm  * Sagelite - separate the current notebook from Sage. Windows port.
Line 94: Line 134:
 * 1 week -- write code to do automated testing of the scalability of the Sage (or any) notebook system  * Windows port.
Line 96: Line 136:
 * 1 week -- get the current notebook separated out from Sage 100% for real and get it to work on windows. (this is sagelite).  * !VirtualBox Sage.
Line 98: Line 138:
 * 1 month -- the windows port  * andLinux Sage.
Line 100: Line 140:
 * 2 days -- VirtualBox Sage  * Improve documentation/testing and refactor code.
Line 102: Line 142:
 * 2 days -- andLinux Sage

 * 1 month -- fix the major bugs and issues with the current notebook that make it difficult to deploy (e.g., account management).

 * 1 week -- improve documentation/testing and refactor code.
 * Upgrade Sage for 66-bit processors.

Sage Usability Improvements

This unofficial wish list is adapted from this repository. Please feel free to add or clarify ideas, link to trac tickets, make comments, reorganize items, point out useful links, etc.

Documentation

Notebook

Admin

  • Streamlined deployment - account management, fewer bugs, etc.
  • Captcha for notebook sign-up - reCAPTCHA.

  • LDAP authentication. (tdumont)
  • Guaranteed worksheet-server synchronization.
  • Reduce data loss possibilites. (dataloss.txt)

  • Recover passwords. (Byungchul Cha)
  • Email address as username.
  • Add users as admins. (fprimex)
  • User groups.

Users

  • Balancing server_pool:

I managed to do a little of this by exporting the directory that the
notebook is running in via NFS to the other machines and maintaining
the same permissions and file structure for everything else.  However,
this raised another issue in that not all my machines are of
comparable power.  How complicated would it be to add something that
allows you to balance how many processes go to each server?  I'm
thinking something along the lines of distcc's host list.
  • Account approval:

> We have a small server and would like provide SAGE (in form of the
> notebook) for the students. However, it maybe a bit
> "risky" (especially, we have no experts to manage it) to open it up to
> everyone. So we would like to have some kind of "account approval"
> procedure. Can that be done, if so how?
  • Reorganize the notebook help page.
  • Automatically have worksheets save their state and restore when started later.
  • Update the titlebar from the notebook.
  • Auto-updating interacts.
  • Whoosh full-text search (codenode-devel).

  • Keith Lang's Top 10 UI Myths.

  • Chat system for students/users - Google gadget?

  • Implement %timeit block in notebook.
  • Worksheet tags. (Brian Granger)

  • Embed cells, including interacts, in other web pages.
  • Prevent text movement by a pixel on cell frame focus. (Ondrej)
  • Completions link for iphone.
  • Notebook input bug - #6729.

  • Python debugger in the notebook.
  • Make it possible to delete published worksheets.
  • Slideshow mode.
  • Interactively zoom, pan, and annotate plots.
  • Powerful editor with command-line history, syntax highlighting, context-sensitive completions, etc. - BeSpin.

  • Fix MoinMoin.

  • Publishing notebook pages to selected users or groups.
  • GUI plugins for math input.

  • Vector graphics editing - SVG-edit.

  • Account tokens:

A preliminary patch for this is available at
http://www.math.leidenuniv.nl/~wpalenst/sage/account_tokens.patch . It is a
patch against 4.1.1 with tickets 4552
('trac_4552-notebook_account_email.patch'), 6843, 6856 applied.

(TODO: add doctests, implement token-generation page to the interface added by
ticket 4135, allow enabling/disabling the token feature from that page too.)
  • The 'forgot password' feature (enabled by enabling the 'email' setting of the notebook) currently allows anyone to reset the password of anyone they know the email address of, since it currently directly resets the password and mails the new password to the email address associated with the account. It would probably be better to instead generate a second password for the account, that would only become permanent once it has been used once. Or, alternatively, to email a link with a secure token to a password-change-page.

Build / Test

  • Notebook testing infrastructure - automated, cross-browser and platform, focused on functionality, consistency, concurrency, and scalability - Selenium, Testled, WebDriver. For example, execute 10 sessions of virtual calculus students in a loop.

  • Make it so Sage binaries don't use SSE3, etc. -- make them FAT!
  • Windows build farm.
  • Sagelite - separate the current notebook from Sage. Windows port.
  • Windows port.
  • VirtualBox Sage.

  • andLinux Sage.
  • Improve documentation/testing and refactor code.
  • Upgrade Sage for 66-bit processors.