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 -~----------~----~----~----~------~----~------~--~---