help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Identify auto tick locations


From: Przemek Klosowski
Subject: Re: Identify auto tick locations
Date: Thu, 1 Nov 2007 14:51:38 -0500 (EST)

   | If that is the problem, one just needs to rewrite the code, for example
   | by vectorising it instead of using elseif statements.  Writing code that
   | works like someone else's (copying the algorithm) but that is written in
   | a  different way is not copyright infringement.

   You are a lawyer and you are sure about this?  I think it would be
   questionable whether this is OK.

   My advice to anyone working on Octave is that you should definitely
   avoid deriving your code from sources which would not allow you to
   make modified copies available under terms compatible with the GPL.

IANAL either, but John is right in being very cautious about avoiding
even an appearance of copyright impropriety. The only legally accepted
way of re-implementing copyrighted algorithms is the 'cleanroom'
methodology where one party studies the heck out of a protected
implementation, and writes a functional specification, and the other,
independent party implements it.

What we had here shows how in practice things aren't always so
cut and dried. I would say that Troy Henderson provided the
functional specification based on his reading of gnuplot code, and
Francesco implemented it in Octave. Because he used code to express
the specification, however, one might argue that the copyrighted
expression of the algorithm leaked into his code. 

If Troy wrote the algorithm in prose ("for x between 0.5 and 2 the
value is 1", etc), I think everyone would agree that there would be no
issue. and Francesco's implementation would be clean. By the way,
describing algorithms in prose ('literate programming') is a good
practice in itself:

           http://www.literateprogramming.com/

I found it very pleasant to use myself, and much easier to get into
someone else's code.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]