On Fri, Oct 31, 2008 at 5:40 AM, alunw <[EMAIL PROTECTED]> wrote:
>
> For the past few years I have been developing a package called MAF
> which is a reimplementation in C++ of KBMAG. It extends KBMAG in
> several ways, and is usually, though not always, a lot faster than it.
> For example it can calculate the automatic structure of F(2,9) in
> 10-15 minutes (depending on CPU speed)  and the geodesic automatic
> structure in about 90 minutes. It can find automatic structures or
> confluent rewriting systems for many challenging presentations.  Its
> functionality can also be used via a library.  For example I use it in
> a screen saver type program to find automata for randomly chosen
> hyperbolic and kleinan groups of various kinds and then use the
> automata to draw pretty pictures. In some cases the groups have
> automata which it would be difficult to create with KBMAG.
>
> You can find out more about MAF on my web site at 
> http://www.alunw.freeuk.com/MAF/maf.html
> . The FSA code might well be useful for applications other than group
> theory.
>
> I have developed the package on a Windows based machine, but it should
> be fairly easy to port to other platforms. (On Windows most of the
> code is in a DLL, and I would like to use a shared object on Linux/
> Unix, but am not quite sure of the details - in the past I have
> created .so files using C, but not C++ and am anticipating there will
> be tricky issues with "name mangling". On Windows I also replaced most
> of the CRT. On Unix/Linux the package could use the standard CRT but
> this would probably result in a considerable increase in memory usage
> as I provided a heap which is a lot better than the one that usually
> comes with CRTs - for allocations up to about 1600 bytes it uses a
> scheme which has an overhead of just over 1 bit per allocation instead
> of the typical 8 bytes, and as my program might easily need to make in
> excess of a 100 million memory allocations this overhead is very
> significant)
>
> I'd be happy to make the code available to Sage (about which I know
> pratically nothing - I am following a suggestion in positing here). I
> don't know much about open source licensing. The only conditions I
> want to impose are:
> 1) Anybody should be free to reuse my source code in non-commercial
> software, change it in anyway they like and should not have to make
> their program open source in order to do so.
> 2) Anybody should be free to reuse my code in commercial software,
> except for software which is principally concerned with the creation
> of fractals, tessellations, and related mathematical imagery. For
> commercial software of that nature I'd want to receive some payment,
> as I have probably spent several man years developing this library and
> that is how I intend to use it. For other types of software an
> acknowledgement and a link to my web site would be enough.

As other have mentioned, you can't make those conditions and
still have your software be used by any open source projects.
Instead, you should chose either the BSD or GPL licenses (which
are by far the most popular and compatible).

Of the two, the GPLv2+ license is closest to your wishes above,
and I encourage you to license your code under it.   Why?  It
is the most restrictive, and since your intention above is basically
less restrictive, if you license your code under GPLv2+, then
we can use it, but if other projects want to use your code under
a less restrictive license, then you can still make a version
available under such a license at that time.  Just state clearly
in the README that less restrictive licenses are available.
This is a standard model used by several software libraries -- they
have a free GPL version, and a non-free version that can be
used as a component in commercial software (e.g., I believe
Trolltech does this with Qt).

You can read the GPLv2 license here:

          http://opensource.org/licenses/gpl-2.0.php

To release your code under that license, you just follow the
simple directions at the above web page under
"How to Apply These Terms to Your New Programs".
and post your code somewhere online.

> I'd also be happy to donate my code to Sage as-is on a one off basis,
> provided my rights to my own work are not affected in any way - I am
> still developing the code with the aim of making it both smaller and
> faster so that it can tackle more and more challenging presentations.

Yes, please do this.  The best way from our point of view for you to
do this, would be to take the current stable version of your code,
and license that version under the GPLv2+ (as mentioned above),
then publicly post it so that we can evaluate how to use it in Sage.
Our hope, of course, is that a community will grow around the software
project, so that I personally don't have to try to maintain it.  It is highly
unlikely such a community will grow unless you chose to use the
GPL or BSD licenses. See, e.g.,
   http://www.dwheeler.com/essays/gpl-compatible.html

Cheers,
  William


-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to