This question might have been discussed in bits and pieces already, but I couldn't find a coherent conversation about what are the best practices and strategies for deploying a moderately complex Mathematica code that

  1. uses other user-defined functions (sometimes from other notebooks)
  2. uses packages (located locally)
  3. contains dynamic-based user interface (nothing fancy -- few sliders, output windows, buttons -- really a small input-output panel, but with lots of calculations behind the scene)

Under deploying I understand here that it can be run on a completely (or almost) fresh machine (read internet cafe), preferably also without a need to install a third party software? Or anything as close to this as possible.

I don't really care if the code is visible/protected or not, but I want the dynamic interface to be the main part a user sees when they open it.

CDF player is not a good option, simply because it is not supported on Chrome, so it is not really a useful method.

I understand it is general enough, and I can make up some minimal code, but I am not sure it would be useful before we understand the general idea how to pre-process such working environment and package it for the deployment.

I suspect there is no easy answer, so it would be great to learn what is the general approach to this.

  • $\begingroup$ Do you want to discuss each deployment type or compare pros and cons of each? Because for the former it is a chapter long answer for every type if methods need to be outlined. $\endgroup$ – Kuba May 24 '17 at 6:26
  • $\begingroup$ @Kuba i'd say not every type, i just want to see what is a general guideline for a moderate complexity code to be reliably published. I suspect it has to be Wolfram Cloud, but I might not know something obviously more useful. Generally, I want to learn what people use and find useful. $\endgroup$ – Stitch May 24 '17 at 11:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.