On Jul 16, 2007, at 12:43 AM, M. Edward (Ed) Borasky wrote:

> Michael Reiland wrote:
>> I'm contemplating writing an application in Ruby but in order to  
>> do so I
>> have some requirements that I hope everyone can help me out with.
>>
>> This is for a primarily windows application, however I'd like to keep
>> the door open for Mac/Linux.
>>
>>
>> 1. GUI - Native Look and Feel.  According to wxRuby the bindings  
>> aren't
>> mature enough for production use.  Does anyone have any experience  
>> with
>> this and/or can you offer alternatives that provide a native look and
>> feel (I
>
> Forget native look and feel -- go for *quality* look and feel. I'd
> recommend Qt4-qtruby for that. It just looks better than any other
> toolkit, and it's extraordinarily well documented.
>
>>
>> 2. Databases - contemplating using ActiveRecord, but I would like  
>> to use
>> ODBC to support multiple types of DB's in a uniform way (if you  
>> know of
>> alternatives to ODBC or ActiveRecord, please let me know).
> unixODBC is a pain in the ass to work with ... there are very few
> free-as-in-freedom drivers. I'd go with ActiveRecord, since it  
> binds to
> Oracle, MS SQL, MySQL, PostgreSQL and SQLite. It's probably not all  
> that
> difficult to extend it to other databases.
>>
>> 3. Binary - Are there any utilities for compiling Ruby into a binary
>> executable?  The issue is twofold, speed, and not handing the  
>> customer
>> the source :)
> The closest thing is the Zen Obfuscator, I think.
>
>>
>>
>> I have no experience with developing/deploying Ruby in a
>> "shrinkwrapped-esque" environment and would appreciate input from  
>> those
>> with more experience.
>
> Do you have experience developing *anything* in a shrinkwrapped-esque
> environment? Especially Perl, because I think you'll find the
> ActiveState Perl tools are quite good for this, and Perl will do
> everything Ruby can do -- except be Ruby, of course. :) I won't  
> stand in
> your way if you want to do this in Ruby.
>>
>
>
why go to all the trouble of trying to obfuscate anything?
Just sign a licensing agreement.
If your customer violates it, your customer is in deep doodoo in court.
Lawyers will scare almost anybody out of doing stuff.

If you're worried about it too much, you could always be annoying and  
put a very obfuscated phone home function in  buried as an extension  
of one of the higher classes. And give them a version that is  
stripped of documentation.

In the end though, if you're using a scripting language, it is utter  
foolishness to try to hide the code. Even compiled languages can be  
decompiled well enough and often enough.