[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Black boxes (reliably protecting EL code)



PureBytes Links

Trading Reference Links

Henri,

I'm posting my reply to the omega list because the topic of black
boxes is an interesting discussion.

>It's just a question of "how bad does someone want to have it
>cracked" No more, no less. If code is sold and not very expensive,
>chances are bigger that people will buy it from the original
>developer instead of letting it be cracked. Maybe this way people
>are more willing to sell open systems instead of black boxes. I
>would never want to trade a black box but might like to buy
>something if it would not be "boxed"...

I'm not a fan of black boxes either, but I find there are two cases
when it's acceptable:

1.  When the black box is documented thoroughly enough to understand
the inputs and outputs, and what it's doing, without necessarily
understanding the underlying algorithm.

and/or

2.  When the black box is platform independent, allowing me to use it
anywhere I want, even in code I write myself in some other language.

I look at it this way:  I don't mind using a black box if it's
well documented, and portability earns extra points.

An example is the C language function libraries, for which one
never needs to see source code.  All one needs is the documentation
explaining the inputs and outputs for each function.  These
libraries are also available for ANY operating system, so there's
no need for the source code.

Non-portable libraries, like API libraries for specific platforms
(Windows, Mac, Java, Interactive Brokers TWS, etc.), have no source
code available either, but programmers happily use them because they
are well-documented without needing to reveal underlying algorithms.

Mark Jurik's JMA is one example of a useful black box.  He explains
in great detail the inputs and output behavior, but he doesn't
reveal the algorithm other than in conceptual terms, saying it's an
adaptive low-lag low-pass filter of some sort.  He also understands
the need for cross-platform support in case a customer changes
software, so he provides the black box for multiple platforms
(TradeStation, WealthLab, AmiBroker, etc.).  I'll bet if I asked him
for a Linux linkable object file to use with the GCC compiler, he'd
probably make it available.  JMA is what every black box should be:
a useful, portable, well-documented tool whose blackness doesn't get
in your way.

Heck, even TradeStation itself is a black box.  You use it but you
don't have the source code.  What you DO have is documentation,
which makes it useful to you.

In my case, if I were to distribute a black box, it would come with
complete and thorough documentation, so the user would understand
what to do with it, and possibly understand conceptually how it
works without revealing the actual algorithms or code.  This kind of
black box is acceptable to me.

Oh, and also, it would be for sale for a one-time cost, NOT for
rent.  I detest software that I can't own, which I must lease for
a recurring fee -- like TS7 or like that Camarilla Calculator at
surefirething.com.

-- 
  ,|___    Alex Matulich -- alex@xxxxxxxxxxxxxx
 // +__>   Director of Research and Development
 //  \ 
 // __)    Unicorn Research Corporation -- http://unicorn.us.com