Home      Download      Learn more      Tech      Help     
 
 

Tiger Envelopes: Development


Tiger Privacy 

Why we write the code ourselves
Implementation
Debugging
Copyright assignment
Conventions
Concurrency

Copyright 2005-2007 Tiger Privacy

Why we write the code ourselves

We believe paranoia is a virtue, and we strive to be very virtuous. We know you wouldn't send us a source code trojan. But there are bad people. And we know we'd probably catch it. But we make mistakes.

An important side benefit is that there no arguments when we use code in Tiger Business Envelopes.

So think of us as your free development team. You can tell us just where Envelopes needs to be improved, and if we agree most people need it, we'll write the code for you. And you'll get the source.

Whenever you test and do code reviews you're a Tiger Tamer. You'll get credit right along with the developers.

Like the Free Software Foundation and Sun, we ask that if you do write code for Envelopes, you assign the copyright to Tiger.


Implementation


Debugging

Use the extensive logs. If you're debugging a complex process without a log, it just takes one line to start one.

When you find a bug, the first  thing to do is to write a JUnit test for it. Then you'll know when it's fixed, and if it ever comes back.

CORBA.BAD_PARAM usually means a null parameter was sent to a CORBA server, i.e. a plugin.

A CORBA error with "Completed: Maybe" usually means the server went into an infinite loop.

Since uncaught exceptions in a CORBA server such as null references don't make it back though to a CORBA client, it's essential to enclose every public method body of a server in try/catch and log any unexpected exceptions. See com.tigerprivacy.crypto.GPGPlugin.


Copyright assignment

We are ready to do all the development for Tiger Envelopes and give it away under the GPL. If you do want to contribute more than 10 lines, we ask that you assign the copyright to Tiger. This is standard practice for both the Free Software Foundation and Sun. It makes copyright registration easier, avoids having to go back to all the authors to get permission when the license changes, and lets Tiger defend the copyright, if necessary. A joint copyright assignment is best, so both you and we have full rights to use, modify, and redistribute the work.

Once GPL, always GPL. Neither Tiger nor anyone else can "take back" code once it's been released under the GPL. That's forever. It will always be free.


Conventions

A comment with multiple exclamation points, "!!!!", indicates code that needs attention

The comment string "//DEBUG" is used in two primary ways


Concurrency

Tiger runs several processes for servers, clients, object broker, etc. No interactive debugger handles multiple processes talking to each other with protocol timeouts. Use the logs instead.

There is only one instance of each CORBA server. One GPGPlugin, one PGPPlugin, etc. When clients ask the ORB for an instance, they always get the only one by that name. You should add the synchronized keyword to public method declarations of your Plugin implementations in Java, unless you're absolutely sure that concurrent access to that method is ok. It's ok to add synchronized to the implementation of an abstract method, at least with Jikes.


Support Individual Rights Privacy policy
Copyright © 2005-2007 Tiger Privacy
SourceForge