## SageMathCloud™

• Use Sage, R, Octave, Python, Cython, GAP, Macaulay2, Singular, and much more
• Edit $\LaTeX$ documents with inverse and forward search and Sage mode
• Collaboratively edit IPython notebooks, Sage worksheets, and all other document types
• Write, compile, and run code in most programming languages
• Use command line terminals

SageMathCloud is a free service with support from University of Washington, the National Science Foundation and Google. Additional for-pay features will be available soon.

In case of problems, immediately email me (William Stein) at wstein@uw.edu. I want to know if anything isn't working!

## Welcome to SageMathCloud™!

First name:
Last name:
Email:
There was an error loading your account settings from the database (try again). The information below may be out of date.

First name
Last name

Email

### Editor

Default compute system
Autosave seconds
Font size (px)
Indent spaces
Font family
Theme (previews)
Bindings

### Keyboard

Worksheet evaluate key

### Other

Github

Dropbox
Account type

Storage
MB

Session limit
simultaneous sessions

Maximum session time
minutes

RAM limit
GB

Support level

## SageMathCloud™

### Status

• There are clients connected right now who are actively modifying projects. They modified projects in the last day, projects in the last week, and projects in the last month.
• There are accounts and projects.
• Usage statistics
• We own all the hardware and host it in various data centers at University of Washington. The project director (William Stein) is a tenured full professor, founder of the Sage mathematics software project, and has been making mathematical software available via the web for over a decade. If you have any questions, don't hesitate to email him at wstein@uw.edu.
• The main developers of SageMathCloud are William Stein (software dev), Harald Schilly (marketing and QA testing), and Keith Clawson (hardware and systems). Some of this work is supported by the National Science Foundation under various grants. Read the Terms of Usage. You can donate to support the project.

### Create an account (video)

#### Technical Notes

• If you want to associate multiple accounts to the same email address, e.g., to sagemath@gmail.com, instead use sagemath+1@gmail.com, sagemath+2@gmail.com, etc. These accounts will be treated differently, but all email notifications, password resets, etc., will go to sagemath@gmail.com. There's no reason you should need to do this.
• You may create as many accounts as you want for free, but there is no reason you should need to.
• The only requirement on your password is that it not be "Very weak" according to the password strength checker. However, please use a strong password, especially when you start using the SageMathCloud frequently.
• Only the hash of your password is stored by the server, which uses 1000 iterations of the sha-512 hash function, with a salt length of 32. This makes it much more difficult for a hacker to bruteforce your password, even if they have the database of password hashes, since every guess takes much more work to make.

#### Technical Notes

• Changing your first or last name at any time is pretty harmless, since it only changes the name other people see when collaborating with you on projects.
• The primary purpose of providing an email address to is that you can use it to reset your password when you forget it.

### Get a bunch of examples

To easily copy our collection of examples into a project, just click "+New", paste in this link
https://github.com/sagemath/cloud-examples.git
and click "From Web". In a few seconds you'll find a directory
sage-cloud-templates
in your project, full of examples.

#### Technical Notes

• The collection of examples is a Github repository, which we regularly update. In a terminal in the sage-cloud-templates directory, you can type
git pull
to get the latest changes and examples (you may have to type "git commit -a" first, if you have made changes). You can also see what's new in the Github repository.

### Using $\LaTeX$ (video1, video2)

$LaTeX$ is a system for creating professional quality documents, with excellent support for typesetting mathematical formulas like $J_\alpha(x) = \sum\limits_{m=0}^\infty \frac{(-1)^m}{m! \, \Gamma(m + \alpha + 1)}{\left({\frac{x}{2}}\right)}^{2 m + \alpha}$. There are two main ways to use latex in the SageMathCloud:

1. In chats or in worksheet cells that start with %html or %md, enclose mathematical formulas in single or double dollar signs and they will be typeset (using MathJax) when you submit them. In addition to dollar signs, you can use the other standard latex equation wrappers \­[ \] and \­( \). In worksheets, if f is some object, you can type show(f) to see f nicely typeset using the latex generated by latex(f). In a worksheet, type typeset_mode(True) to show the nicely typeset version of objects by default. You may also use MathJax in Markdown cells in IPython notebooks.

2. You can edit a full LaTeX document by creating or uploading a file with an extension of .tex, then opening it. The tex file appears on the left, and there is a preview of the compiled version on the right, which is updated whenever you save the file (ctrl+s). By clicking , you can split the tex editor so that you can see two parts of the file at once. You can also use inverse and forward search to easily move back and forth between the tex file and the preview. In addition the preview, there is an error and warning log with buttons to jump to the corresponding issue in the tex file or preview. There's also a button to show or download the final high-quality PDF. In addition, you can see the output of running pdflatex, bibtex, and use SageTex (which should "just work"), make any of those programs re-run, and customize the latex build command. If necessary, you can do extremely sophisticated processing of tex files in a Terminal ( New --> Terminal).

### Use R in Worksheets (video)

In a project, click New then the "Sage" button. In the worksheet that appears, type
%default_mode r
then press shift+enter. For the reset of the worksheet, type normal R commands, followed by shift+enter. Plotting should just work as usual in R. See these example worksheets.

### Use IPython Notebooks (video)

In a project, click New then the "IPython" button, or just open an ipynb file. The notebook will be opened using IPython's html-based client, with support for embedded graphics. To support the collaborative nature of the SageMathCloud, we've enhanced the IPython notebook with realtime sync, so if you open the same notebook on multiple computers (or if multiple people open the same notebook), they will stay in sync. Also, if you want to use the Sage preparser, type %load_ext sage.misc.sage_extension into a notebook cell.

#### Technical Notes

• You can also run a normal version of the IPython notebook server (no sync, not integrated into cloud) using the ipython-notebook command in a terminal. You'll get a url that looks like https://cloud.sagemath.com/1234601d-9fbc-4e4e-b7ab-c10a79e34d3b/port/11769/; any collaborator on your project can securly use the IPython notebook server by visiting this link, but nobody else can (not even other users on localhost on the same virtual machine!).

### Run a web service from a project

1. Start the web service listening on the IP address associated to the tun0 interface on some port above 1024. Your service can listen on all interfaces if you're not worried about security (other users on the same project server could access your service by connecting to localhost). To see the tun0 ip address, type ifconfig tun0.
2. Your web service will be proxied to:
https://cloud.sagemath.com/project_id/port/<port number>/
You have to configure your web service so that the base url is /project_id/port/<port number>/ or you may find that things don't work. This may be either easy or impossibly hard. Websockets should be proxied fine. Note -- the project_id can be read from ~/.sagemathcloud/info.json.

Only project collaborators will be able to access your web service, so you do not have to worry about authentication or running web services that provide local shell access (e.g., a sage cell server). All access to the web service is encrypted. (If you are lazy and allow your service to listen on localhost, then you should require authentication.)

This feature is not designed for making a web service that is accessible to the general public, since it is limited to project collaborators. It's designed for use by a small group of trusted users.

pt

### Projects

restoring... stored
Showing only files that contain ''.

# Project Control

DANGER (hover with mouse)

#### Status

##### Project id
loading…

#### Collaborators

Can view and modify this project

#### Quota

Email wstein@uw.edu if you need me to raise a quota (which is currently free). Include the project id in your email.

#### Restart...

Restart this Sage Worksheet server. Existing worksheet sessions are unaffected; do this if you customize \$HOME/bin/sage, so that restarted worksheets will use the new version of Sage.

Restart this project server. This will kill everything running in this project, update code, and restart things.

Still not working after restarting the project server?! Immediately email me (William Stein) at wstein@uw.edu. I want to know if anything isn't working! Include the project id in your email.

#### Danger!

Make it so anyone can see the contents of this project. You choose who can modify it.

Make it so you choose who can see and modify contents of this project

Delete this project.
Undelete this project.

/
()
()
Opened this project. Opened
():

The title
The title