CoCalc Blog

Where does CoCalc come from?

William Stein and Hal Snyder • • cocalc

Meet the team and company that provides CoCalc.

CoCalc Origins

Prior to CoCalc, William Stein spent 15 years teaching and doing research using mathematical software at Berkeley, Harvard, UCSD, and Univ of Washington. Based on this experience, he launched the CoCalc web application in April 2013, under the name SageMathCloud, with the mission to make it very easy to collaboratively use free open source mathematics and data science software in classes and research.

After over 5 years of extremely active development, CoCalc is now a modern web application that provides collaborative access to most free open source technical software, including LaTeX, Jupyter Notebooks, the Python numerical ecosystem, the R statistics software, and SageMath. Thus CoCalc brings together the work of thousands of contributors to open source software under one roof, which is easily accessible from your web browser.

Dash with CoCalc

Hal Snyder • • cocalc and python

Create interactive data visualizations for collaborators in your CoCalc projects using Dash.

Dash is an open-source framework to create web applications with Python. With CoCalc’s HTTPWebserver capability, you can run a Dash application from inside a CoCalc project.


Dash application running in a CoCalc project

Use CoCalc to Learn How to Program

Hal Snyder • • cocalc, python, and r

If you are new to coding, CoCalc makes it easy to get started. All you need is a web browser and an Internet connection. You don’t have to install software on your computer to start learning Python, R, Julia, and other leading open-source languages.


learning R by example

Embedding CoCalc in Your Application

Harald Schilly and Hal Snyder • • cocalc

Add scientific computing to any online training platform by embedding CoCalc.

Embedding CoCalc into an online learning platform or learning management system (LMS) adds:

Examples Assistant

Harald Schilly • • cocalc

CoCalc wants you to fully accomplish your computational work online. To archive this goal, CoCals has to provide a reliable service, offer and maintain the software you need, and package this in a powerful interface.

The new “Assistant” is one of the latest additions to the interface. Its goal is to help you by offering a curated set of annotated code snippets.

Is KaTeX ready for Prime Time? You be the judge.

Hal Snyder • • latex

CoCalc now offers an option to render LaTeX using KaTeX rather than MathJax. At the moment, KaTeX is an experimental feature which is turned off by default. To enable it, open Account / Preferences, and under Other Settings, check the box next to “KaTeX: render using KaTeX when possible, instead of MathJax”.


enabling KaTeX in Account Preferences

KaTeX is often over 100 times faster than MathJax, but it doesn’t handle all expressions covered by MathJax (or LaTeX). In these cases, CoCalc with KaTeX enabled will still fall back to MathJax. The selection happens for individual expressions, so one expression in a markdown file or a notebook cell might be rendered with KaTeX, while another would be rendered with MathJax.

Juno and CoCalc: Bringing Jupyter Notebooks to the iPad

Alex Staravoitau • • jupyter

About the author: Alex Staravoitau is a software engineer and machine learning enthusiast, the creator and main contributor of Juno, which is a Jupyter Notebook client for iOS.

Juno

At Juno, we all have been huge fans of Jupyter for awhile, and most importantly of the flexibility it offers: we strongly believe that the fact that you only need a screen and network connection to get access to pretty much unlimited computational resources has enormous potential. Naturally, we thought that Jupyter could use a proper client iOS application with a native interface, that would let you connect to a remote backend and work with Jupyter on your iPad. Now, after months of making and beta testing our app, Juno has made it to the AppStore!


screen capture of Juno running on iPad

Introducing the CoCalc Library

Hal Snyder • • cocalc

Get a Running Start on the Learning Curve

The CoCalc Library is a great way to get up to speed with new material.

Getting started with a new programming language or software package can be a slow process. It takes time to find your way around new terminology, development workflow, and error messages. Reading documentation and tutorials is helpful, but for most of us, the process of learning speeds up dramatically when we start writing code and actively experimenting.

The CoCalc Library makes it easier to get started with a new toolset or a new topic. It gives you access to a curated collection of open source documents and code from educators and software developers. With a single click, copy a selected topic into a CoCalc project. Then you can review, modify, and run files as desired.

Using the Library

Here’s an example. Suppose you want to start working with linear algebra in Sage.

1. Open the Files view in the directory where you want example documents to be placed. In the screenshot, that directory is ‘EXAMPLES’.

2. Click (+)New, and scroll to the middle of the browser tab to see the section with a label of “Library” on the left.

Minerva's use of CoCalc Collaborative Jupyter Notebooks in their Active Learning Forum

Hal Snyder • • jupyter and api

Minerva Schools at KGI is an innovative university that makes extensive use of web technology to reinvent the classroom experience. CoCalc is collaborative web-based software that makes it possible to very easily use the full suite of modern open source technical software, including Jupyter notebooks, LaTeX, Sage, and R. We launched CoCalc in 2013, originally under the name SageMathCloud.

Minerva approached us last year because they needed to embed collaborative Jupyter Notebooks in their platform to support teaching computer science and other data intensive courses. Throughout much of 2017, we supported Minerva’s integration of CoCalc with their Active Learning Forum, and today they are one of our biggest customers.

The focus of CoCalc

Harald Schilly • • cocalc

Last year we widened our focus and renamed the project from “SageMathCloud” to “CoCalc”. You can work with SageMath, Python, R and several other languages. The focus is:

Collaborative Calculation in the Cloud

This means we designed our service with collaboration in mind. Changes to an interactive document are synchronized with all collaborators of the project. They are invited by you and can be your colleagues, friends or in some cases, your students.

Python, SageMath, Octave, Julia or R?

CoCalc speaks many of the best open-source languages and brings along a large set of associated libraries. This means you no longer have to setup your own software environment and continue to worry about updating and maintaining it.

Have a look at the list of currently installed libraries for Python, R Statistical Software, Julia, and a selected list of available executables.

Native Jupyter Notebooks

CoCalc offers its own unique integration of Jupyter Notebooks. You can start by uploading your files or creating a new file with ease. There are many kernels available and a large collections of libraries are regularly updated. All cells and the state of the kernel are synchronized in real-time with your collaborators. Share ideas in a side-by-side chat and review changes via time-travel history. Once you’re done, you can download your worksheet as a standard *.ipynb file or publish the notebook online via CoCalc’s own share server.

LaTeX Editor, Sage Worksheets, chat, teaching courses, and much more

All previously available applications are still fully supported. In fact, we spent endless hours in debugging a lot of issues, improving the overall performance, and invested heavily in the overall system stability. We switched to a fully containerized system using Docker and Kubernetes helps us to take care of operational details.

Below is an assorted collection of screenshots to show you an overview. You can edit LaTeX documents in a side-by-side editor, do mathematics in Sage Worksheets, access a wide range of software in the underlying Linux terminal, and even teach a course using our advanced course management feature.

Publishing documents

And finally, after you have finished your work and you want to share it with the world, CoCalc offers you the ability to publish selected documents online.