HNHacker News
TopNewBestAskShowJobs

bugfix-66

501 karma · joined September 24, 2022

A debugging game for hackers: https://BUGFIX-66.com
submissionscomments
bugfix-66··on Ask HN: What can I personally do to fight AGAINST the Copilot class action?
It boggles the mind. I was also in disbelief when I saw this post.
bugfix-66··on Ask HN: License to prohibit training of systems like Microsoft Copilot
Perhaps it could be argued that Copilot was an unexpected development, and the users of GitHub could not possibly have intended to donate all their work to be used anonymously and without attribution?

It's a bit like how non-compete clauses are unenforceable in California. The Copilot theft of intellectual property might be viewed as being too far from anyone's reasonable expectations?

We'll see how the legal battle turns out.

bugfix-66··on Ask HN: What can I personally do to fight AGAINST the Copilot class action?
I think it's you who are in the "vocal minority".

Microsoft Copilot is an abuse of open source. It is perhaps the greatest theft of intellectual property in human history.

We should do everything we can to defeat it.

That said, here is my Request For Comments regarding a slightly modified BSD 2-Clause License explicitly prohibiting Copilot-style use:

https://news.ycombinator.com/item?id=33458374

We need to do everything we can to defend open source software against Microsoft and the like.

bugfix-66··on Ask HN: License to prohibit training of systems like Microsoft Copilot
I use MIT- and BSD-licensed code at work in a closed-source commercial system. The documentation for our system acknowledges our use of the open-source code, and I'm sure the authors are proud to be part of our codebase (with attribution). That's the use-case.
bugfix-66··on Ask HN: License to prohibit training of systems like Microsoft Copilot
Well, what are our options?

What else can we do to protect ourselves from Microsoft Copilot?

bugfix-66··on Ask HN: License to prohibit training of systems like Microsoft Copilot
Unfortunately, I cannot find support for my claim that Microsoft excludes GPL-licensed code.
bugfix-66··on Ask HN: License to prohibit training of systems like Microsoft Copilot
Law-abiding companies like Microsoft won't knowingly violate a license.

My understanding is that Microsoft makes an effort to exclude all GPL software from its training. (Is this true?)

What we need is a more permissive MIT- or BSD-style license that defeats Copilot.

We just need to convince law-abiding companies that they must not use the code.

bugfix-66··on We've filed a lawsuit against GitHub Copilot
The BSD license also controls "use", not just "redistribution":

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
  are met:
That's word-for-word BSD license.

The only change I made is adding clause 3:

  3. Use in source or binary forms for the construction or operation
     of predictive software generation systems is prohibited.
bugfix-66··on Ask HN: License to prohibit training of systems like Microsoft Copilot
We need a more permissive MIT- or BSD-style license.

The GPL is good for some purposes, but too restrictive for others.

bugfix-66··on We've filed a lawsuit against GitHub Copilot
The license conditionally permits (i.e., controls) "redistribution and use in source and binary forms".

I think we can constrain use with the third clause.

My question is, how should we word that clause?

bugfix-66··on We've filed a lawsuit against GitHub Copilot
If the GPL can defeat Copilot, we need an more permissive MIT/BSD-style license to do the same.
bugfix-66··on We've filed a lawsuit against GitHub Copilot
It's literally the standard BSD 2-Clause License, word for word, with an additional third clause:

  3. Use in source or binary forms for the construction or operation
     of predictive software generation systems is prohibited.
Hardly nonsense, but obviously you aren't equipped to judge. More about the BSD licenses:

https://en.m.wikipedia.org/wiki/BSD_licenses

bugfix-66··on We've filed a lawsuit against GitHub Copilot
Ask HN: I want to modify the BSD 2-Clause Open Source License to explicitly prohibit the use of the licensed software in training systems like Microsoft's Copilot (and use during inference). How should the third clause be worded?

  The No-AI 3-Clause Open Source Software License

  Copyright (C) <YEAR> <COPYRIGHT HOLDER>

  All rights reserved.

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
  are met:

  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.

  3. Use in source or binary forms for the construction or operation
     of predictive software generation systems is prohibited.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
https://bugfix-66.com/f0bb8770d4b89844d51588f57089ae5233bf67...
bugfix-66··on Flexible Varint/VLQ: Variable-length bytewise integer encodings in Go
And the decoder:

https://bugfix-66.com/1efa93a5eb0cc12b3de7cd1dab8e471a2cc95e...

This is a generalization (and improvement on!) the typical "high-bit" varint encoding, which is simply an specialization with base 128 (used in git, for example).

See https://en.m.wikipedia.org/wiki/Variable-length_quantity

bugfix-66··on C++ is the next C++
The successor to C must be designed for a world where it's typical for an application to use dozens of CPU cores. This is the main reason we need a successor to C.

Garbage collection becomes almost a necessity when you have enormous concurrency and parallelism. I wonder whether you have experience writing such programs with pthread and malloc/free?

bugfix-66··on C++ is the next C++
The successor to C is Go.

Go inherits from Oberon through Robert Griesemer, and from C through Ken Thompson (father of Unix) and Rob Pike (Bell Labs).

I don't bother with C anymore, except in small parts of code where every cycle counts. Just about anything you write in C can be mechanically translated to Go.

C++ shows us what NOT to do. I've used C++ for most of my professional programming career and it's simply an impediment. Huge waste of time and energy.

bugfix-66··on Rise of generative AI will be comparable to the rise of CGI in the early 90s
Where are you going to get the training data, once copyright law is amended to protect artists from this new kind of intellectual property theft?

Without enormous training data from human victims, your "Artificial Intelligence" doesn't exist.

In the end, your "AI" is just huge interpolator, using matrix multiplications and max() or gelu() to interpolate the work of real intelligence: the human artists.

Once it's illegal, only criminals will use it. No first-world company will break the law to save money on artists. You think anyone who matters will secretly use a neural net trained in violation of copyright? Think again.

I say this as a person who writes GPU BLAS kernels professionally at a company you've heard of. I directly profit from this theft. But I also know it's wrong.

bugfix-66··on An unwilling illustrator found herself turned into an AI model
The companies that pay artists' salaries won't be willing to secretly break the law to save money.

Microsoft won't legally be able to continue its abuse of GitHub. Copilot will be dead. OpenAI and Stability will not legally be able to profit from large-scale intellectual property theft. All these violations will end.

These are the most significant digits. The residual amateur piracy doesn't matter. It doesn't matter if random guy gets some leet neural net warez and uses it to make his desktop wallpaper.

bugfix-66··on An unwilling illustrator found herself turned into an AI model
There's nothing inevitable about it. Laws exist to protect people.

It's a bit like saying we can't stop music piracy, now that Napster exists.

Remember the naive rallying cry among those who thought everyone should have the right to all music, without any compensation for the artist?

"Information wants to be free!" (https://www.theguardian.com/music/2013/feb/24/napster-music-...)

Napster was a peer-to-peer file sharing application. It originally launched on June 1, 1999, with an emphasis on digital audio file distribution. ... It ceased operations in 2001 after losing a wave of lawsuits and filed for bankruptcy in June 2002.

Use of the output of systems like Copilot or Stable Diffusion becomes a violation of copyright.

The weight tensors are illegal to possess, just like it's illegal to possess leaked Intel source code. The weights are like distilled intellectual property. You're distributing an enormous body of other people's work, to enable derivative work without attribution? Huge harm to society, make it illegal.

If you use the art in your product, on your website, etc., you risk legal action. Just like if I publish your album on my website. Illegal.

The companies that train these systems can't distribute them without risking legal action. So they won't do it. It's expensive to train these models. When it's illegal, the criminals will have to pay for the GPU time.

It will always exist in the black-market underground, but the civilized world makes it illegal.

That's where this is going, I hope. Best case scenario.

bugfix-66··on An unwilling illustrator found herself turned into an AI model
It's a bit like saying we can't stop music piracy, now that Napster exists.

Napster was a peer-to-peer file sharing application. It originally launched on June 1, 1999, with an emphasis on digital audio file distribution. Audio songs shared on the service were typically encoded in the MP3 format. It was founded by Shawn Fanning, Sean Parker, and Hugo Sáez Contreras. As the software became popular, the company ran into legal difficulties over copyright infringement. It ceased operations in 2001 after losing a wave of lawsuits and filed for bankruptcy in June 2002.

Use of the output of systems like Copilot or Stable Diffusion becomes a violation of copyright. The weight tensors are illegal to possess, just like it's illegal to possess leaked Intel source code.

If you use the art in your product, on your website, etc., you risk legal action.

The companies that train these systems can't distribute them without risking legal action. So they won't do it. It's expensive to train these models.

It will always exist in the black-market underground, but the civilized world makes it illegal.

That's where this is going, I hope. Best case scenario.

bugfix-66··on An unwilling illustrator found herself turned into an AI model
Systems like Copilot and Dall-E and so on turn their training data into anonymous common property. Your work becomes my work.

This may appeal to naive people (students, hippies, etc.), for whom socialist/communist ideas are attractive, but it's poison in the real world because it eliminates the reward system that motivates most creative work. People work hard for credit or respect, if they're not working for money.

Ask yourself, why does the MIT License (https://opensource.org/licenses/MIT) contain the following text?

  Copyright <YEAR> <COPYRIGHT HOLDER>

  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
These systems are a mechanism that can regurgitate (digest, remix, emit) without attribution all of the world's open code and all of the world's art.

With these systems, you're giving everyone the ability to plagiarize everything, effortlessly and unknowingly. No skill, no effort, no time required. No awareness of the sources of the derivative work.

My work is now your work. Everyone and his 10-year old brother can "write" my code (and derivatives), without ever knowing I wrote it, without ever knowing I existed. Everyone can use my hard work, regurgitated anonymously, stripped of all credit, stripped of all attribution, stripped of all identity and ancestry and citation.

It's a new kind of use not known (or imagined?) when the copyright laws were written.

Training must be opt in, not opt out.

Every artist, every creative individual, must EXPLICITLY OPT IN to having their hard work regurgitated anonymously by Copilot or Dall-E or whatever.

If you want to donate your code or your painting or your music so it can easily be "written" or "painted", in whole or in part, by everyone else, without attribution, then go ahead and opt in. Most people aren't so totally selfless.

But if an author or artist does not EXPLICITLY OPT IN, you can't use their creative work to train these systems.

All these code/art washing systems, that absorb and mix and regurgitate the hard work of creative people must be strictly opt in.

I say this as a person who writes deep-learning parallel linear algebra kernels professionally.

We've crossed a line here.

bugfix-66··on The ancient Finnish predictor data compressor. Smallest compressor ever?
Cheers!
bugfix-66··on A Tour of C++ (Third edition)
Why are people so delicate today?

We're getting so soft and so fragile, how does it end?

“Hard times create strong men, strong men create good times, good times create weak men, and weak men create hard times." (G. Michael Hopf)

bugfix-66··on The ancient Finnish predictor data compressor. Smallest compressor ever?
This was on the todo list: https://en.m.wikipedia.org/wiki/XXTEA

From one of the minds that brought you the Burrows-Wheeler transform. The problem is that the chosen plaintext attack is too cheap, so it's not interesting.

But XXTEA is a historical curiosity like the Finnish predictor compressor, so maybe!

bugfix-66··on The ancient Finnish predictor data compressor. Smallest compressor ever?
Your fix is wrong, so the site rejects it.

Go doesn't do integer type conversions implicitly, to avoid the implicit-type-casting bugs endemic to C. Go (thankfully) doesn't allow an implicit conversion from int to byte. You must do the cast explicitly.

So you would have to say

  to = append(to, byte(ctrl))
and that's correct.

The site builds and executes the code you submit, and any correct solution is accepted.

bugfix-66··on A Tour of C++ (Third edition)
I have no love for C++.
bugfix-66··on A Tour of C++ (Third edition)
And then I said "Happy Halloween".

The point was that being a C++ programmer is like being part of a horror movie.

I say that as a person who uses C++ in my day job. It's a nightmare.

bugfix-66··on The ancient Finnish predictor data compressor. Smallest compressor ever?
The site is not finished yet, but each algorithm is interesting on its own.

Look at my submission history:

https://news.ycombinator.com/submitted?id=bugfix-66

Really remarkable tiny algorithms like Martin Rem's almost-forgotten Union-Find, the tiny bitwise linear string search from approximate-grep, hash treaps, Quicksearch (the fastest sublinear string search in practice), a simple state-of-the-art arithmetic coder/decoder, space-filling curves, the Shortest Path Faster algorithm, etc.

Next week I'll publish a fantastic generalization of bytewise integer encoding (like Varint or git's VLQ but better).

I'll do a Show HN for the site itself some time next year.

bugfix-66··on The ancient Finnish predictor data compressor. Smallest compressor ever?
You don't read code to understand it?

You can't understand a small block of code without running it in a debugger?

When you read code in a book, how do you understand it?

bugfix-66··on The ancient Finnish predictor data compressor. Smallest compressor ever?
No, a programmer should be able to read a small piece of code, understand the algorithm (especially given a summary in English), and understand what's wrong (a small, simple mistake).

Some people will be better at this than others. Programming (algorithms, etc.) is not something everyone is equally good at. I wrote this puzzle after reading the x86 assembly original, which I believe was written in the 1980's. I never executed the original code, except in my mind, but I know how it works.

← PreviousPage 4 of 7Next →