Thanks for this.

I'll certainly consider doing this, though I'm still slightly
concerned about the implications for my own code. I guess using the
GPL is probably as good a way as any of deterring potential commercial
competitors from "stealing" my code - though I'm not really expecting
or even wanting to get rich it anyway.

I'll post a suitable version on my web site in a day or two, and
donate that. I hope it proves useful.





On Oct 31, 2:36 pm, "William Stein" <[EMAIL PROTECTED]> wrote:
> 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 
> > athttp://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 Washingtonhttp://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