Collaborating online, in real-time, with math-support and computations
TL;DR: Using atom + teletype + markdown as real-time math collaboration environment.
One of the biggest challenges to overcome in (research) collaborations is often that people are not in the same place and do not have a common “space” available where one can exchange and discuss, including being able to write math equations, in real-time: a shared digital whiteboard. Recently, I finally found a solution that works well (for my needs) and I thought it might be helpful for others as well. I have been through numerous iterations, including onenote, overleaf, rudel, google docs, gobby-based chats and many other tools and constructs but all of them fell short in at least one of the following dimensions:
- Real-time collaboration
- Support for LaTeX-like math equations
- Minimal setup time and cost
- Compatible with other tools (e.g., integration with git)
- Easily parseable for computations (e.g., for verification purposes)
Disclaimer. Since nobody has time to read and even less time to write: The following is really only a quick summary of what is needed in terms of software and packages. Go out and explore - it is super easy to use… and feel free to ask questions!!
What do you get?
What you will get is a text editor with Markdown support. Markdown in a nutshell:
“Markdown is a lightweight markup language with plain text formatting syntax. It is designed so that it can be converted to HTML and many other formats using a tool by the same name” [wikipedia]
See [here] and [here] for a markdown cheatsheet and [here] for some common questions.
Real-time preview. Think of instantaneous typesetting (see animation below) for all participants of the session.
Math support. Simply type LaTeX code and have it typeset in real-time. Supported LaTeX commands etc are limited but good enough for most applications; see [here] and [here] for details.
Real-time collaboration. Share a file in real-time and work on it together, similar to google docs but with the interactivity of a jupyter notebook and the readability of a document with typeset formulae.
Interactive code. Execute python, julia, R, etc. in place via hydrogen (see below). Highlight code. shift-enter. And it runs. Right in your editor.
Apart from that. Atom is also great for coding, LaTeX typesetting and much more… but that’s for some other time.
What do you need? aka Installation
- Atom text editor from [atom.io]
- Within atom install the following packages with its package manager:
- You will need a github account to use teletype. Teletype uses github for data exchange between participants.
- You might want to activate “Enable Math Rendering By Default” in the settings of the markdown-preview-plus package settings
- You can activate the markdown preview with ctrl-shift-M
- You can activate the (atom) command window with cmd/windows-shift-p, which is helpful to access hydrogen commands.
- You might want to set the Math Renderer for pdf export to HTML-CSS to prevent sporadic issues rendering white text on white background.
Adding hydrogen to the mix.
What is hydrogen:
Hydrogen was inspired by Bret Victor’s ideas about the power of instantaneous feedback and the design of Light Table. Running code inline and in real time is a more natural way to develop. By bringing the interactive style of Light Table to the rock-solid usability of Atom, Hydrogen makes it easy to write code the way you want to.
In short: run your code out of atom like jupyter (including plotting etc) and collaborate like a boss. Wanna verify computations of a limit or integral? Write it in sympy and run it right there.
[Image from the hydrogen site for illustration only]
…and works especially well together with the setup from above. [Further read]