Differences between revisions 2 and 3
Revision 2 as of 2009-09-30 13:05:57
Size: 3808
Editor: qed777
Comment: First import from SageUsability.
Revision 3 as of 2009-09-30 13:21:43
Size: 4755
Editor: qed777
Comment: Continued import.
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
== General Must-Read == == General ==
Line 8: Line 8:

 * [[http://groups.google.com/group/sage-devel/browse_thread/thread/258c07ae672a3617 | Sage Forge]].
Line 74: Line 76:
 * Keys: intuitive, splash-screen.  * Keys
   * Insert new cell after current cell.
   * Use js-hotkeys.
   * Splash-screen with common keys.
Line 90: Line 95:
 * Cells: Select, delete, (un)group, move [[http://boagworld.com/demos/sitemap/ | multiple cells]].

 * Published worksheets:
   * RSS feeds.
   * Live cells, e.g, interacts.

 * jsMath fonts:
   * Ship with Sage.
   * Clear install directions.

 * TinyMCE [[http://groups.google.com/group/sage-devel/msg/e2eb3f848a21faa3 | synchronization]] [[http://groups.google.com/group/sage-devel/browse_frm/thread/4cd1cc188470c723/c2477e1bdba68028?q=tinymce+bug+group:sage-devel#c2477e1bdba68028 | problem]].
Line 104: Line 121:
 * Migrate to another server and/or framework: [[http://docs.djangoproject.com/en/dev/ | Django]], [[http://pylonshq.com/ | Pylons]], [[http://pyjs.org/ | Pyjamas]], [[http://www.tornadoweb.org/ | Tornado]], etc.

 * [[http://routes.groovie.org/ | URL routes]].
Line 106: Line 127:

Sage Usability Tasks

Source: Sage Usability Improvements List. This is an attempt to organize the desired changes into tasks of varying difficulty (e.g., easy, medium, hard).

1. General

2. Documentation

3. Notebook: Admin

  • Dashboard for server settings / status.
    • View logged-in users, load, processes, etc.
    • Backup all critical data.
    • Configure thresholds, alerts, snapshot behavior.
    • Manage user accounts, groups, privileges.
    • Restricted version for users.
  • Selective registration with reCAPTCHA, challenge questions, admin approval, and/or revokable custom codes.

  • Custom authentication: LDAP, UNIX accounts, etc.
  • Recovery passwords.
  • Email address as username.
  • User groups.
  • Privileged users, e.g, admins.

4. Notebook: Introspection

  • Use Sphinx for sagenb.org docstrings.
  • Live introspection cells.
  • Introspection cross-links.
  • New documentation browser. Send docstrings to this browser.

  • Better error detection, e.g., for Maxima command completion.
  • Matrix B mentioned twice in B.solve_left?: B.solve_left(B, ...).

5. Notebook: Special modes

6. Notebook: User Interaction

  • Automatic tips for keyboard shortcuts, editing features, etc. Opt out.
  • Friendly bug buddy that emails reports, bundles session history, etc.
  • Easy backups of own work, with or w/o data, output, snapshots, etc.
  • Toolbar with buttons to interrupt running code, save, get key help, etc.
  • Easily identify idle, queued, and running cells.
  • Keys
    • Insert new cell after current cell.
    • Use js-hotkeys.
    • Splash-screen with common keys.
  • Interactive 2D/3D plots
  • Animated 2D/3D plots using only JavaScript.

  • Always show long output links, regardless of interrupt or length.
  • Custom window close callback.
  • Suppress browser warning for Konquereor.
  • Unique cookie for each login.
  • Cells: Select, delete, (un)group, move multiple cells.

  • Published worksheets:
    • RSS feeds.
    • Live cells, e.g, interacts.
  • jsMath fonts:
    • Ship with Sage.
    • Clear install directions.
  • TinyMCE synchronization problem.

7. Notebook: Under the hood

  • Smartly manage Jmol applet count, or memory use.
  • Component architecture.

  • Cythonize pexpect.
  • Client-server synchronization: TinyMCE problem, fail-over servers.
  • Balance server pool loads.
  • Load JS / CSS components on demand.
  • Migrate to another server and/or framework: Django, Pylons, Pyjamas, Tornado, etc.

  • URL routes.

8. Build / Tests