From: James Britt Date: 2008-09-25T03:40:43+09:00 Subject: Re: Protecting Ruby code Dido Sevilla wrote: > On Tue, Sep 23, 2008 at 2:43 PM, Sasha Bee wrote: >> We are just starting a new project and it is going to be a commercial >> application. So we have a reasonable question now - how can we protect >> our code? I have searched the web but found nothing really useful. Can >> anyone suggest any solutions or ideas about code protection for Ruby? > > Call a good lawyer. Have the lawyer draft a contract that everyone > who buys your application must sign before receiving your code. The > contract should state that they must not reverse engineer your > application or look at the code. Hold them to it, and sue them if you > ever find any evidence of them breaching your contract. > You run the risk of having your customers feel that you consider them criminals-in-the-making (See: MPAA and RIAA for classic examples). > Seriously, there is no real way to prevent people from trying to > reverse engineer your code if they are really determined to do so. > Everything you try to do to prevent this will only make it more > complicated, but anyone determined enough will eventually succeed. All > technological schemes are eventually doomed to failure, your only real > recourse is legal. Or not. You *could* accept that a small number of people will do bad things, but that most folks won't, and especially if there's even a moderate barrier to pirating or reverse engineering. And if and when someone does do something bad, weigh the cost of legal action (both in terms of dollars and in PR) and maybe consider it a cost of doing business. If you make it hard or onerous to buy or use a product, you may inadvertently encourage people to use a pirated version (as seems to be the case with Spore). When looking to prevent pirating or reverse engineering, consider *why* people might even bother to do that (e.g. pricing, annoying product activation scheme, DRM, etc.), and consider that maybe legal action and technology are not always the best solution. -- James Britt www.happycamperstudios.com - Wicked Cool Coding www.jamesbritt.com - Playing with Better Toys www.ruby-doc.org - Ruby Help & Documentation www.rubystuff.com - The Ruby Store for Ruby Stuff