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.

Sign in (or create an account)







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™!


Create an account (or sign in)


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

Account

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

Google

Dropbox
Account type

Storage
MB

Session limit
simultaneous sessions

Maximum session time
minutes

RAM limit
GB

Support level

SageMathCloud™

Support

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.

Documentation



Create an account (video)

Navigate to https://cloud.sagemath.com. If you're already signed in, first sign out by clicking on your email address by the icon in the upper right, and clicking "Sign out". Click on "create an account", then enter the first name, last name, email address, and password for the new account you would like to create, and read and agree to the terms of usage. You may change your email address, password, etc. at any time later, and also reset your password in case you forget it.

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.


Change your name, email address, or password (video)

Log into https://cloud.sagemath.com, then click in the upper right corner on your email address by the icon. Change your first or last name in the settings tab that appears, then click save.

To change your password, click the "Change password" link, enter your old password, then enter a new password.

To change the email account that is linked to your SageMathCloud account, click on the "change" link next to your email address, type in the password (to your SageMathCloud account), then enter a new email address.

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.
templates

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.

Projects


restoring... stored

Create New in home directory of project

Create a new file or directory


Upload files from your computer

Project Control

DANGER (hover with mouse)

   Title and Description (click to edit)

         

   Status

Project id
loading…
Location
Project Server

   Collaborators



Can view and modify this project
Loading collaborators...

   Quota

  • Home directory: used of
  • /scratch: used of
  • Can use up to CPU cores
  • Can use up to RAM
  • Stops after hours of inactivity
  • Gets relative CPU share (1 is fair sharing with other projects).
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
():
   
Files... Refresh Refresh
The title
Loading...
Refresh
The title

Errors

Typesetting Issues

Other Warnings

Latex Bibtex Sage

Settings


DANGER: Users on this VM could connect unless you stop your ipython-notebook server (they would have to know secret internal project-id). Save Reload

Connecting to IPython Notebook Server...

Explore Sage Projects