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 Must-Read
Y. Aner's notebook threat model (PDF).
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
Graph editor - #1321.
- reST editing.
%rest cells (auto-hide, double-click to show) sent to Sphinx on-the-fly.
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: intuitive, splash-screen.
- Interactive 2D/3D plots
coordinates, zoom, pan, annotate
matplotlib, canvas, SVG, Flot, Open Flash Chart.
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.
7. Notebook: Under the hood
- Smartly manage Jmol applet count, or memory use.
- Cythonize pexpect.
- Client-server synchronization: TinyMCE problem, fail-over servers.
- Balance server pool loads.
- Load JS / CSS components on demand.