News for hackers. Stuff that matters.
Re:Copilot regurgitating Quake code, including sweary comments by fragmede on Friday July 02, 2021 @02:21PM (#27714934)
Do you also block stack overflow and give guidance to never copy code from that website or elsewhere on the Internet? I'm legitimately curious - my org internally officially denounces the copying of stack overflow snippets. Thankfully for my role it's moot as I mostly work with an internal non-public language, for better or worse, and I have no idea how well that's followed elsewhere in the wider company.
Re:Copilot regurgitating Quake code, including sweary comments by gunapologist99 on Friday July 02, 2021 @02:38PM (#27715138)
Apples and oranges: Stack overflow snippets are explicitly granted under a permissive license, as long as you attribute.

https://stackoverflow.com/help/licensing

It appears that the code that copilot is using is created under a huge variety of licenses, making it risky.

On the other hand, a small snippet in a function that is derived from many existing pieces of other code may fall under fair use, even if it is not under an open source license of some sort.

Re:Copilot regurgitating Quake code, including sweary comments by throw_2021-07 on Friday July 02, 2021 @08:17PM (#27718325)
Stack Overflow and Copilot are similar. Usage of both routinely violates licenses. Stack Overflow content is licensed under CC-BY-SA. Terms [1]:

* Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.

* ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.

In over a decade of software engineering, I've seen many reuses of Stack Overflow content, occasionally with links to underlying answers. All Stack Overflow content use I've seen would clearly fail the legal terms set out by the license.

I suspect Copilot usage will similarly fail a stringent interpretation of underlying licenses, and will similarly face essentially no enforcement.

[1] https://creativecommons.org/licenses/by-sa/4.0/

Re:Copilot regurgitating Quake code, including sweary comments by lumost on Friday July 02, 2021 @09:30PM (#27718618)
The difference here is that it's hard to sue a company for sporadic, difficult to track down usages of SO content written by their own engineers.

One can now trivially coerce copilot to regurgitate copyrighted content without attribution. Copilot's basic premise violates the CC-BY-SA terms, and this will continue until no party can demonstrate a viable method of extracting copyrighted code.

There is now a single party backed by a company with a 2 Trillion dollar market cap that can be sued for flagrant copyright violations.

Re:Copilot regurgitating Quake code, including sweary comments by moyix on Friday July 02, 2021 @10:20PM (#27718864)
Surely you would have to sue the people using the tool to produce verbatim copies of code, not the creator of the tool?
Re:Copilot regurgitating Quake code, including sweary comments by Spivak on Friday July 02, 2021 @10:40PM (#27718945)
I would think it's more complicated when the tool is the thing spitting out the verbatim copies of code. Both the tool and the developer are independently distributing copyrighted code that neither of them have the rights to distribute.
Re:Copilot regurgitating Quake code, including sweary comments by lumost on Friday July 02, 2021 @10:44PM (#27718958)
why? one could easily claim that if the tool is reproducing the contents of copyrighted works they are a "distributor". Subjecting the makers of the tool/distributor too much higher copyright infringement claims.
Re:Copilot regurgitating Quake code, including sweary comments by throw_2021-07 on Saturday July 03, 2021 @07:16AM (#27720822)
Let's differentiate legal risk by the party it affects:

* Companies with engineers using Copilot. Risk here is negligible, like that of copying Stack Overflow answers, or any code that isn't under a truly permissive license like CC0 [1]. Prohibiting use of Copilot in a company based on this risk has no merit.

* GitHub and Microsoft. Risk for them is higher yet worthwhile. Copilot is more like Stack Overflow than Napster. Affected copyright holders added their works to GitHub and agreed to their terms, so GitHub has a legal basis to show that content in Copilot. In terms of facilitating copyright infringement, far more violations occur by engineers manually searching and copying code on GitHub; lawsuits against GitHub due to that would be dismissed. Determining provenance is slightly harder in Copilot than in search, but GitHub could minimize risk to itself by noting in Copilot terms that users must review Copilot's suggestions for underlying license concerns. Engineers rarely will -- they routinely violate licenses of Stack Overflow and code copied from elsewhere -- but that shifts responsibility from GitHub, and legal risk to companies using Copilot remains negligible.

[1] https://creativecommons.org/share-your-work/public-domain/cc...

Re:Copilot regurgitating Quake code, including sweary comments by aasasd on Friday July 02, 2021 @06:54PM (#27717872)
In addition to other licensing gotchas, a ton of SO snippets are copied wholesale from elsewhere—docs or blog posts. So it's pretty likely that the poster can't license them in the first place because they never checked the source's license requirements.
Re:Copilot regurgitating Quake code, including sweary comments by rorykoehler on Friday July 02, 2021 @04:20PM (#27716389)
It just seems bizarre that this wasn’t flagged internally at Microsoft. They have tons of compliance staff.
Re:Copilot regurgitating Quake code, including sweary comments by mustacheemperor on Friday July 02, 2021 @05:35PM (#27717213)
Maybe we’ll even get a sneak peak at Windows 11’s source code. Time to start writing a Win32 API wrapper and see what the robot comes up with!
Re:Copilot regurgitating Quake code, including sweary comments by snicker7 on Friday July 02, 2021 @04:35PM (#27716546)
That's because Microaoft doesn't dare use this for production code (presumably).

They are 100% okay with letting their competitors get into legal hot water.

Re:Copilot regurgitating Quake code, including sweary comments by lumost on Friday July 02, 2021 @09:31PM (#27718623)
isn't it copilot's liability for "distributing" the copyrighted code?
Re:Copilot regurgitating Quake code, including sweary comments by rorykoehler on Friday July 02, 2021 @04:39PM (#27716581)
It’s surely a bit of a liability grey area?
Re:Copilot regurgitating Quake code, including sweary comments by ngcazz on Friday July 02, 2021 @04:37PM (#27716563)
Could bet they baked in the legal fees and are taking a calculated risk
Re:Copilot regurgitating Quake code, including sweary comments by comex on Friday July 02, 2021 @03:52PM (#27716014)
Except that CC-BY-SA is not a permissive license; the SA part is a form of copyleft. It's just that nobody enforces it. From the text [1]:

- "[I]f You Share Adapted Material You produce [..] The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License."

- "Adapted Material means material [..] that is derived from or based upon the Licensed Material" (emphasis added)

- "Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.'

- "You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply."

A program that includes a code snippet is unquestionably a derived work in most cases. That means that if you include a Stack Overflow code snippet in your program, and fair use does not apply, then you have to license the entire program under the CC-BY-SA. Alternately, you can license it under the GPLv3, because the license has a specific exemption allowing you to relicense under the GPLv3.

For open source software under permissive licenses, it may actually be okay to consider the entire program as licensed under the CC-BY-SA, since permissive licenses are typically interpreted as allowing derived works to be licensed under different licenses; that's how GPL compatibility works. But you'd have to be careful you don't distribute the software in a way that applies any Effective Technological Measures, aka DRM. Such as via app stores, which often include DRM with no way for the app author to turn it off. (It may actually be better to relicense to the GPL, which 'only' prohibits adding additional terms and conditions, not the mere use of DRM. But people have claimed that the GPL also forbids app store distribution because the app store's terms and conditions count as additional restrictions.)

For proprietary software where you do typically want to impose "different terms or conditions", this is a dead end.

Note that copying extremely short snippets, or snippets which are essentially the only way to accomplish a task, may be considered fair use. But be careful; in Oracle v. Google, Google's accidental copying of 9 lines of utterly trivial code [2] was found to be neither fair use nor "de minimis", and thus infringing.

Going back to Stack Overflow, these kinds of surprising results are why Creative Commons itself does not recommend using its licenses for code. But Stack Overflow does so anyway. Good thing nobody ever enforces the license!

See also: https://opensource.stackexchange.com/questions/6777/can-i-us...

[1] https://creativecommons.org/licenses/by-sa/4.0/legalcode

[2] https://majadhondt.wordpress.com/2012/05/16/googles-9-lines/

Re:Copilot regurgitating Quake code, including sweary comments by wrs on Friday July 02, 2021 @04:31PM (#27716509)
Yes. In a past life, after researching the situation, we had to find and remove all the code copied from Stack Overflow into our codebase. I can’t fathom why SO won’t fix the license.

What makes it even worse is if you try to do the right thing by crediting SO (the BY part) you’re putting a red flag in the code that you should have known you have to share your code (the SA part).

Re:Copilot regurgitating Quake code, including sweary comments by Gaelan on Saturday July 03, 2021 @07:43PM (#27725964)
> I can’t fathom why SO won’t fix the license.

They tried to relicense code snippets to MIT a while back, it was a big mess.

Re:Copilot regurgitating Quake code, including sweary comments by mediaman on Friday July 02, 2021 @02:28PM (#27715014)
Who really copies stack overflow snippets verbatim? It's usually just easier to refer to it for help figuring out the right structure and then adapt it for your own needs. Usually it needs customization for your own application anyway (variables, class instances, etc).
Re:Copilot regurgitating Quake code, including sweary comments by blooalien on Friday July 02, 2021 @04:45PM (#27716652)
I don't think I've ever copied code directly from any of the Stack* sites. I generally read all the answers (and comments) and then use what I learn to write my own (hopefully better) code specific to my needs.
Re:Copilot regurgitating Quake code, including sweary comments by corobo on Friday July 02, 2021 @05:36PM (#27717223)
Yeah my experience has always been "ohhh that solution makes sense" then I go write it myself

If nothing else this whole copilot thing is helping ease some chronic imposter syndrome

Re:Copilot regurgitating Quake code, including sweary comments by bartread on Friday July 02, 2021 @05:11PM (#27716928)
Ha! Well, I think a lot of people copy code from StackOverflow verbatim once at least - including me.

Of course it turned out the code I'd blindly inserted into my project contained a number of bugs. In one or two cases, quite serious ones. This, even though it was the accepted answer.

It was probably more effort to fix up the code I'd copy pasta'd than write it from scratch. Since then I've never copied and pasted from StackOverflow verbatim.

Re:Copilot regurgitating Quake code, including sweary comments by canadev on Friday July 02, 2021 @03:14PM (#27715604)
Yeah! I've uh, ... never copied a bit of code into my repo verbatim, right?

yeah right. I wish.

(Not saying every dev does this)

Re:Copilot regurgitating Quake code, including sweary comments by TillE on Friday July 02, 2021 @04:01PM (#27716129)
I've copied plenty of Microsoft sample code verbatim, because the Win32 API sucks and their samples usually get the error handling right.

But, I can't think of a single scenario where I've copied something from Stack Overflow. I'm searching for the idea of how to solve a problem, and typically the relevant code given is either too short to bother copying, or it's long and absolutely not consistent with how I want to write it.

Re:Copilot regurgitating Quake code, including sweary comments by Noumenon72 on Friday July 02, 2021 @05:49PM (#27717367)
"Too short to bother copying"? I copy single words of text to avoid typing and typos. I would never type out even a single line of code when I could paste and edit.
Re:Copilot regurgitating Quake code, including sweary comments by vanous on Friday July 02, 2021 @10:51PM (#27718989)
> "Too short to bother copying"? I copy single words of text to avoid typing and typos. I would never type out even a single line of code when I could paste and edit.

Very honest suggestion: learn how to touch type. You can still copy if needed, but your typed input will be much faster.

Re:Copilot regurgitating Quake code, including sweary comments by Noumenon72 on Saturday July 03, 2021 @01:02AM (#27719481)
I'm somewhere between 45-75 wpm. But Ctrl+C Ctrl+V can type 300wpm!

Typing when you could paste is like having that Github Copilot put the right sentence right in front of you and you decide to type over it instead. Not only does it feel like wasted and robotic effort, typing everything leads to RSI.

I'm not sure why people disagree. Another symptom is that I insist on aliases for everything while others type out all the commands every time. Maybe I get distracted by the words when I type and lose my train of thought?

Re:Copilot regurgitating Quake code, including sweary comments by Retric on Saturday July 03, 2021 @10:23AM (#27721803)
You need to highly the correct test first and move the curser to the correct location to paste text. I bet you can type 123123 several times faster than you can highlight that text in this comment and past it into a reply.
Re:Copilot regurgitating Quake code, including sweary comments by ec109685 on Saturday July 03, 2021 @03:37PM (#27724157)
Double click to select a word is fast, and then you are in per word selection mode.
Re:Copilot regurgitating Quake code, including sweary comments by Retric on Saturday July 03, 2021 @05:06PM (#27724917)
Sure, move mouse to text, double click, ctrl-c, ctrl-v it’s still slower than touch typing one word.
Re:Copilot regurgitating Quake code, including sweary comments by alisonkisk on Friday July 02, 2021 @07:31PM (#27718108)
That's fair use.
Re:Copilot regurgitating Quake code, including sweary comments by dvfjsdhgfv on Thursday July 08, 2021 @06:04AM (#27770075)
Same here. I copy boilerplate code for new projects etc. regularly. But I don't remember copying anything verbatim from SO. Function, argument and variable names rarely fit the scheme used in the particular project I'm working on at that moment and usually I do a better job at adapting the code thinking what I'm doing rather than just copy and paste and then wonder what went wrong.
Re:Copilot regurgitating Quake code, including sweary comments by baud147258 on Friday July 02, 2021 @06:00PM (#27717470)
I think I did a few times, usually for languages that I wasn't going to spend to much time with (so no benefits in figuring how to do it from the answers) and for specific tasks.
Re:Copilot regurgitating Quake code, including sweary comments by samtheprogram on Friday July 02, 2021 @02:35PM (#27715092)
Anything posted to Stack Overflow has a specific (Creative Commons IIRC) license associated with it. The same is not true of GitHub Copilot, and in fact their FAQ doesn’t specify a license at all, probably because they are technically unable to since it is trained on a wide variety of code from differing licenses (and code not written by a human is currently a grey area for copyright). The FAQ simply says to use it at your own risk.
Re:Copilot regurgitating Quake code, including sweary comments by summerlight on Friday July 02, 2021 @05:31PM (#27717170)
Google (and most of other big techs I guess?) also explicitly prohibit employees from use of stack overflow code snippets.
Re:Copilot regurgitating Quake code, including sweary comments by Noumenon72 on Friday July 02, 2021 @05:52PM (#27717387)
I tried Googling this and couldn't find it. I also don't want to believe it because it seems like the world suddenly turned into an apocalyptic hellscape with no place for developers like me. Do you have a source?
Re:Copilot regurgitating Quake code, including sweary comments by summerlight on Saturday July 03, 2021 @03:23PM (#27724064)
First, I work at Google and its onboard training explicitly mentions Stack Overflow as a forbidden example due to CC-BY-SA license (SA is the problematic part). The following link is the official reference.

https://opensource.google/docs/thirdparty/licenses/#restrict...

Re:Copilot regurgitating Quake code, including sweary comments by xen0 on Saturday July 03, 2021 @03:59AM (#27720077)
I work at Google.

SO definitely comes up during copyright/IP training.

The basic idea is 'reading SO answers to learn how to solve a problem is fine, copying/transcribing the code is not'.

Google is quite paranoid re. copyright and licenses.

Re:Copilot regurgitating Quake code, including sweary comments by jhugo on Saturday July 03, 2021 @12:15AM (#27719305)
I don't have a source to link, but I've also been told this by someone who works at Google. Is copy-pasting stuff verbatim from SO really that much of a thing? I use SO plenty, but have never considered taking anything verbatim.
Re:Copilot regurgitating Quake code, including sweary comments by ljm on Friday July 02, 2021 @09:16PM (#27718569)
That's actually an attack vector: mirror SO using their open-sourced DB and inject malware into the suggestions, or change the text before it enters the clipboard. People blindly copy/pasting aren't going to notice.