3 ms·
At the extreme end if a user runs something on their computer they can extract the algorithms. The only real way to prevent people from reverse engineering is r
by setra 10y ago
At the extreme end if a user runs something on their computer they can extract the algorithms. The only real way to prevent people from reverse engineering is running all meaningful code on your own hardware.
Python is particularly easy to reverse engineer because you usually ship the source code which is then interpreted. They can read what you wrote literally. If you did a compiled variant this is not as bad.
Java can be reverse engineered as the code is just in time compiled. For example minecraft modding communities would routinely extract the source code repack it with new features.
There are always things you can do to make it harder (using a very optimized binary out of GCC with symbols stripped). But the general rule is, if you don't want them to have it, don't give it to them. Run it personally and give them a remote interface.
- clove 10y agoInteresting. How difficult would a remote interface be for someone like me create?
- setra 10y agoIf you have a super secret algorithm that you want to keep safe an okay programmer could make some server code to run it pretty easily (the protocol part, cant comment on your algorithm). Then you would write a GUI interface program in whatever language you want for the desktop that calls out to the server over TCP or something for the processing.
- clove 10y agoI am trying to hide the results of a professor (whom with I am working) that allows future stock price to be predicted from the input. That's only a concern before the research is published. Perhaps I am overthinking protecting my code? Am I?
- setra 10y agoWe are getting to a large number of posts for a HN thread. An actual conversation system would be easier if you have more questions. Email me at "anthracitelight@gmail.com" if you want to enter a chatroom.
- clove 10y agoAnother issue: If the software is to be sold as a yearly subscription, is it easier to run this remotely or can I actually sell an .exe that expires after a year?
- solidsnack9000 10y agoIt is definitely easier to control subscriptions by selling SaaS. A binary that expires in a year can be circumvented in various ways (how does it know what year it is now?) if it is valuable enough.
- setra 10y agoAs far as java vs R. Java is very common, and has a large number of libraries for building things like servers, and interfaces. It is probably faster computation wise as well. However if computation speed is not a major concern, and you are doing mostly statistic works, then switching to something you are not familiar with is probably not a good idea. Use the right tool depending on what you want. There is a reason so many statistics people use R / python, and not c.
- clove 10y agoIf R doesn't have the tools to offer a UI, how can I stick to R? Aren't I forced into a new language?
- setra 10y agoI honestly don't know much about the R library system. You could probably make a GUI in python pretty easily. Then write a basic server program that runs your R code when you get a processing request. The python app would then call the server which would run your R script. Depends on the domain of your project though really.