# Google Summer of Code 2008 Sage Project Idea: The Sage Notebook

MENTORS: William Stein ([email protected]) and Tom Boothby ([email protected]).

Sage is a unified open source mathematics software environment that provides a viable free open source alternative to Magma, Maple, Mathematica, and Matlab. Try the notebook online right now; also, come chat with us at #sage-devel on irc.freenode.net.

* See also: http://www.knoboo.com/ for ideas, possibilities for collaboration, etc. That code is all GPL'd so we can easily share back and forth, etc.

* Also a student at Case Western has rewritten the security backend.

**Requirements:** This project requires Python and Javascript coding skills, and a solid understanding of AJAX programming.

The Sage notebook is an AJAX application similar to Google Documents that provides functionality for all mathematical software somewhat like Mathematica notebooks. It was written from scratch (in Javascript and Python) by the Sage development team, and has been used daily by thousands of people over the last year. It's one of the main *killer features* of Sage. This project is about improving the notebook. No special mathematical knowledge is required. If you're really interested in this project, write to William Stein ([email protected]) and Tom Boothby ([email protected]).

Develop the new interact functionality

Rewrite the storage backend (for users and data) to use a SQLalchemy-based backend.

- Implement user profiles and per-user customization.
- Make the notebook user-skinable.
General improvements and bug fixes; here are some relevant trac tickets (search for #number):

#2652: notebook should let you evaluate cells without losing cursor position

#2636: notebook -- changing a cell without evaluate should put the red line back ...

#2633: Notebook tweaks

#2631: Distinguishing between (un)evaluated cells

#2629: Bottom of page problems

#2628: Literate notebook

#2606: command line option to kill a background notebook

#2605: Notebook tab-backspace-(shift enter) gives bug

#386 Enhance "attach <file>" in the notebook

#406 notebook -- improve support for other system modes

#408 Notebook glitch in Safari

#413 saving non-evaluated cells

#1466 improve the "click to the left" aspect of the notebook

#1467 make it possible to upload/download worksheets as plain text

#1468 notebook -- create a global option so that word wrap is on or off by default always

#1496 notebook -- make it easy to link different worksheets

#245 a bunch of random notebook improvement ideas

#246 height of a notebook cell

#251 Notebook worksheet multithreading

#260 transparent graphics output

#301 Create some functions for notebook history

#302 Report server errors to online notebook users

#322 Have global code page for Notebook

#336 Create an option to clear all cell output

#338 In doc browser make hyper links to referenced code in SAGE library

#353 public sage notebook robustness

#359 Consider adding dhtml javascript drawing functionality to the SAGE notebook