• 0 Posts
  • 3 Comments
Joined 1 year ago
cake
Cake day: May 8th, 2023

help-circle
  • I looked into this previously, and found that there is a major problem for most users in the Terms of Service at https://codeium.com/terms-of-service-individual.

    Their agreement talks about “Autocomplete User Content” as meaning the context (i.e. the code you write, when you are using it to auto-complete, that the client sends to them) - so it is implied that this counts as “User Content”.

    Then they have terms saying you licence them all your user content:

    “By Posting User Content to or via the Service, you grant Exafunction a worldwide, non-exclusive, irrevocable, royalty-free, fully paid right and license (with the right to sublicense through multiple tiers) to host, store, reproduce, modify for the purpose of formatting for display and transfer User Content, as authorized in these Terms, in each instance whether now known or hereafter developed. You agree to pay all monies owing to any person or entity resulting from Posting your User Content and from Exafunction’s exercise of the license set forth in this Section.”

    So in other words, let’s say you write a 1000 line piece of software, and release it under the GPL. Then you decide to trial Codeium, and autocomplete a few tiny things, sending your 1000 lines of code as context.

    Then next week, a big corp wants to use your software in their closed source product, and don’t want to comply with the GPL. Exafunction can sell them a licence (“sublicence through multiple tiers”) to allow them to use the software you wrote without complying with the GPL. If it turns out that you used some GPLd code in your codebase (as the GPL allows), and the other developer sues Exafunction for violating the GPL, you have to pay any money owing.

    I emailed them about this back in December, and they didn’t respond or change their terms - so they are aware that their terms allow this interpretation.


  • Programming is the most automated career in history. Punch cards, Assembler, Compilers, Linkers, Keyboards, Garbage Collection, Type Checkers, Subroutines and Functions, Classes, Macros, Libraries (of increasingly higher-level abstractions), Build Scripts, CI/CD - those are all automation concepts that do things that theoretically a programmer could have done manually. To build all the software we build now would theoretically be possible without any automation - but it would probably require far more programmers than there are people on earth. However, because better tech leads to people doing more with the same, in practice the number of programmers has grown with time as we’ve just built more complex software.


  • Having to have a trustworthy notary interactively as part of the protocol during the TLS request seems like it shuts out a lot of applications.

    I wonder if it could be done with zk-STARKs, with the session transcript and ephemeral keys as secret inputs, and a CA certificate as a public input, to produce a proof of the property without the need for the notary. That would then mean the only roles are TLS server, prover, and verifier, with no interactive dependency between the prover and verifier (i.e. the prover could generate the proof first, that can non-interactively verified at any time later by any number of verifiers).