www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Legal/Permission Question

reply Dan <murpsoft hotmail.com> writes:
Hey Walter/anyone?

Considering that my Walnut 2.x engine performs much the same functionality as
DMDScript, but that Walnut 2.x is written significantly differently on a
structural level...

DMDScript is a GPL v1 engine, and Walnut 2.x is a new BSD engine.

When I fill in the function stubs for, for example, Number_prototype_toFixed,
am I allowed to examine Walter's DMDScript source code, write something similar
(but obviously not the same) and still call it new BSD?

What requirements are there to do such a thing?
Apr 03 2007
next sibling parent reply Gregor Richards <Richards codu.org> writes:
Dan wrote:
 Hey Walter/anyone?
 
 Considering that my Walnut 2.x engine performs much the same functionality as
DMDScript, but that Walnut 2.x is written significantly differently on a
structural level...
 
 DMDScript is a GPL v1 engine, and Walnut 2.x is a new BSD engine.
 
 When I fill in the function stubs for, for example, Number_prototype_toFixed,
am I allowed to examine Walter's DMDScript source code, write something similar
(but obviously not the same) and still call it new BSD?
 
 What requirements are there to do such a thing?
This is one of many distinctions between copyright and patent. Copyright covers the RIGHT to COPY. NOTHING ELSE. Unless you signed a license or contract specifying that you can't use it as a reference, you can. - Gregor Richards
Apr 03 2007
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Gregor Richards wrote:
 Dan wrote:
 Hey Walter/anyone?

 Considering that my Walnut 2.x engine performs much the same 
 functionality as DMDScript, but that Walnut 2.x is written 
 significantly differently on a structural level...

 DMDScript is a GPL v1 engine, and Walnut 2.x is a new BSD engine.

 When I fill in the function stubs for, for example, 
 Number_prototype_toFixed, am I allowed to examine Walter's DMDScript 
 source code, write something similar (but obviously not the same) and 
 still call it new BSD?

 What requirements are there to do such a thing?
This is one of many distinctions between copyright and patent. Copyright covers the RIGHT to COPY. NOTHING ELSE. Unless you signed a license or contract specifying that you can't use it as a reference, you can.
I believe this is incorrect. Copyrights also cover 'derivative works'. See http://en.wikipedia.org/wiki/Derivative_work
Apr 03 2007
parent reply Gregor Richards <Richards codu.org> writes:
Walter Bright wrote:
 Gregor Richards wrote:
 Dan wrote:
 Hey Walter/anyone?

 Considering that my Walnut 2.x engine performs much the same 
 functionality as DMDScript, but that Walnut 2.x is written 
 significantly differently on a structural level...

 DMDScript is a GPL v1 engine, and Walnut 2.x is a new BSD engine.

 When I fill in the function stubs for, for example, 
 Number_prototype_toFixed, am I allowed to examine Walter's DMDScript 
 source code, write something similar (but obviously not the same) and 
 still call it new BSD?

 What requirements are there to do such a thing?
This is one of many distinctions between copyright and patent. Copyright covers the RIGHT to COPY. NOTHING ELSE. Unless you signed a license or contract specifying that you can't use it as a reference, you can.
I believe this is incorrect. Copyrights also cover 'derivative works'. See http://en.wikipedia.org/wiki/Derivative_work
"In copyright law, a derivative work is an artistic creation that includes major, basic copyrighted aspects of an original, previously created first work." Including major copyrighted aspects of an original, previously created work is by definition copying. My very simple definition, while not very nuanced, is accurate :) - Gregor Richards
Apr 03 2007
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Gregor Richards wrote:
 Including major copyrighted aspects of an original, previously created 
 work is by definition copying. My very simple definition, while not very 
 nuanced, is accurate :)
Using the original implementation as a guide to making a clone is making a derivative work. I'm not a lawyer, but I have been grilled and basted by well-paid lawyers doing their due diligence about these things.
Apr 03 2007
parent reply Derek Parnell <derek nomail.afraid.org> writes:
On Tue, 03 Apr 2007 18:42:58 -0700, Walter Bright wrote:

 Gregor Richards wrote:
 Including major copyrighted aspects of an original, previously created 
 work is by definition copying. My very simple definition, while not very 
 nuanced, is accurate :)
Using the original implementation as a guide to making a clone is making a derivative work. I'm not a lawyer, but I have been grilled and basted by well-paid lawyers doing their due diligence about these things.
Even if one uses it is a guide to how *not* to do things? That is, the clone is created in a form that is deliberately and explicitly not like the original - and this can be done because they know the original. -- Derek (skype: derek.j.parnell) Melbourne, Australia "Justice for David Hicks!" 4/04/2007 11:46:07 AM
Apr 03 2007
parent Walter Bright <newshound1 digitalmars.com> writes:
Derek Parnell wrote:
 Even if one uses it is a guide to how *not* to do things? That is, the
 clone is created in a form that is deliberately and explicitly not like the
 original - and this can be done because they know the original.
My experience has been that you're ok if you look at something, and then implement something in an utterly different way. But you're still better off not looking at it at all. Look at all the effort IBM had to put in to defend themselves against SCO because IBM had peeked at the code.
Apr 03 2007
prev sibling next sibling parent reply Walter Bright <newshound1 digitalmars.com> writes:
Dan wrote:
 Hey Walter/anyone?
 
 Considering that my Walnut 2.x engine performs much the same functionality as
DMDScript, but that Walnut 2.x is written significantly differently on a
structural level...
 
 DMDScript is a GPL v1 engine, and Walnut 2.x is a new BSD engine.
 
 When I fill in the function stubs for, for example, Number_prototype_toFixed,
am I allowed to examine Walter's DMDScript source code, write something similar
(but obviously not the same) and still call it new BSD?
No. Doing so would make it a 'derivative work'.
 What requirements are there to do such a thing?
If you're going to clone a function, you can't use someone else's copyrighted code as a guide. Even just looking at it could cause 'taint', which is why I never look at or work on gcc. You need to write your own from scratch - or buy a license <g>.
Apr 03 2007
next sibling parent reply Charlie <charlie.fats gmail.com> writes:
Would buying a license allow him to copy the code

Walter Bright wrote:
 Dan wrote:
 Hey Walter/anyone?

 Considering that my Walnut 2.x engine performs much the same 
 functionality as DMDScript, but that Walnut 2.x is written 
 significantly differently on a structural level...

 DMDScript is a GPL v1 engine, and Walnut 2.x is a new BSD engine.

 When I fill in the function stubs for, for example, 
 Number_prototype_toFixed, am I allowed to examine Walter's DMDScript 
 source code, write something similar (but obviously not the same) and 
 still call it new BSD?
No. Doing so would make it a 'derivative work'.
 What requirements are there to do such a thing?
If you're going to clone a function, you can't use someone else's copyrighted code as a guide. Even just looking at it could cause 'taint', which is why I never look at or work on gcc. You need to write your own from scratch - or buy a license <g>.
Apr 03 2007
parent Walter Bright <newshound1 digitalmars.com> writes:
Charlie wrote:
 Would buying a license allow him to copy the code
For the regular license, yes, but that doesn't allow redistribution of source code. He'd have to email me and we could work something out. Note that if his code is GPL'd, he can do what he wants with it consistent with the GPL, which includes copying and redistributing source.
Apr 03 2007
prev sibling next sibling parent reply Derek Parnell <derek nomail.afraid.org> writes:
On Tue, 03 Apr 2007 14:56:04 -0700, Walter Bright wrote:

 Dan wrote:
 Hey Walter/anyone?
 
 Considering that my Walnut 2.x engine performs much the same functionality as
DMDScript, but that Walnut 2.x is written significantly differently on a
structural level...
 
 DMDScript is a GPL v1 engine, and Walnut 2.x is a new BSD engine.
 
 When I fill in the function stubs for, for example, Number_prototype_toFixed,
am I allowed to examine Walter's DMDScript source code, write something similar
(but obviously not the same) and still call it new BSD?
No. Doing so would make it a 'derivative work'.
 What requirements are there to do such a thing?
If you're going to clone a function, you can't use someone else's copyrighted code as a guide. Even just looking at it could cause 'taint', which is why I never look at or work on gcc. You need to write your own from scratch - or buy a license <g>.
I have occasionally wondered about the situation in which one looks at code "X" and thinks 'This is horrible. I can do better' and then goes on to write "Y", which looks nothing like "X" but was developed with the knowledge of "X". Now, if "X" and "Y" can be used interchangeably to solve the same problem, is "Y" deemed to have been derived from "X"? In other words, is the motive of the author a factor? In the case above, "X" and "Y" are totally dissimilar but "Y" was written /because/ the author knew the details of "X". If the author did not know "X" but still wrote "Y", could it be a derived work? -- Derek (skype: derek.j.parnell) Melbourne, Australia "Justice for David Hicks!" 4/04/2007 10:09:03 AM
Apr 03 2007
next sibling parent Brad Anderson <brad dsource.org> writes:
Derek Parnell wrote:
 On Tue, 03 Apr 2007 14:56:04 -0700, Walter Bright wrote:
 
 Dan wrote:
 Hey Walter/anyone?

 Considering that my Walnut 2.x engine performs much the same functionality as
DMDScript, but that Walnut 2.x is written significantly differently on a
structural level...

 DMDScript is a GPL v1 engine, and Walnut 2.x is a new BSD engine.

 When I fill in the function stubs for, for example, Number_prototype_toFixed,
am I allowed to examine Walter's DMDScript source code, write something similar
(but obviously not the same) and still call it new BSD?
No. Doing so would make it a 'derivative work'.
 What requirements are there to do such a thing?
If you're going to clone a function, you can't use someone else's copyrighted code as a guide. Even just looking at it could cause 'taint', which is why I never look at or work on gcc. You need to write your own from scratch - or buy a license <g>.
I have occasionally wondered about the situation in which one looks at code "X" and thinks 'This is horrible. I can do better' and then goes on to write "Y", which looks nothing like "X" but was developed with the knowledge of "X". Now, if "X" and "Y" can be used interchangeably to solve the same problem, is "Y" deemed to have been derived from "X"? In other words, is the motive of the author a factor? In the case above, "X" and "Y" are totally dissimilar but "Y" was written /because/ the author knew the details of "X". If the author did not know "X" but still wrote "Y", could it be a derived work?
Ain't lawyerin' grand? BA
Apr 03 2007
prev sibling parent reply Walter Bright <newshound1 digitalmars.com> writes:
Derek Parnell wrote:
 I have occasionally wondered about the situation in which one looks at code
 "X" and thinks 'This is horrible. I can do better' and then goes on to
 write "Y", which looks nothing like "X" but was developed with the
 knowledge of "X". Now, if "X" and "Y" can be used interchangeably to solve
 the same problem, is "Y" deemed to have been derived from "X"? 
 
 In other words, is the motive of the author a factor? In the case above,
 "X" and "Y" are totally dissimilar but "Y" was written /because/ the author
 knew the details of "X". If the author did not know "X" but still wrote
 "Y", could it be a derived work? 
What will happen if things go far enough is an independent expert will be hired by the lawyers who will comb through the code evaluating how similar or dissimilar it is.
Apr 03 2007
parent reply BCS <ao pathlink.com> writes:
Reply to Walter,

 Derek Parnell wrote:
 
 I have occasionally wondered about the situation in which one looks
 at code "X" and thinks 'This is horrible. I can do better' and then
 goes on to write "Y", which looks nothing like "X" but was developed
 with the knowledge of "X". Now, if "X" and "Y" can be used
 interchangeably to solve the same problem, is "Y" deemed to have been
 derived from "X"?
 
 In other words, is the motive of the author a factor? In the case
 above, "X" and "Y" are totally dissimilar but "Y" was written
 /because/ the author knew the details of "X". If the author did not
 know "X" but still wrote "Y", could it be a derived work?
 
What will happen if things go far enough is an independent expert will be hired by the lawyers who will comb through the code evaluating how similar or dissimilar it is.
And when that happens, the independent expert makes money, the lawyer makes money and everybody else pays them.
Apr 03 2007
parent Walter Bright <newshound1 digitalmars.com> writes:
BCS wrote:
 Reply to Walter,
 What will happen if things go far enough is an independent expert will
 be hired by the lawyers who will comb through the code evaluating how
 similar or dissimilar it is.
And when that happens, the independent expert makes money, the lawyer makes money and everybody else pays them.
In cases I know about, a settlement offer usually appears before things go too far, because it gets pretty obvious if there was any hanky-panky. I got a settlement once after running "strings" over the other company's binaries, and 90% of their string literals matched word-for-word the ones in mine, despite their claim they wrote it "from scratch". Oops. I'd have liked to have heard the conversation between the opposing lawyer and the engineers he represented after that one.
Apr 03 2007
prev sibling parent reply Sean Kelly <sean f4.ca> writes:
Walter Bright wrote:
 
 If you're going to clone a function, you can't use someone else's 
 copyrighted code as a guide. Even just looking at it could cause 
 'taint', which is why I never look at or work on gcc.
The whole situation is kind of a mess. Say a programmer creates a parser for one company and then later is hired by another company for which he also produces a parser. Assuming the first company retains the rights to the parser created there, the programmer has no way to avoid 'taint'. Worse, a person tends to solve a given problem in a consistent fashion, so two applications created from scratch by the same person will naturally have structural similarities. And whether or not a case concerning this could hold up in court, there is enough confusion about copyright law that it can actually come up. Truth be told, I've considered leaving the professional software sector altogether and do this purely as a hobby simply to avoid such issues. Sean
Apr 03 2007
parent Walter Bright <newshound1 digitalmars.com> writes:
Sean Kelly wrote:
 Walter Bright wrote:
 If you're going to clone a function, you can't use someone else's 
 copyrighted code as a guide. Even just looking at it could cause 
 'taint', which is why I never look at or work on gcc.
The whole situation is kind of a mess. Say a programmer creates a parser for one company and then later is hired by another company for which he also produces a parser. Assuming the first company retains the rights to the parser created there, the programmer has no way to avoid 'taint'. Worse, a person tends to solve a given problem in a consistent fashion, so two applications created from scratch by the same person will naturally have structural similarities. And whether or not a case concerning this could hold up in court, there is enough confusion about copyright law that it can actually come up. Truth be told, I've considered leaving the professional software sector altogether and do this purely as a hobby simply to avoid such issues.
That's a serious issue, and I've been faced with it. I decided the easy way (but on the expensive side) was to negotiate a license. That way, everyone's happy.
Apr 03 2007
prev sibling next sibling parent reply Dan <murpsoft hotmail.com> writes:
In that case, I won't look at Walter's code when I write the functions. 
Although I must admit, I am a maintainer of Walnut 1.x, which is released under
a GPL; and derived from Walter's work.

I haven't touched any of the *methods* yet, nor significantly looked at them. 
Additionally, Walnut 2.x is vastly different from DMDScript in implementation -
about as different as it can get considering they're both ECMAScript in D.

Considering I'm only doing this as a hobby, out of the goodness of my heart,
paying the $25,000 or whatnot license and working something out with Walter is
well beyond the budget.

I'll examine some other ECMAScript licenses, and see if any are more
compatible.  I tend to find I write more effective code when I can see what's
wrong with someone else's.  The methods themselves tend to be very predictable
from one engine to the next, since their external behavior is predefined, and
they all need to follow the same arguments.  I was just hoping to cut bug
hunting time.

Oh well.
Apr 03 2007
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Dan wrote:
 In that case, I won't look at Walter's code when I write the functions. 
Although I must admit, I am a maintainer of Walnut 1.x, which is released under
a GPL; and derived from Walter's work.
 
 I haven't touched any of the *methods* yet, nor significantly looked at them. 
Additionally, Walnut 2.x is vastly different from DMDScript in implementation -
about as different as it can get considering they're both ECMAScript in D.
 
 Considering I'm only doing this as a hobby, out of the goodness of my heart,
paying the $25,000 or whatnot license and working something out with Walter is
well beyond the budget.
Nobody said $25,000!!!
 I'll examine some other ECMAScript licenses, and see if any are more
compatible.  I tend to find I write more effective code when I can see what's
wrong with someone else's.  The methods themselves tend to be very predictable
from one engine to the next, since their external behavior is predefined, and
they all need to follow the same arguments.  I was just hoping to cut bug
hunting time.
 
 Oh well.
Why not just use GPL?
Apr 03 2007
parent reply Dan <murpsoft hotmail.com> writes:
Walter Bright Wrote:

 Dan wrote:
 In that case, I won't look at Walter's code when I write the functions. 
Although I must admit, I am a maintainer of Walnut 1.x, which is released under
a GPL; and derived from Walter's work.
 
 I haven't touched any of the *methods* yet, nor significantly looked at them. 
Additionally, Walnut 2.x is vastly different from DMDScript in implementation -
about as different as it can get considering they're both ECMAScript in D.
 
 Considering I'm only doing this as a hobby, out of the goodness of my heart,
paying the $25,000 or whatnot license and working something out with Walter is
well beyond the budget.
Nobody said $25,000!!!
 I'll examine some other ECMAScript licenses, and see if any are more
compatible.  I tend to find I write more effective code when I can see what's
wrong with someone else's.  The methods themselves tend to be very predictable
from one engine to the next, since their external behavior is predefined, and
they all need to follow the same arguments.  I was just hoping to cut bug
hunting time.
 
 Oh well.
Why not just use GPL?
Well, I had this crazy notion that if it was put under a BSD license, and actually pulled off it being the best engine out there... I just figured it would be awesome to develop the *best* scripting engine and release it so absolutely everyone can use it. IE: make a drop-in for JScript, Mozilla's JavaScript, Qtscript, and bind to ActiveX, DLL's, and DDL's. All that flexibility would require the core engine be written first, and alot of version'ing things off, as well as having dll, com server, and command prompt mains. If it were done well, licensed BSD, and properly promoted, I just think it would make for a revival of what's currently the most used scripting language in the world.
Apr 03 2007
parent Dan <murpsoft hotmail.com> writes:
Dan Wrote:

 Walter Bright Wrote:
 Nobody said $25,000!!!
$998.00 The most I've paid for anything software was $80 for Windows XP when it came out through my aunt. My computer was hand built by a friend for $440. As of next month, that'll be more than my monthly income.
Apr 03 2007
prev sibling next sibling parent reply "David B. Held" <dheld codelogicconsulting.com> writes:
Dan wrote:
 Considering that my Walnut 2.x engine performs much the same functionality as
DMDScript, but that Walnut 2.x is written significantly differently on a
structural level...
 
 DMDScript is a GPL v1 engine, and Walnut 2.x is a new BSD engine.
 
 When I fill in the function stubs for, for example, Number_prototype_toFixed,
am I allowed to examine Walter's DMDScript source code, write something similar
(but obviously not the same) and still call it new BSD?
 
 What requirements are there to do such a thing?
Generally, the best way to implement something that someone else has written is to use a "clean room" technique where you isolate yourself from any possible external influences, as Walter and others have pointed out. Even if you are clever enough to change or obfuscate all the identifiers, people are hard at working creating similarity programs that detect likeness without any exact matches. On the one hand, you probably don't have to worry about Walter hunting you down with lawyers, because he knows you can't squeeze blood from a turnip. On the other, if your library becomes as successful as you hope it does and DMDScript gets bought out by a SCO-like player, then you have a world of hurt coming your way. Take a look at http://en.wikipedia.org/wiki/Clean_room_design and keep in mind that while the clean room technique may be a defense against copyright infringement, it is not a defense against patents (not sure if Walter has any patents on any D stuff, or if anyone does, but this seems like the smaller risk for you). The fact that you are already part of the D community may strongly imply that you are already tainted. Good luck. Dave
Apr 04 2007
next sibling parent reply Dan <murpsoft hotmail.com> writes:
David B. Held Wrote:
 Generally, the best way to implement something that someone else has 
 written is to use a "clean room" technique where you isolate yourself 
 from any possible external influences, as Walter and others have pointed 
 out.  Even if you are clever enough to change or obfuscate all the 
 identifiers, people are hard at working creating similarity programs 
 that detect likeness without any exact matches.
 
 On the one hand, you probably don't have to worry about Walter hunting 
 you down with lawyers, because he knows you can't squeeze blood from a 
 turnip.  On the other, if your library becomes as successful as you hope 
 it does and DMDScript gets bought out by a SCO-like player, then you 
 have a world of hurt coming your way.
 
 Take a look at http://en.wikipedia.org/wiki/Clean_room_design and keep 
 in mind that while the clean room technique may be a defense against 
 copyright infringement, it is not a defense against patents (not sure if 
 Walter has any patents on any D stuff, or if anyone does, but this seems 
 like the smaller risk for you).  The fact that you are already part of 
 the D community may strongly imply that you are already tainted.
 
 Good luck.
 
 Dave
Walter, if I may ask, examining Walnut 1.9 from: http://dsource.org/projects/browse/branches/1.9/source/ Is the code that I've currently written in any way derived from your works? While, as people here have suggested, you probably won't come after me for it, your explicit agreement that it isn't so far would probably hold me not liable for that code. Granted that, I guess I'm not allowed to program ever again, because I've read source code for practically everything - Ogre3D, various games, scripting engines, compilers, OS's, tools, algorithms and data structures.. I'm just a walking liability. I'll miss you all so much. *sniffle* It's a damned good thing this turnip is dry. : )
Apr 04 2007
next sibling parent reply Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
Dan wrote:
 http://dsource.org/projects/browse/branches/1.9/source/
That should probably be http://dsource.org/projects/walnut/browser/branches/1.9/source
Apr 04 2007
parent reply Dan <murpsoft hotmail.com> writes:
Frits van Bommel Wrote:

 Dan wrote:
 http://dsource.org/projects/browse/branches/1.9/source/
That should probably be http://dsource.org/projects/walnut/browser/branches/1.9/source
Not wanting to offend, but hold on a second here. In accordance with the resource specified for Software Copyright Law on the Wikipedia website, http://www.rosenlaw.com/lj19.htm Simple Case: "If you take the copyrighted source code of any program and physically modify it – actually revise the program or translate it into another computer language – you have created a derivative work" First Edge Case: "Here’s how I would decide in the edge cases that I described above: · The primary indication of whether a new program is a derivative work is whether the source code of the original program was used, modified, translated or otherwise changed in any way to create the new program. If not, then I would argue that there is not a derivative work." So in the case of Walnut 2.x, as I did not take someone elses code and modify it, but rather wrote a new program from scratch while analyzing the shortcomings of similar programs; it does not constitute a derivative work. Iff we can all agree that it is a version 2.x, and not a 1.x (continuation and modification of the original work) and nothing is copied forward. For the existing code-base, *I* believe it is most definitely a case of rewriting in light of. If I were to adopt Walter's methods for Walnut 2.x, it would most probably be crossing or standing on that line. Given that, and by your (Walter's) examination of the code in this light, is Walnut 1.9-2.x a derivative work as it stands? If Walnut 2.x is not as-of-yet a derivative work, then by discontinuing the examination of Walter's code while writing the methods (a part that would typically be very similar between implementations of ECMAScript regardless) I would be continuing to perform a new work in conformance with ECMA-262. If we disagree on whether Walnut 2.x is derivative, then I will remove it from the website and cease development. Thanks, Dan.
Apr 04 2007
next sibling parent reply Dan <murpsoft hotmail.com> writes:
Also of interest is Linus Torvald's explanation of his writing of some code for
the Linux kernel when he was challenged by SCO:

http://www.groklaw.net/article.php?story=20031222174158852
Apr 04 2007
next sibling parent Walter Bright <newshound1 digitalmars.com> writes:
Dan wrote:
 Also of interest is Linus Torvald's explanation of his writing of some code
for the Linux kernel when he was challenged by SCO:
 
 http://www.groklaw.net/article.php?story=20031222174158852
Linus is right. It's stupid to try to lay claim to individual numbers, variable names, or obvious algorithms. Certainly, there is no hard and fast line between that and wholesale copying. Use your best judgment and act in good faith, and you should be fine.
Apr 04 2007
prev sibling parent Walter Bright <newshound1 digitalmars.com> writes:
BTW, the fact that you asked in this forum speaks highly of you, and 
that you are doing your best to act in good faith. That means a lot. 
Thank-you.
Apr 04 2007
prev sibling next sibling parent Brad Roberts <braddr puremagic.com> writes:
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---1110348602-1205608966-1175716960=:3074
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE

On Wed, 4 Apr 2007, Dan wrote:

 Date: Wed, 04 Apr 2007 14:38:44 -0400
 From: Dan <murpsoft hotmail.com>
 Reply-To: digitalmars.D <digitalmars-d puremagic.com>
 To: digitalmars-d puremagic.com
 Newsgroups: digitalmars.D
 Subject: Re: Legal/Permission Question
=20
 Frits van Bommel Wrote:
=20
 Dan wrote:
 http://dsource.org/projects/browse/branches/1.9/source/
=20 That should probably be=20 http://dsource.org/projects/walnut/browser/branches/1.9/source
=20 Not wanting to offend, but hold on a second here. In accordance with the=
resource specified for Software Copyright Law on the Wikipedia website,
 http://www.rosenlaw.com/lj19.htm
=20
 Simple Case:
 "If you take the copyrighted source code of any program and physically mo=
dify it =96 actually revise the program or translate it into another comput= er language =96 you have created a derivative work"
=20
 First Edge Case:
 "Here=92s how I would decide in the edge cases that I described above:
=20
 =B7         The primary indication of whether a new program is a derivati=
ve work is whether the source code of the original program was used, modifi= ed, translated or otherwise changed in any way to create the new program. = If not, then I would argue that there is not a derivative work."
=20
 So in the case of Walnut 2.x, as I did not take someone elses code and mo=
dify it, but rather wrote a new program from scratch while analyzing the sh= ortcomings of similar programs; it does not constitute a derivative work.
=20
 Iff we can all agree that it is a version 2.x, and not a 1.x (continuatio=
n and modification of the original work) and nothing is copied forward.
=20
 For the existing code-base, *I* believe it is most definitely a case of r=
ewriting in light of. If I were to adopt Walter's methods for Walnut 2.x, = it would most probably be crossing or standing on that line.
=20
 Given that, and by your (Walter's) examination of the code in this light,=
is Walnut 1.9-2.x a derivative work as it stands?
=20
 If Walnut 2.x is not as-of-yet a derivative work, then by discontinuing t=
he examination of Walter's code while writing the methods (a part that woul= d typically be very similar between implementations of ECMAScript regardles= s) I would be continuing to perform a new work in conformance with ECMA-262= =2E
=20
 If we disagree on whether Walnut 2.x is derivative, then I will remove it=
from the website and cease development.
=20
 Thanks, Dan.
This thread has long since left the realm of usefulness. The only=20 authority on the legalness of what constitutes a derived work is the legal= =20 system itself. If you want a binding answer, you can't get one from us. In this specific case, the only person that has any standing to assert any= =20 claims of infringement would be Walter and I suggest you work with him=20 privately. No one else here can give an authoritve answer. Later, Brad ---1110348602-1205608966-1175716960=:3074--
Apr 04 2007
prev sibling parent Brad Roberts <braddr puremagic.com> writes:
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---1110348602-1205608966-1175716960=:3074
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT

On Wed, 4 Apr 2007, Dan wrote:

 Date: Wed, 04 Apr 2007 14:38:44 -0400
 From: Dan <murpsoft hotmail.com>
 Reply-To: digitalmars.D <digitalmars-d puremagic.com>
 To: digitalmars-d puremagic.com
 Newsgroups: digitalmars.D
 Subject: Re: Legal/Permission Question
 
 Frits van Bommel Wrote:
 
 Dan wrote:
 http://dsource.org/projects/browse/branches/1.9/source/
That should probably be http://dsource.org/projects/walnut/browser/branches/1.9/source
Not wanting to offend, but hold on a second here. In accordance with the resource specified for Software Copyright Law on the Wikipedia website, http://www.rosenlaw.com/lj19.htm Simple Case: "If you take the copyrighted source code of any program and physically modify it – actually revise the program or translate it into another computer language – you have created a derivative work" First Edge Case: "Here’s how I would decide in the edge cases that I described above: · The primary indication of whether a new program is a derivative work is whether the source code of the original program was used, modified, translated or otherwise changed in any way to create the new program. If not, then I would argue that there is not a derivative work." So in the case of Walnut 2.x, as I did not take someone elses code and modify it, but rather wrote a new program from scratch while analyzing the shortcomings of similar programs; it does not constitute a derivative work. Iff we can all agree that it is a version 2.x, and not a 1.x (continuation and modification of the original work) and nothing is copied forward. For the existing code-base, *I* believe it is most definitely a case of rewriting in light of. If I were to adopt Walter's methods for Walnut 2.x, it would most probably be crossing or standing on that line. Given that, and by your (Walter's) examination of the code in this light, is Walnut 1.9-2.x a derivative work as it stands? If Walnut 2.x is not as-of-yet a derivative work, then by discontinuing the examination of Walter's code while writing the methods (a part that would typically be very similar between implementations of ECMAScript regardless) I would be continuing to perform a new work in conformance with ECMA-262. If we disagree on whether Walnut 2.x is derivative, then I will remove it from the website and cease development. Thanks, Dan.
This thread has long since left the realm of usefulness. The only authority on the legalness of what constitutes a derived work is the legal system itself. If you want a binding answer, you can't get one from us. In this specific case, the only person that has any standing to assert any claims of infringement would be Walter and I suggest you work with him privately. No one else here can give an authoritve answer. Later, Brad ---1110348602-1205608966-1175716960=:3074--
Apr 04 2007
prev sibling next sibling parent reply Dave <Dave_member pathlink.com> writes:
Dan wrote:
 David B. Held Wrote:
 Generally, the best way to implement something that someone else has 
 written is to use a "clean room" technique where you isolate yourself 
 from any possible external influences, as Walter and others have pointed 
 out.  Even if you are clever enough to change or obfuscate all the 
 identifiers, people are hard at working creating similarity programs 
 that detect likeness without any exact matches.

 On the one hand, you probably don't have to worry about Walter hunting 
 you down with lawyers, because he knows you can't squeeze blood from a 
 turnip.  On the other, if your library becomes as successful as you hope 
 it does and DMDScript gets bought out by a SCO-like player, then you 
 have a world of hurt coming your way.

 Take a look at http://en.wikipedia.org/wiki/Clean_room_design and keep 
 in mind that while the clean room technique may be a defense against 
 copyright infringement, it is not a defense against patents (not sure if 
 Walter has any patents on any D stuff, or if anyone does, but this seems 
 like the smaller risk for you).  The fact that you are already part of 
 the D community may strongly imply that you are already tainted.
Hmmm - I'd have to question that last line. I mean geesh... Besides, what really is the "D community". It'd be hard to prove in court what that in itself means, with public NG's and all ;)
 Good luck.

 Dave
Walter, if I may ask, examining Walnut 1.9 from: http://dsource.org/projects/browse/branches/1.9/source/ Is the code that I've currently written in any way derived from your works? While, as people here have suggested, you probably won't come after me for it, your explicit agreement that it isn't so far would probably hold me not liable for that code. Granted that, I guess I'm not allowed to program ever again, because I've read source code for practically everything - Ogre3D, various games, scripting engines, compilers, OS's, tools, algorithms and data structures.. I'm just a walking liability. I'll miss you all so much. *sniffle* It's a damned good thing this turnip is dry. : )
Apr 04 2007
parent Sean Kelly <sean f4.ca> writes:
Dave wrote:
 Dan wrote:
 David B. Held Wrote:
 Take a look at http://en.wikipedia.org/wiki/Clean_room_design and 
 keep in mind that while the clean room technique may be a defense 
 against copyright infringement, it is not a defense against patents 
 (not sure if Walter has any patents on any D stuff, or if anyone 
 does, but this seems like the smaller risk for you).  The fact that 
 you are already part of the D community may strongly imply that you 
 are already tainted.
Hmmm - I'd have to question that last line. I mean geesh... Besides, what really is the "D community". It'd be hard to prove in court what that in itself means, with public NG's and all ;)
The problem seems to be a fear of litigation rather than whether such a case could actually be won or lost. Even pre-court negotiation and such can be quite expensive if IP lawyers are involved, and many cases unfortunately rely on the accused to settle rather than to pay for a trial (since it is often tremendously cheaper to do so). If it came to it, my first step would probably be to contact the EFF and discuss my options with them. Sean
Apr 04 2007
prev sibling parent Walter Bright <newshound1 digitalmars.com> writes:
Dan wrote:
 Walter, if I may ask, examining Walnut 1.9 from:
 http://dsource.org/projects/browse/branches/1.9/source/
 
 Is the code that I've currently written in any way derived from your works? 
While, as people here have suggested, you probably won't come after me for it,
your explicit agreement that it isn't so far would probably hold me not liable
for that code.
 
 Granted that, I guess I'm not allowed to program ever again, because I've read
source code for practically everything - Ogre3D, various games, scripting
engines, compilers, OS's, tools, algorithms and data structures.. I'm just a
walking liability.
 
 I'll miss you all so much.  *sniffle*
 
 It's a damned good thing this turnip is dry.  : )
LOL. I'm not sitting here with a pack of lawyers itching to sic them on somebody. Heck, I've been putting more and more of phobos into the public domain. But you should know what the legal issues involved are, as they'll apply to whatever programming work you do. If you write software and wish to sell it to some major corporation for big bucks, they'll want clean title to it, and they'll check it out. You'll be asked to sign papers guaranteeing it's original, under threat of substantial penalties. Avoiding taint makes this trivial. As for me personally, what gets my back up are (and yes, these have all happened): 1) accusing me of copying, when the accuser is the one that stole the code from me in the first place 2) hiring me to do programming, using the result, and trying to duck payment 3) licensing my code, paying me royalties for a year or two, becoming intimately familiar with my code, then releasing a new version trying to claim it is now an "original" work to duck payment and credit 4) trying to claim original authorship of code that is obviously mine, by doing little more than replace the copyright notice Bottom line is, doing a line by line transliteration of copyrighted code for the purpose of evading the copyright just isn't right. Think of it this way: you're releasing Walnut under a BSD license. That means you wish to retain credit and copyright of it. How would you feel if someone else took Walnut, transliterated it, peeled off your copyright, and called it their own?
Apr 04 2007
prev sibling parent reply Walter Bright <newshound1 digitalmars.com> writes:
David B. Held wrote:
 it is not a defense against patents (not sure if 
 Walter has any patents on any D stuff, or if anyone does, but this seems 
 like the smaller risk for you).
There are no patents on D technology that I am aware of, and I don't plan on filing any. I personally believe that software should be unpatentable.
Apr 04 2007
parent reply Don Clugston <dac nospam.com.au> writes:
Walter Bright wrote:
 David B. Held wrote:
 it is not a defense against patents (not sure if Walter has any 
 patents on any D stuff, or if anyone does, but this seems like the 
 smaller risk for you).
There are no patents on D technology that I am aware of, and I don't plan on filing any. I personally believe that software should be unpatentable.
Did you know, that the only reason why software technology is patentable at all, is because in the 1800's, some guy was granted a patent for a (paper) opera ticket that could be folded in multiple ways, and modern courts successfully argued that it was an algorithm. So this whole situation exists just because some stupid patent office once granted a patent for origami. It's absurd.
Apr 05 2007
parent Walter Bright <newshound1 digitalmars.com> writes:
Don Clugston wrote:
 Walter Bright wrote:
 David B. Held wrote:
 it is not a defense against patents (not sure if Walter has any 
 patents on any D stuff, or if anyone does, but this seems like the 
 smaller risk for you).
There are no patents on D technology that I am aware of, and I don't plan on filing any. I personally believe that software should be unpatentable.
Did you know, that the only reason why software technology is patentable at all, is because in the 1800's, some guy was granted a patent for a (paper) opera ticket that could be folded in multiple ways, and modern courts successfully argued that it was an algorithm. So this whole situation exists just because some stupid patent office once granted a patent for origami. It's absurd.
I didn't know that. Patents are supposed to exist in order to encourage innovation. The reality of software patents is they do nothing of the kind, they discourage it. Before 1989, software wasn't patentable, and there was a tidal wave of software innovation.
Apr 05 2007
prev sibling next sibling parent reply Dan <murpsoft hotmail.com> writes:
Walter Bright Wrote:

 LOL. I'm not sitting here with a pack of lawyers itching to sic them on 
 somebody. Heck, I've been putting more and more of phobos into the 
 public domain.
Indeed, I've never suspected so. I tend to go on what people say is okay with them. According to the definition, practically any programming after having seen an example of a for loop is an offense; so it's reasonable to be sure one isn't stepping on the wrong toes. I agree with the issues you raised, and don't intend to violate those. More or less though, I feel it would border on treason to the community if I continued to develop and release Walnut 2.x when you felt I'd essentially produced a derived work that should remain constricted to GPL. Considering what you're last post stated, I can almost assume that you feel Walnut 2.x at Revision 44 is okay, and that I can continue work, as long as your files aren't open. :p I pretty much just feel I need a yes or no from ya. :p
Apr 04 2007
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Dan wrote:
 Walter Bright Wrote:
 
 LOL. I'm not sitting here with a pack of lawyers itching to sic them on 
 somebody. Heck, I've been putting more and more of phobos into the 
 public domain.
Indeed, I've never suspected so. I tend to go on what people say is okay with them. According to the definition, practically any programming after having
seen an example of
 a for loop is an offense;
No, I don't think so. Copyright does not apply to algorithms, nor does it apply to specific numbers or identifiers. You cannot copyright a phrase. You cannot copyright quicksort, but you can copyright your implementation of quicksort.
 so it's reasonable to be sure one isn't stepping on the wrong toes.
 
 I agree with the issues you raised, and don't intend to violate those.
 
 More or less though, I feel it would border on treason to the community if I
continued
 to develop and release Walnut 2.x when you felt I'd essentially 
produced a derived work
 that should remain constricted to GPL.
I don't have an opinion on whether you produced a derived work or not, since I haven't looked at the code.
 Considering what you're last post stated, I can almost assume that you feel
Walnut 2.x
 at Revision 44 is okay, and that I can continue work, as long as your 
files aren't open.
 :p
 
 I pretty much just feel I need a yes or no from ya.  :p
All I ask if that if any of it is a line by line translation from dmdscript, or bases its structure or data structures on dmdscript, that you scrap & rewrite those parts, and that you not look at the dmdscript source as long as you're working on Walnut.
Apr 04 2007
parent reply Davidl <Davidl 126.com> writes:
how can gif format patent prevent the others from writing a real gif file
Apr 04 2007
parent reply Tyler Knott <tywebmail mailcity.com> writes:
Davidl wrote:
 how can gif format patent prevent the others from writing a real gif file
 
 
 
The GIF format patent (actually a patent on the LZW compression algorithm used by the GIF format) can't prevent anyone from writing a GIF encoder, but it does (or at least it did, before it expired a few years ago) make it illegal to distribute it without paying royalties to Unisys. P.S.: Davidl, could you please try to use better capitalization, punctuation, grammar, and spelling in your posts? It might take a bit longer to type out, but it looks a lot more professional and is much more readable than your current posting style.
Apr 04 2007
parent reply "David B. Held" <dheld codelogicconsulting.com> writes:
Tyler Knott wrote:
 [...]
 P.S.: Davidl, could you please try to use better capitalization, 
 punctuation, grammar, and spelling in your posts?  It might take a bit 
 longer to type out, but it looks a lot more professional and is much 
 more readable than your current posting style.
If I had to guess, I would say that English is not his first language. This is typically given away by the non-standard font. If you look at the domain of his email address, you might get an idea where he's coming from: http://126.com/ Dave
Apr 05 2007
parent reply Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
David B. Held wrote:
 If I had to guess, I would say that English is not his first language. 
 This is typically given away by the non-standard font.  If you look at 
 the domain of his email address, you might get an idea where he's coming 
 from: http://126.com/
Actually, he doesn't use a non-standard font. His header doesn't specify the font in any way except in that he uses charset=gbk, which my Thunderbird tells me means the message encoding is "Chinese Simplified (GBK)". The non-standard font you're seeing is probably the same thing I had the first couple of times I read his posts: Thunderbird has separate font settings for Western/Simplified Chinese/Japanese/Hebrew and lots of others. So the font may already be the same in other newsgroup clients. Anyway, if it annoys you as much as it annoyed me, you can set your Simplified Chinese fonts to the same as Western in the preferences[1] (fixed it for me). [1]: Edit -> Preferences -> Display -> tab Fonts -> button "Fonts..." (on my Linux box, IIRC there may be a different place for the preferences dialog on Windows)
Apr 05 2007
parent Davidl <Davidl 126.com> writes:
:o
Sorry for the wrong encoding which brings you guys so many troubles.
And I now set my encode-set to UTF-8.
Hope now every one is happy :p

 David B. Held wrote:
 If I had to guess, I would say that English is not his first language=
. =
 This is typically given away by the non-standard font.  If you look a=
t =
 the domain of his email address, you might get an idea where he's  =
 coming from: http://126.com/
Actually, he doesn't use a non-standard font. His header doesn't speci=
fy =
 the font in any way except in that he uses charset=3Dgbk, which my  =
 Thunderbird tells me means the message encoding is "Chinese Simplified=
=
 (GBK)".
 The non-standard font you're seeing is probably the same thing I had t=
he =
 first couple of times I read his posts: Thunderbird has separate font =
=
 settings for Western/Simplified Chinese/Japanese/Hebrew and lots of  =
 others. So the font may already be the same in other newsgroup clients=
.
 Anyway, if it annoys you as much as it annoyed me, you can set your  =
 Simplified Chinese fonts to the same as Western in the preferences[1] =
=
 (fixed it for me).


 [1]: Edit -> Preferences -> Display -> tab Fonts -> button "Fonts..." =
=
 (on my Linux box, IIRC there may be a different place for the  =
 preferences dialog on Windows)
Apr 05 2007
prev sibling parent reply Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
Hum, BTW, how about this scenario, which I think is even more complicated:

Suppose there is a GPL project, and a company wants to make a commercial 
project based on the GPL project. GPL states that any derivative work 
must also be GPL. What if to circumvent this, a company packages its 
product into two parts: one that is the derivate work of the GPL 
project, and thus is also under the GPL; and a second part, which *uses* 
the first part, but doesn't know anything about the first part's source 
code?
Some might say that it depends on how the use is (static linking, 
dynamic linking, etc.), but the company can always change the use method 
to a more loose form. For example, if dynamic linking isn't enough to 
prevent GPL propagation (which legally, it still seam unclear whether it 
does), then ultimately what if the second part simply calls the first 
part as an external program?
It seems that in the end the use form isn't enough to determine whether 
the GPL propagates or not.

-- 
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
Apr 07 2007
parent reply Jeff Nowakowski <jeff dilacero.org> writes:
Bruno Medeiros wrote:
 Some might say that it depends on how the use is (static linking, 
 dynamic linking, etc.), but the company can always change the use method 
 to a more loose form.
It is up to the courts and copyright holders to decide the issue. There are no black and white rules with regards to linking. GPL FAQ: http://www.gnu.org/licenses/gpl-faq.html#MereAggregation An ongoing court case, where a GPL chess client was "wrapped": http://www.jinchess.com/ichessu/ -Jeff
Apr 07 2007
parent Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
Jeff Nowakowski wrote:
 Bruno Medeiros wrote:
 Some might say that it depends on how the use is (static linking, 
 dynamic linking, etc.), but the company can always change the use 
 method to a more loose form.
It is up to the courts and copyright holders to decide the issue. There are no black and white rules with regards to linking. GPL FAQ: http://www.gnu.org/licenses/gpl-faq.html#MereAggregation
Yep, that's my question alright, thx.
 An ongoing court case, where a GPL chess client was "wrapped":
 http://www.jinchess.com/ichessu/
 
 -Jeff
Hum, interesting, let's see how that turns out. -- Bruno Medeiros - MSc in CS/E student http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
Apr 09 2007