Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Best practice SageMath workflow?

I am using SageMath more and more and finding that my current workflow is not scaling up well, but am not sure how to improve it.

Basically I use the notebook interface on multiple computers (home, work etc), and each worksheet rapidly expands as I interactively test, write, develop, experiment etc.

So I frequently end up searching for functions that I remember writing, but I am not sure which computer they are on, or even what worksheet they are defined in.

I have tried to discipline myself to write functions only in a small number of Dropbox files which I can then load with a single command from any particular machine. But this is rather slow and if I "save and reload" every time I change something then I have lost the main advantage of an interpreted language over the "save and compile" workflow of writing in C.

I have searched the forum and found technical questions on aspects of this problem, such as how to work across multiple machines with a single set of worksheets, but I could not really make the answers (symlinking files to Dropbox, changing environment variables and so on) work.

So my question is: what is an effective "best practice workflow" of using SageMath across multiple machines that combines the benefits of the interpreted environment with the development of a re-usable body of code.

If it matters, I'm working with various flavours of Unix (either Linux or MacOS) but I am really more interested in the big picture of how to organise my own high-level work practices than precise technical details.

(Feel free to describe your own set-up and workflow if it works for you, even if you are unsure whether it qualifies as "best practice")