I want to give a script to another party, but also want to prevemt its copy and distribution. Are there any means to achieve that?
MATLAB: Anti-piracy means
anti-piracyMATLABp-code
Related Solutions
Contact nobody.
Seriously, just because you have a neat new algorithm, the odds of The MathWorks wanting to add it to the language or to a specific toolbox is VERY small. That requires a broad utility, for code that almost always, they want to write themselves. Remember, code that is a part of MATLAB needs to be maintained by The MathWorks. Will you be around 10 or 20 years from now when there are problems to be resolved?
As I said, it requires broad utility, because when they provide code, it will become part of MATLAB FOREVER. This means your algorithm must be useful to many people, to justify them distributing it, writing it, maintaining it, debugging it, testing it.
Does TMW want to pay you for your algorithm, on your recommendation alone? Based only on a paper that you wrote? Sorry, but almost surely, no.
TMW employees do very much read the literature. They keep up to date. I know these things to be fact. If they see something described that THEY decide is of value to a broad spectrum of users, and it is something they can write and maintain, something that is a robust idea, they have people who will write that code, and do so professionally. But they only have a limited set of resources. So they need to carefully choose what they will provide. Again, once part of MATLAB, it is part of MATLAB FOREVER, maintained FOREVER. Ok, almost forever.
(I have code written in MATLAB almost 30 years ago. It still works, and at TMW, they are proud to hear that. That means that they chose carefully and cogently what to write, what to provide, looking to the future, as well as to the past.)
So where does this leave you?
1. You can contact The MathWorks, with a feature request. Again, this will rarely result in your code becoming part of MATLAB, or a toolbox, because while you may think it to be neat and useful, they have very different standards.
2. Far better is to write the code yourself. Then post it on the MATLAB Central File Exchange (or Github, which the FEX can access.) Note that you cannot post p-coded files. So if you decide you want to keep some details of your algorithm secret, don't bother. And these sites are for FREE use. You cannot ask for payment for use, a licensing fee, etc.
3. You can write the code yourself, as a set of tools for use. Then charge others for your code. Now you will need to deal with distributing the code, enforcing your conditions, preventing others from copying your code, because the internet lets people do anything they want. So you will need to encrypt your code, perhaps in the form of p-code, perhaps as compiled code. But even then, a determined hacker can do a lot to your code.
But contacting The MathWorks with an offer of your great idea, and asking them to pay you for inclusion into MATLAB? While they will probably politely decline your offer if you hear anything at all, I'd bet that at least someone will quietly smile at the temerity of your request.
Sorry, but that is how it must work. All of this said by someone with dozens of highly useful tools, posted on the file exchange. Personally, I think much of the work I have done would be worth including in MATLAB, but I am a bit biased. So I accept the MATLAB Central File Exchange as a great place to post work, where anyone can make use of it.
For Named User or Designated Computer licenses then VM are not counted as separate machines . For those licenses , using a VM has the same status as starting up another copy of matlab on the same machine .
That said , to run a VM you need a MAC address associated with its virtual internet interface . Matlab is going to compare that mac address to the license file and reject if there is no match. Typically you need to use a different mac address than the host is using so that the vm can distinguish whether the packets are for the host or the VM . I know that Parallels has an option to share mac address but I seem to recall that it works by using a different mac internally and translating in the virtual interface for packets going off host. I have not experimented to see how it interacts with matlab licenses .
What I do for simplicity is assign the same mac address to all my Windows vm and a different mac for my linux vm both different than my host mac. The license I am using permits up to 4 activations so that permits me to use osx plus Windows vm plus linux vm simultaneously .
If you were dual booting then that would not be a license problem as you do not license per os, only per activated machine no matter which os.
If you have a Student license or Home license then you are restricted to one activation and at that point the Mac address used inside the vm becomes the challenge .
Best Answer