Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Developing Perl against proprietary interfaces

by sxmwb (Pilgrim)
on Apr 22, 2008 at 16:14 UTC ( [id://682207]=perlquestion: print w/replies, xml ) Need Help??

sxmwb has asked for the wisdom of the Perl Monks concerning the following question:

I am wanting to start a project using Perl (first choice though I might have to consider Java) that would work with a radio scanner that has a proprietary memory format and would have to sign an NDA to get access. Further I would like to release my code as Open Source yet keep the memory format protected as required by the NDA and company. There are already several MS Windows solutions for this product but none for Linux or Mac.

Not sure if this is the best approach as I am just starting out and would like to give something back to the community. I have done several searches against perlmonks.org and other sites but have not come up with a definitive answer.

Any thoughts?

Thanks Mike

Replies are listed 'Best First'.
Re: Developing Perl against proprietary interfaces
by samtregar (Abbot) on Apr 22, 2008 at 16:51 UTC
    It seems like the way most people deal with this is to ship a compiled binary that interfaces with the secret code and a larger open-source library that talks to the binary blob. In your case the binary blob would probably be compiled C code that you interface with via XS or Inline::C. The goal should be to keep the C code as light as you can without exposing the secrets of the memory format.

    The alternative is to not sign the NDA and build the interface by reverse-engineering. You could load up the existing Windows implementations and watch what they do with a debugger. Then you can release your code under whatever license you want. (After you talk to a lawyer, of course.)

    -sam

      Instead of linking your C with Perl using raw XS, you might consider http://www.swig.org/. It builds the XS for you and, if you so choose, you can convert directly to Java. I've used SWIG before and it's really easy.
      --
      Wade
        You might, but I wouldn't. I've also used SWIG and I found it to be mostly a waste of time. It offers something I don't need (bindings for multiple languages) in exchange for greatly increased complexity. That complexity hides the actual details of the XS interface that you'll need to effectively debug your code. And you will need to debug your code!

        -sam

Re: Developing Perl against proprietary interfaces
by sundialsvc4 (Abbot) on Apr 24, 2008 at 14:38 UTC

    It might be possible for you to create a library as an object-code-only Perl extension, passing your requests for the actual memory-format through that cloak. I would carefully consult the NDA for more information, and discuss it with my attorney. (You do have an attorney, right? And you never quite beat him at golf, right?)

    Another possibility is to discuss your intentions with the company which owns the information. If the idea that you have might be profitable business (or good-will) for them, argue that point.

      I have not seen how to create a library as object-code-only Perl extension. I will take a look, if you have some direction that would be helpful.

      I have actually figured out 80% of the file format on my own. Not sure how that might impact me. If I move forward on the NDA I will make sure I have a lawyer look at it. I am not sure they are looking at what I plan as a profitable business venture I just want to provide access to tools for this radio scanner on OSs other then Windows. Also, it looks like fun and a challenge.

      Mike

Re: Developing Perl against proprietary interfaces
by Anonymous Monk on Apr 23, 2008 at 03:43 UTC
    Proprietary codecs suck, and if they're asking for NDA, it must mean they don't have a patent, so they must be relying on DMCA, which may or may not affect you. Besides, once they release software, they've released the format.
      Um, what? Plenty of companies combine NDAs with patents - Nvidia and ATI come to mind immediately. It's the legal version of defense-in-depth. The DMCA probably only comes into play if you have to circumvent copy-protection to do your reverse-engineering.

      -sam

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://682207]
Approved by pc88mxer
Front-paged by Old_Gray_Bear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (3)
As of 2024-03-19 04:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found