1. 16

    That said, a workflow based on Github (or similar) has the advantage of first-class CI, cleaner reviews, and other intricate project settings (like teams, etc.). I’m glad my own projects are on Github.

    And inferior quality patches and careless code review.

    Github does quite a bit of work to hide patches and commit messages. As a result, individual commits and their messages tend to be rather bad. The emphasis is to instead review the entire diff of the whole PR as a whole.

    When you email a patch, the patch itself, the commit, that’s what becomes the object of discussion. Your commit message is then an email message designed to convince mailing list readers why the change should be accepted.

    The end result is a much cleaner history where each commit embodies the result of a discussion and each message summarises the argument that promoted that diff into a commit.

    Here is final form of the code, after being nudged in various directions by maintainers:

    And that’s what mailing list discussion does.

    The easy “merge” button you click on github instead discourages this sort of discussion.

    1. 8

      I think it has less to do with the tools and more with the people involved in the project. I can create messy commits with patch files and super nice commits with github (or other forges). It depends on how you use the tools.

      You also completely ignore the CI aspect, which I believe is just as important and a lot harder to do in a lose mailing list development style.

      1. 4

        The tools can be used to do either thing, but the tools encourage a particular direction.

        1. 1

          I think the truth is that there are few mailing list based projects because it is essentially gatekeeping and very hard to get into. I can write perfectly fine quality software without ever having to worry about email quoting or html vs. plain text and whatever else comlex requirements there are because the software devs are stuck in the 90ies. Email is not a good tool to develop software and I think everyone who believes otherwise has essentially a mild form of Stockholm syndrom. The whole “rite of passge” thing comes to mind too. There are better ways.

          There are infinitely more projects on github than ones that use mailing lists, so of course you will find sloppy ones. But the tools that github (or other forges) give you, allow you to do a lot more (CI, package registry etc.), have a low barrier of entry and are user friendly.

          1. 3

            I think the truth is that there are few mailing list based projects because it is essentially gatekeeping and very hard to get into

            And the truth is that github PRs tend to produce unreadable history because nobody wants to write history, they just want to write code. If you want to fling accusations of Stockholm syndrome without understanding what is good about email-based workflows, I’ll do the same about Github: they convinced everyone to do superficial and ultimately useless code review, and everyone who likes Github has some mental problem, just like you accused us who like email.

            Or if we agree that history and commit messages are not worth writing, like the Github UI encourages you to think of, then we need a better tool that isn’t centred on writing commit messages and patches. We need something better than git.

            1. 1

              And the truth is that github PRs tend to produce unreadable history because nobody wants to write history, they just want to write code.

              Github has pull request templates that one can enforce on a project. Nothing stops anyone from using those. I fail to understand how an email based flow, where I have to rely on someone with commit/push rights to get my patch in makes this better. The fact that this is using email does literally nothing to enforce that.

              I’ll do the same about Github: they convinced everyone to do superficial and ultimately useless code review, and everyone who likes Github has some mental problem, just like you accused us who like email.

              I think the major contribution of GH is that code reviews are now the norm and not an exceptional thing that people do. It also has made it infinitely easier for people to contribute to a project. You keep on ignoring how high the barrier for email based flows is.

              1. 3

                PR templates on Github are not commit templates. My complaint with Github is that people write unreadable individual commits which produces useless history. Commit messages like “addressing issues from code review” and commits themselves like these are useless, because the only way to know what happened with such a project is to check associated PRs. Github tries to make commits useless and only focusses on PRs. You can’t just read the git history because Github tends to produce useless history. It makes tools like git blame very hard to use.

                And like I said, either tool can do either thing. You can have CI with email workflows. You can write clean commits with github. What email encourages, though, Github discourages, and vice versa.

                You think we like email just because we’re old, crotchety elitist assholes who can’t get with the times, but no: we like email because it produces a VCS history that you can refer to later to know why the code is the way it is. It’ll tell you what the person was thinking about, in detail, for each line written. With a good history git blame becomes source-level documentation for each line of code in your codebase.

        2. 3

          You also completely ignore the CI aspect, which I believe is just as important and a lot harder to do in a lose mailing list development style.

          When we receive a PR for some of the projects that I work on on GitHub, CI tells us:

          • Does it match the style as enforced by clang-format?
          • Does it fail to build on any of our supported platforms?
          • Does it introduce any test regressions on any of the supported platforms?
          • Do the new tests that it adds introduce any failures?

          This means I don’t need to care about formatting-related bits of the review and I don’t need to care about functional correctness for anything that’s tested. I can focus on things like:

          • Does it pick sensible algorithms / data structures that will scale the way we want?
          • What are the corner cases that the tests don’t cover? If they’re easy to test, can we add a test for them? If they’re not, I need to carefully review the code paths that they’d hit.
          • Does it introduce new APIs that don’t fit with the rest of the project / would be difficult to support long-term?
          • Does it duplicate any code that should be factored out?

          These are the things that you really need a human for and they’re the things that I can focus on with GitHub-style PRs. With mailing-list ones, unless you’ve managed to automate things based on email triggers, people generally have to cover a lot of the related things.

          1. 1

            When we receive a PR for some of the projects that I work on on GitHub, CI tells us:

            You can have that with email too, Mercurial uses email-based development and there are buildbots running CI.

            Sure, it’s not maintained by github, but there isn’t anything specifically anti-CI about email, other than being more of a pain to setup than github.

            1. 2

              Sourcehut runs CI on mailing lists automatically, even.

        3. 1

          Doesn’t github’s squash-and-merge option give the same behavior as described in the blog post with git diff branch1 branch2?

        1. 5

          I’m surprised that the patch was added as an attachment. I always found that the best part of the email workflow was commenting on the latches inline.

          1. 5

            Also surprised they used git diff instead of git format-patch, and also surprised that they didn’t use git send-email. I wonder if this is just “how I happened to submit patches to Emacs” rather than “the recommended way to submit patches to Emacs”.

            1. 2

              I think this is because Emacs mail clients display text attachments inline anyway. The replies to patches make it seem like this might be the case:

              https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg00502.html

            1. 21

              +1 from me for the move to “staging”.

              The status quo is a mess: “the index” is selected using --cached. Where’s the logic in that!?

              1. 7

                For at least four or five years, --staged is a synonym for --cached. I was surprised to see that --cached is not already deprecated.

                1. 2

                  Linus called it the cache. That’s the logic.

                1. 2

                  It always upsets me that 1 isn’t prime.

                  1. 7

                    It’s just a convention. It would make a bunch of theorems annoying to state if 1 were prime.

                    1. 3

                      “1 is a prime” can be the new “tau is superior to pi”.

                      On a more serious note, I read a bit about this and apparently for a long time 1 wasn’t even considered a number: https://blogs.scientificamerican.com/roots-of-unity/why-isnt-1-a-prime-number/

                      1. 2

                        The current ad-hoc definition of a prime is of a natural number with exactly two distinct positive natural divisors. It appeared to be convenient so it was normalized this way about one century ago (but you can still find very old books citing 1 as the first prime number).

                        1. 2

                          2 being prime is pretty disappointing as well.

                          1. 1

                            1 is only divisible by 1 and itself, but then considering it as prime will destroy “sieve of eratosthenes”

                          1. 39

                            If this is trained on copyleft code under CDDL, CC-By-SA, GPL, etc then presumably the code it outputs would be a derived work, as would the code you use it in?

                            Most code is licensed to impose some restrictions on use & distribution, from retaining copyright messages to patent indemnification. I wonder how that was overcome here.

                            Worst case it’s a really interesting machine learning copyright case study.

                            1. 10

                              Would it be reasonable to say that anybody who unknowingly writes code that is similar to copyleft code that they’ve at some point read is producing a derived work? I realize it’s not exactly the same scenario, but presuming the AI consumes and transforms the original work in some fashion and doesn’t just copy it then it seems that it wouldn’t constitute a derived work by the same measure.

                              1. 10

                                The FSF told us that when we’re working on Octave, do not read Matlab source code at all, much of which is available for inspection, and do not use Matlab at all either. They in effect told us to do clean-room reverse engineering. Someone else could run code on Matlab and tell us what Matlab did and then we could try to replicate it in Octave, but it had to be a different person, and they had to just tell us what happened. Using Matlab documentation to implement Octave code was also considered safe.

                                Yes, copyright cases have been lost over people being told that their derivative work is very similar and was produced with knowledge of the copyrighted work. I’m thinking about musical riffs in particular. Overtly stating you’re reading copyrighted work to produce derivative work seems to put github in weird legal waters, but I assume they have lots of lawyers that told them otherwise, so this is probably going to be okay, or they’re ready to fight off the smalltime free software authors who try to assert their copyleft.

                                1. 7

                                  IANAL, but there are definitely questions here. There’s a history of questions around clean-room design, when you need it, what it gets you, etc. https://en.wikipedia.org/wiki/Clean_room_design

                                  1. 5

                                    I was chatting with someone on Twitter about this. If clean room design is “demonstrably uncontaminated by any knowledge of the proprietary techniques” then Copilot being a black box seems to not fit that definition. What comes out of it has no clear provenance, since it could be synthetic or a straight copy from various sources. The Copilot FAQ on Protecting Originality has already demonstrated occasionally (“0.1% of the time”) copying code directly from the copyrighted corpus.

                                  2. 6

                                    But in this case the author hasn’t written the code. It wasn’t a creative process that accidentally ended up looking like another work. They’ve taken a copy supplied by the Copilot.

                                    Copyright laws are centered around creative work, and were written with humans in mind. I don’t think “AI” would count as a creative thinker for the purpose of the law. One could argue that existing AIs are just obfuscated databases with a fancy query language.

                                    1. 1

                                      The original comment was in regards to considering the code being output as a derived work. My comment wasn’t about the consumer of the AI output, it was about whether or not the AI output itself would constitute a derived work. I was making the comparison between the AI output and some unknowingly written copyleft similar work.

                                    2. 4

                                      I have been warned to keep gpl code off slides because employers have policies about this

                                      1. 2

                                        Wouldn’t GPL code on slides mean that your slides are now subject to the GPL?

                                        Assuming GPLv2, how does clause 2c apply to “power point code”. Power point reads “commands” (space bar) interactively when you “run” (open) it. Are you required to “to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License”?

                                        I hate to say it, but the employers policy is paranoid, but probably sensible (especially if you work for them).

                                    3. 6

                                      On HN, the author of the announcement blogpost claims, that “jurisprudence” (whatever that means) and common understanding in the ML community is that “ML training is fair use”. I have my doubts about that, basically along what you wrote below about cleanroom design/rev-eng. But IANAL, and I suspect it will need some lawyering action to sort this out one way or another. Personally, I also suspect that might be one of the reasons they kept it as a limited preview for now.

                                      1. 11

                                        Copying an idea from someone else: the litmus test is easy: will MS train the model on their wind32 and azure repos? If not, why?

                                        1. 10

                                          Similarly, if someone else were to train a model on leaked MS code, how quickly would the cease and desists start arriving?

                                        2. 4

                                          Hmm, that sounds very… dubious to me.

                                          Like, what exactly is “machine learning training”? Is building an n-gram model fair use? What if I train my n-gram model on too little data so that it’ll recreate something which has a relatively high level of similarity to the copyrighted training set? Many statistical machine learning models can be viewed as a lossy encoding of the source text.

                                          It seems plausible to me that the “copilot” will auto-generate blocks of source code that’s very similar to existing code. Proving that the AI “came up with it on its own” (whatever that even means when we’re talking about a bunch of matrixes transforming into into output) and didn’t “copy it” from something copyrighted seems extremely legally difficult.

                                          If machine learning training is “fair use”, and the output generated by the model is owned by the maker of the model, then overfitting ML models becomes automatic copyright stripping machines. I wouldn’t mind, but that sounds very weird.

                                        3. 4

                                          Even if the code used to train wasn’t copyleft, the attribution/license inclusion requirement still stands. And I am quite sure that GitHub doesn’t include all the licenses from all the code repositories they have used to train the model (they say billions of lines, so that’s at least 10k licenses, good luck with that, and their compatibility).

                                          1. 4

                                            CNPLv6 has a clause explicitly forbidding this.

                                            CNPLv6 - 1b “…In addition, where the Work is designed to output a neural network the output of the neural network will be considered an Adaptation for the purpose of this license.”

                                            Are there examples of other licenses, besides mine, which explicitly forbid laundering the work of the commons into something proprietary using machine learning?

                                          1. 2

                                            Can someone with a better understanding of copyright assignment explain what the implications of this are? What will it mean practically for companies, individuals and users?

                                            1. 4

                                              Before, in order to contribute to GCC you had to give the FSF copyright of your change. Now, you don’t.

                                              This will make it easier to contribute, since the process of assigning copyright to the FSF is (I believe) nontrivial, and just saying “I assign copyright of this patch to the FSF” doesn’t work. In particular, people who work for companies that claim ownership of their employees’ free-time contributions may be more likely to accept a patch if it doesn’t require signing over their copyright.

                                              The other change is that this means that relicensing GCC would be harder, since now there are multiple copyright holders to the work. But I don’t think that GCC will be relicensed any time soon.

                                              The FSF also says that copyright assigntment is important for enforcement reasons, since only the owner of a copyright can enforce it and it’s easier if the entire codebase has a single owner. But in practice… when was the last time you saw any GPL enforcement?

                                              1. 7

                                                companies that claim ownership of their employees’ free-time contributions

                                                The fact that this is even legal is mind boggling.

                                                1. 4

                                                  You can claim anything you want!

                                                  It’s anyone’s guess whether the claim would hold up in court, so it’s basically a game of chicken. You’re a lot more likely to flinch first vs a million-dollar software company.

                                                  1. 1

                                                    In CA, it’s explicitly illegal to claim ownership unless the free-time contribution relates to the employer’s business. But if you work for a megacorp, they very well might take the position of “our business is everything”.

                                                    1. 2

                                                      I guess my point is that even in California, it’s in the company’s best interest to lie and say that they own everything, because the penalties for making a false claim are lesser than the benefits of intimidating employees.

                                                      1. 1

                                                        Yeah. And worst comes to worst, they can always say “give us this or you’re fired”. I dunno if that’s legal, but I also don’t want to find out.

                                                      2. 1

                                                        So that is the sinister side of letting people work on their own stuff at the office.

                                                        Nice!

                                                        1. 2

                                                          Oh, this isn’t even at the office. If you work on stuff using company resources/on company time, everywhere in the US will just give that to your employer. This is about stuff you do on your own time at home!

                                                          1. 1

                                                            If it came to that I’d start writing incredibly offensive stuff and give them full credit.

                                                            1. 1

                                                              Well, then you’d get fired.

                                                              Though, based on a friend’s anecdote, at least one megacorp is definitely way more likely to sign a copyright release for things related to pornography, and will even require you to not mention their name in connection with it…

                                                              1. 1

                                                                glad I don’t care anymore. You can only keep someone threatened and scared for so long.

                                                                funny how they don’t want that attribution when its seemingly not coinvent. At the same time it’s just begging for ‘rm -rf /’ to be attributed to them under the guise of their legal department.

                                                                I guess doing something a little more involved than changing twitter icons is a bit much for people these days.

                                                2. 3

                                                  The FSF requires copyright assignment for two reasons:

                                                  • It lets them change the license at will. When LLVM switched from the UIUC license to Apache 2 + GPL exemption, it required a complex process to get permission from all copyright holders (actually, from almost all and then to rewrite the remaining bits).
                                                  • It gives them standing to sue for copyright violation and to settle violations.

                                                  The first is important if you believe that GCC may wish to move to GPLv4 (or AGPLv3 or whatever) in the future. That may be a concern, but it took 20 or so years for the FSF to release GPLv3, so it’s probably not urgent. Note that the FSF could also unilaterally release the current version of GCC under the MIT license or something equally permissive and some of the concerns from contributors over copyright assignment relate to that: If some company managed to lobby / bribe / stage a takeover of the board of the FSF, then they could release all of the FSF-owned code under a permissive license, against the express wishes of the authors.

                                                  The second one is more interesting. Somewhat ironically, the FSF makes (made?) quite a lot of its money as a purveyor of proprietary software. If a company is caught violating the GPL on any GNU projects, the standard policy for the FSF is to send them a cease and desist letter that gives them a time limit to get into compliance and offers them a time-limited proprietary license for the software from their first violation date until the deadline. If they accept, then they pay the FSF for the license and are now not violating anyone’s copyright and so have no legal liability (as long as they become compliant by the deadline). Compare this with Linux: if you’re violating the GPL on Linux, there are hundreds of people and companies who have standing to sue you and no single entity that has the ability to give you immunity from prosecution if you stop. It’s not clear how much of a problem that is these days.

                                                  In terms of corporate contributions, it is generally quite difficult to get approval to contribute to the assign copyright in a lot of companies. This means that the GPL + copyright assignment ends up being the opposite of what a lot of folks here want from a license: it makes it easy for big companies to use the code but hard for them to give back.

                                                  For individuals, it means you don’t need to send a piece of paper international post to be able to contribute. The FSF never paid me the $1 for my copyright assignment, so I don’t regard it as valid since they didn’t act in good faith (you can’t assign copyright without some recompense in the US, so the copyright assignment form says that they will pay you $1 in exchange). I wonder how widespread that is….

                                                  1. 1

                                                    If some company managed to lobby / bribe / stage a takeover of the board of the FSF, then they could release all of the FSF-owned code under a permissive license, against the express wishes of the authors.

                                                    This concern seems unlikely. The copyright assignment papers you sign for the FSF have some wording that says the one of the conditions of assigning copyright is that the FSF won’t do something like completely changing the license.

                                                    But the most important element of the assignment contract is the promise we make to every contributor and community member: We promise to always keep the software free. This promise extends to any successors in the copyright, meaning that even if the FSF were to go away the freedom of all users to share in the contributions wouldn’t.

                                                    https://www.fsf.org/bulletin/2014/spring/copyright-assignment-at-the-fsf

                                                    Since a weak license like MIT could compromise the freedom of a software package, it seems like it could be in violation of this promise.

                                                    The FSF never paid me the $1 for my copyright assignment,

                                                    Nowadays the exchange is usually a sticker. You didn’t get a sticker?

                                                    1. 1

                                                      Since a weak license like MIT could compromise the freedom of a software package, it seems like it could be in violation of this promise.

                                                      The MIT license is on the FSF list of approved Free-Software licenses, so I think they could justify an MIT-licensed release.

                                                      Nowadays the exchange is usually a sticker. You didn’t get a sticker?

                                                      Nope, nothing. This would have been around 2003ish.

                                                    2. 1

                                                      The first is important if you believe that GCC may wish to move to GPLv4 (or AGPLv3 or whatever) in the future.

                                                      This is really strange; most other projects I’ve looked at from GNU already use a “GPL v$LATEST or (at your option) any later version”. Does GCC omit this? If so, they could add it immediately before accepting the first non-assigned contribution, since at that point it’s still within their power to relicense.

                                                      1. 3

                                                        I am not a lawyer, this is not legal advice:

                                                        As I understand it, the ‘or later’ doesn’t allow you to change the license, it just means that you may choose to be bound by only the later conditions. Without copyright assignment, the FSF could have started accepting new code under GPLv3 or later, but would not have been able to release GCC 4.3 with every source file updated to GPLv3 or later. They possibly would not have been able to incorporate GPLv3-or-later patches into GPLv2-or-later files either, though I’m much less sure about that. GPLv2 and GPLv3 were incompatible and so the combination of GPLv2-or-later and GPLv3-or-later is GPLv3-or-later (if you accept GPLv3 for any portion, you cannot accept GPLv2 for any portion).

                                                        Not having to think about this kind of thing except as an intellectual exercise is a big part of the reason that I avoid FSF licenses.

                                                  1. 8

                                                    I belive that this article will interest more people: https://www.fsf.org/news/statement-of-fsf-board-on-election-of-richard-stallman

                                                    The thing with a statement like this is that I’m afraid it won’t change anyone. I see it as a reafirmatiom of RMS honesty, others won’t. I wish the conversations around these topic would become more “civilised” (for lack of a better word), so that some concensus can be reached.

                                                    That being said, I wonder what influence the open letter and the support letter had on all of this. It seems the letter of support has currently twice as many signatures as the one criticising RMS, which is supprising. Then again, I was also amused to be reminded of how small the actual community of people who actually care about these things (pro or contra) are.

                                                    1. 37

                                                      It seems the letter of support has currently twice as many signatures as the one criticising RMS, which is surprising.

                                                      As a signer of the original letter, the signatures in the original letter matter a lot more than the counterletter.

                                                      The counterletter was drafted in 4chan /g/ (I saw the thread where people were drafting it) and heavily promoted in the Eastern Bloc at first. It was posted in several Russian-speaking link aggregation sites as well as 4chan itself. Sure, it has more numbers… by a bunch of people who are not writing the free software we are using. In the original letter I see people who wrote the software I’m using, people I have collaborated in bugs with, people I have met at Debconf and Pycon. I see organisations that make free software. In the counterletter I see some personalities like esr and a lot of angry Russians who are upset that someone is telling them that women are having a bad time in free software.

                                                      A few of the signers of the counterletter managed to get some troll signatures, in Russian and 4chan references, into the original letter. They were trying to prove that this meant that there were no safeguards in the original letter and were arguing that by forcing github usernames, their signatures were more valid. Whenever I discovered these troll signatures using my limited Russian, I pointed them out and they were removed. So there were some quality checks.

                                                      Number of signatories doesn’t mean anything. The original letter even stopped accepting signatures while the counterletter kept accepting them. It’s quite easy to get a lot of people in favour of any cause if you frame that cause as being some version of “free speech”, regardless of the speech being said and regardless of all of the people RMS has alienated from free software, especially women.

                                                      1. 16

                                                        heavily promoted in the Eastern Bloc at first

                                                        I am very troubled by this. Why are opinions of free software developers in the Eastern Bloc (or Asia, for that matter) any less valid? Blend2D (a random example) is a great free software, isn’t it? Speaking as an Asian. Thanks.

                                                        1. 6

                                                          I’ve explained this elsewhere, but judging from comments they have made in Habr and presumably 4chan, their motivations are linked to anti-women, anti-LGBT initiatives common in Russia and other Slavic countries. They tend to frame kindness initiatives that do not directly benefit men as some sort of Western degeneracy. This is why their opinions on why Stallman should be head of the FSF matter less.

                                                          Also, Stallman just hasn’t toured Russia that much; most of them have probably never had to deal with him much or work with him. They don’t know him like we do.

                                                        2. 9

                                                          The way I see it, both the people around the open letter and the support letter can be divided into two respective groups. The open letter have those honestly concerned about the negative influence of Stallman on the perception of the FSF/Free Software in general, just like there are those who are honestly concerned about the integrity of the FSF/Free Software when it comes to preserving user freedoms. The second groups are respectively those who are interested in undermining Free Software and those invested in Culture-War issues issues regarding Free Speech, as you mention. The interesting thing is that both “sincere” sides will probably overestimate and focus on the latter groups. An issue structured like this will naturally lead to a cultural deadlock.

                                                          What I wonder is why you think that the open letter is in itself more legitimate than the support letter, because you recognize more developers you know. To some degree it should be expected that people you agree with will more likely be on the same side of the issue. Ultimately it would seem to me that considering that Free Software and user freedom isn’t something that should just interest developers, but users too, even if they don’t have great reputations or have met friends at conferences.

                                                          Either way, because of the deadlock and the arguing about “numbers vs. legitimateness”, I don’t think that these two sides will agree on anything. It is but another trench in this virtual conflict. All I can do is wonder if this influenced the FSF in any meaningful way.

                                                          1. 26

                                                            The original letter are people writing free software. I don’t know what the counterletter people are doing, but they’re not, for the most part, working on GNU, Debian, openSUSE, gcc, nor are they FSF members or employees or hardly anything of the sort.

                                                            This matters.

                                                            Btw: I don’t think anyone is interested in undermining free software. This is a conspiracy theory promoted by the counterletter authors and supporters, that somehow if we don’t want Stallman it must mean that we want to be serfs to FAMANG.

                                                            I support free software. I don’t have to support Stallman to do so.

                                                            1. 14

                                                              Setting aside that there are Free Software contributors that sign the support letter,

                                                              • Andrea Corallo (GCC developer, Emacs developer)
                                                              • Eli Zaretskii (GNU Emacs maintainer)
                                                              • Leah Rowe (Libreboot Project Leader)

                                                              to name a few I recognize, next to members of the same projects you mention – I repeat my question: Why does it matter?

                                                              1. 9

                                                                Yes, there are some. If we go by “voting members” of the free software world, so to speak, there are way more in the original letter than the counterletter.

                                                                No orgs have signed the counterletter either.

                                                                1. 7

                                                                  Again, why does this matter?

                                                                  1. 26

                                                                    Demonstrably it didn’t. Neither letter mattered. The FSF did whatever it wanted.

                                                                    But for me it mattered. It showed that there is a clear consensus of people I want to work with. We agree on who we no longer want to be in charge or be a philosophical beacon for us.

                                                                    1. 11

                                                                      I think the open letter mattered a lot by starting the discussion and making it clear that a lot of people have a problem that he rejoined the board.

                                                                      The support letter shows that a lot of his followers have no problem about any of his opinions or thoughts as long as he did a lot of great work.

                                                                      1. 5

                                                                        Demonstrably it didn’t. Neither letter mattered. The FSF did whatever it wanted.

                                                                        That is what I was wondering. Did the surprising outcome of the support letter help the FSF make their decision? The reason I use the word “surprising” is that in most cases, the “right” and “wrong” sides of these discussions are quickly established, the insinuation of a majority is made on various social media platforms and the change is pushed through (such as with Stallman in 2019 or with the Linux Kernel before). I actually expected the support letter to have far less traction, whether because the position is less popular of because it is more risky to voice support for that side. The previous chapter of the controversy had the “Joint Statement” to state opposition to Stallman. The other side didn’t have anything of that sort.

                                                                        Ultimately this is all speculate and doesn’t amount to anything, but it is an interesting shift (or problematic tendency, depending on your interpretations).

                                                                        1. 17

                                                                          it is more risky to voice support for that side

                                                                          There is no greater risk to signing the counterletter. This is another conspiracy theory pushed by the counterletter, that there is a great cabal of worldwide cancellists who will harm you if you publicly support Stallman. That you need to have great bravery to sign the counterletter.

                                                                          I have no hard numbers, but I believe in actuality the signers of the original letter have received more abusive emails. I got a lot when I signed the GNU joint statement asking for RMS to be removed from leadership in 2019. I’m actually really afraid about having signed the original letter. I am afraid someone will get very angry and try to track me down to my home or something like that. Well, I am not sure how likely this could be, but there’s a lot more undirected anger in the counterletter than the original letter, aimed at a vague and nebulous “cancel culture”. The original letter’s anger is more focussed on a single individual who has been holding back free software for decades.

                                                                          1. 14

                                                                            Not a conspiracy theory at all. I may not be hired for choosing to sign the pro-RMS letter:

                                                                            https://twitter.com/jhulten/status/1376360925809106951

                                                                            A tool to “block” signers of the pro-RMS letter: https://github.com/travisbrown/octocrabby

                                                                            There’s even a browser extension to highlight signers, anywhere we show up.

                                                                            But sure, go on. “Cancel culture” doesn’t exist!

                                                                            1. 13

                                                                              You’re afraid of not being hired by… some dude. I’m afraid of someone showing up in my home and trying to harm me. How many angry and threatening emails have you gotten? I got about about five in 2019.

                                                                              I’m also a little afraid of not being hired by some people for having signed the letter; similar compilations exist for those who signed the original letter.

                                                                              1. 4

                                                                                Yes, cancel culture does exist.

                                                                                However most tech companies are not bigoted enough to respect these “cancel” lists, and I’ve never seen sufficient evidence to the contrary. As to the ones who are, you would not want to work with them anyway.

                                                                                Also, I predict that the future will be less woke.

                                                                                1. 9

                                                                                  “Cancel culture” always existed, in the sense that there were entities with the power to arbitrarily take away your reputation, your livelihood, even your basic rights. Historically those entities have been major institutions such as governments and large corporations, and they have done so as a reaction against increasing liberalism.

                                                                                  Unsurprisingly, most of the people who now loathe and decry and bemoan “cancel culture” come down on the conservative/reactionary side and are primarily reacting to the democratization (or threat thereof) of the ability to inflict consequences based on someone’s speech, actions, associations, etc. which has been brought about by technology. When I was young, you needed a major media organization (or two or three) behind you to really “cancel” someone effectively. Now you just need a Twitter account and for what you say to catch on with enough other people. To people who were used to being the only ones wielding this power, it likely feels terrifying and so they want to treat it as a new thing. But it is simply the thing they always did, now made available to many others via technology’s ability to amplify voices, improve coordination, etc.

                                                                                  As to your last point, it’s worth noting that while the traditional predictor of someone’s politics (on a generic liberal <-> conservative spectrum) has been their age, it appears that is now changing and the most reliable predictors are becoming things like education level (higher education -> overwhelming more liberal tendency) and race/ethnicity (“white”/European-descended -> overwhelming more conservative tendency). So you might want to recalibrate the confidence of your prediction, especially based on a claim that measures within a young and still-developing generational cohort many of whom have not yet attended university.

                                                                                  1. 4

                                                                                    The preference of one or more organizations to avoid associating with people who publicly support someone with a behavioral track record like Stallman’s is not bigoted.

                                                                                    To describe it as such feels dishonest, and ignores the fact that people have legitimate concerns over how likely it is for someone who explicitly supports Stallman’s viewpoints to work in the kinds of inclusive and diverse environments that modern companies and communities seek to cultivate.


                                                                                    As for your prediction, I don’t think it’s very likely that the future will be less “woke”; the tweet you reference appears to be from a group that’s quite politically conservative if you go by the recent content on their timeline, so there’s quite a bit of potential for bias there.

                                                                                    In my experience, the tech communities that seem to be growing the most rapidly seem to focus heavily on the mind of inclusivity that I associate with “woke culture” (e.g, JavaScript and Rust).

                                                                                    By comparison, communities that try to stay “apolitical” (in their own words, not mine) seem to attract more abrasive and disruptive contributors who do nothing to help their relevance.

                                                                                    1. 10

                                                                                      Painting over 6000 people as being automatically opposed in some form to inclusivity, just because they stand against the witch hunt of RMS, and then seeking to “cancel” them is the very definition of bigotry (”intolerance toward those who hold different opinions from oneself”). It is also disingenuous to suggest that any organizations doing the cancellation is doing it only as a “preference”, as if there is no political / mob pressure behind the scenes.

                                                                                      As for your allusion to a group being (according to you) politically conservative, that only seems to be a discrediting tactic used so as to avoid having to address the central point (the statistics quoted in the tweet).

                                                                                      1. 9

                                                                                        It is not a witch hunt. He’s not a witch. He’s a guy who has demonstrably harmed free software in many ways. He was a terrible boss at the FSF (for example, refused to give raises because his logic is that wages would then increase without bound, bankrupting the FSF), he has creeped out many women, he has yelled and lost his temper at the very people who are trying to support his cause, he has defended zoophilia, pedophilia, and necrophilia, his main activism is ineffective language nitpicking and advocating technological abnegation.

                                                                                        Not wanting him in charge is not the same as wanting him burned at the stake.

                                                                                        And please don’t make me come up with links for all of these things. It’s really tiring to have to be an archivist for all of these things. Look them up yourself and if you can’t find them, then I’ll try to help.

                                                                                2. 2

                                                                                  I thought about what happens if I would sign the open letter a bit and since a few days I get spam about GNU and Linux related topics which are oddly or very close related to RMS. One mail even had the fake sender address of Adolf H. (Yes, the one you think)

                                                                                  1. 5

                                                                                    Daniel Pocock has been spamming people on both lists lately. The guy is a figure.

                                                                                    1. 3

                                                                                      FWIW I have been receiving the same messages.

                                                                                      1. 2

                                                                                        Oh? Are people mass-emailing the counterletter signers with angry notes? What have you gotten?

                                                                                        I seem to be flying under the radar this time, but I attracted a lot of anger in 2019.

                                                                                        1. 1

                                                                                          The RMS open letter, not the support one AFAIK.

                                                                                3. 4

                                                                                  It took me a good night’s sleep to realize that you’re still evading my question. So I’ll rephrase it one more: Why should it matter? Why do the voices of software users who see Stallman as someone who defends their Freedoms matter less than those of (some) developers.

                                                                                  1. 13

                                                                                    Oh, that’s what you were asking:

                                                                                    They matter less because they haven’t actually directly dealt with him. They haven’t worked on software he has tried to have a voice in, they haven’t seen him at conferences, they haven’t had him directly yell at them.

                                                                                    They don’t know him. So their opinions of him are less well-founded.

                                                                            2. 7

                                                                              More names here:

                                                                              https://www.debian.org/vote/2021/vote_002

                                                                              I count 20 people seconding one of “Support Stallman’s reinstatement, as in rms-support-letter.github.io” and “Denounce the witch-hunt against RMS and the FSF” proposals,

                                                                              1. Adrian Bunk [bunk@debian.org] [mail]
                                                                              2. Norbert Preining [preining@debian.org] [mail]
                                                                              3. Jonas Smedegaard [js@debian.org] [mail]
                                                                              4. Ying-Chun Liu [paulliu@debian.org] [mail]
                                                                              5. Barak A. Pearlmutter [bap@debian.org] [mail]
                                                                              6. Adam Borowski [kilobyte@debian.org] [mail]
                                                                              7. Micha Lenk [micha@debian.org] [mail]
                                                                              8. Michael Biebl [biebl@debian.org] [mail]
                                                                              9. Bart Martens [bartm@debian.org] [mail] [confirm]
                                                                              10. Jonas Smedegaard [js@debian.org] [mail] [confirm] [confirm] [confirm]
                                                                              11. Pierre-Elliott Bécue [peb@debian.org] [mail]
                                                                              12. Daniel Lenharo [lenharo@debian.org] [mail]
                                                                              13. Milan Kupcevic [milan@debian.org] [mail] [confirm]
                                                                              14. Michael Biebl [biebl@debian.org] [mail] [confirm]
                                                                              15. Axel Beckert [abe@debian.org] [mail]
                                                                              16. Gilles Filippini [pini@debian.org] [mail] [confirm]
                                                                              17. Filippo Rusconi [lopippo@debian.org] [mail]
                                                                              18. Shengjing Zhu [zhsj@debian.org] [mail]
                                                                              19. Matteo F. Vescovi [mfv@debian.org] [mail] [confirm]
                                                                              20. Mathias Behrle [mbehrle@debian.org] [mail]
                                                                              1. 12

                                                                                These aren’t votes yet. These are seconds, for various of the proposals, both for and against and various shades in between. This is how Debian does resolutions. The votes will be finalised by Saturday.

                                                                                1. 8

                                                                                  both for and against and various shades in between.

                                                                                  The 20 Debian folks I included however were all for (not against) supporting Stallman. I only included it (and this is only from Debian) because you wrote “the counterletter people are [….] not, for the most part, working on GNU, Debian, openSUSE, gcc,”.

                                                                                  1. 11

                                                                                    That’s not entirely how that works; they’ve seconded the resolutions to appear on the ballot, not voted for them specifically. Seconding it just means they think it should appear as an option, not that they agree with it.

                                                                      2. 8

                                                                        It seems the letter of support has currently twice as many signatures as the one criticising RMS, which is supprising.

                                                                        RMS has a very religious almost cult following. So no surprise there. Also the RMS open letter GitHub repo stopped accepting signatures on April 1st. The support one still accepts signatures to this date.

                                                                        I did a very quick look at the signers of the RMS support letter, looked at a very small amount of accounts closer and there where a couple of things that stood out and seemed fishy:

                                                                        • lots of Russian sounding names
                                                                        • some of them where newly created (for example 31. March), had their first PR against the repository or had very little activity the last year

                                                                        This could be coincidence or people created their account because of this letter but it could also mean that people created new account or used other means to inflate the numbers.

                                                                        1. 21

                                                                          lots of Russian sounding names

                                                                          As someone of Slavic descent, I would be very interested in what you mean to imply by this point.

                                                                          1. 16

                                                                            Russia has a well-documented state-sponsored homophobia. The recent Russian bill to ban gay marriage, even foreign-made gay marriage, had over 70% support in the polls. These attitudes trickle down and they’re popular with the general Russophone population, not just with the governments. A widespread belief in Slavic countries is that gay acceptance is some Western-induced degeneracy that didn’t really exist in Soviet times, along with some kind of desire to go back to the good ol’ days when LGBT people didn’t “exist”.

                                                                            Thus, a letter that is perceived to defend someone (RMS) who has been attacked by the LGBT community will be popular in Russia and surrounding countries. The discourse in 4chan framed the counterletter as being explicitly drafted to give trans people a kick in the head. They consistently used transphobic slurs to refer to me and other signatories of the original letter.

                                                                            1. 15

                                                                              This is such a wild take. Heck, you could’ve said something like “they’re Russian bots” and that would be somewhat acceptable. You didn’t stop to consider that they could’ve had other motivations (so many better ones!) for having signed it? This is a very bad generalization of the Russian populace, akin to calling all Americans gun-touting redneck hillbillies.

                                                                              The real reason for most of the Russian signatures was the letter being shared on some Russian link-aggregator site(s).

                                                                              1. 8

                                                                                No, they’re not bots, they’re real. And talking to them in the github issues of the counterletter, they are very angry about women and minorities being promoted. This seems to be a strong implicit reason for their alignment with the defense of Stallman. They want to defend their freedom of speech to be awful to women and minorities because being nice is censorship.

                                                                                Of course I generalised, because we have voting numbers. At least 70% of the Russian population is homophobic.

                                                                                1. 5

                                                                                  At least 70% of the Russian population is homophobic.

                                                                                  I’d really like to see what are your sources for this claim.

                                                                                  1. 15

                                                                                    I gave you the source: the voting numbers of the Russian bill passed yesterday to ban gay marriage. It had widespread support. These are not deeply-hidden facts that are difficult to find.

                                                                                    But here, there’s plenty more sources:

                                                                                    https://en.wikipedia.org/wiki/LGBT_rights_in_Russia#Public_opinion_2

                                                                                    If anything, I was giving Russians the benefit of the doubt with 70% It seems closer to 80%.

                                                                              2. 6

                                                                                Flagged as troll for being racist against Russians.

                                                                                1. 10

                                                                                  Russian homophobia is well-documented and is a very harmful problem that is killing people in Russia. Recognising problems in Russian society is uncomfortable, but I don’t think it’s racist.

                                                                                  1. 6

                                                                                    Here’s how I understand your reasoning:

                                                                                    • Russian government is homophobic and polls show that many russian citizens also are (that is true)
                                                                                    • Many people who supported the counter-letter are from Russia (also true)
                                                                                    • Therefore they support RMS because they are homophobic.

                                                                                    You can tell me to go find it myself. But, it’s you making claims. When I’m making a claim, I’m ready to bear the burden of proof, or I say that it’s just my opinion that may be too far-fetched or entirely untrue. You present your statements as facts but are unwilling to present any proofs, and I don’t think it makes you look more trustworthy, even if your statements are true.

                                                                                    1. 5

                                                                                      The last claim comes as an inference and from statements I have seen in 4chan and Habr, in English and Russian. 4chan quite openly frames support for the counterletter as a homophobic and transphobic cause. It’s more subtle in the Habr comments, but it does happen there too.

                                                                                      It’s more difficult to find it in Habr because my Russian is rudimentary but if you’d like, I can do that too, in case your own Russian isn’t good enough.

                                                                              3. 2

                                                                                Just something I have noticed. I don’t know if FSF normally reaches those countries and if it is suspicious or not.

                                                                              4. 4

                                                                                lots of Russian sounding names

                                                                                From what I heard, the support letter was shared around Russian HN-likes, which explains that aspect.

                                                                                1. 2

                                                                                  Do you know if those sites tried to push people to sign the letter?

                                                                                  1. 9

                                                                                    Yes, it was posted to Habr:

                                                                                    https://en.wikipedia.org/wiki/Habr

                                                                                    I can’t find the original post, but they coordinated attacks on the original letter from Habr, for example:

                                                                                    https://habr.com/en/post/549276/

                                                                                    1. 9

                                                                                      Are you implying that anti-RMS people “sign open letters”, while pro-RMS people “coordinate attacks” when they do exactly the same thing? ;)

                                                                                      1. 5

                                                                                        These are the same sort of people who are trying to directly harm Molly de Blanc, getting her arrested or swatted. I won’t link to that attack, but there is a lot of anger and implied violence against the original letter. This thing posted to Habr is the same sort of angry violence, trying to get legal authorities involved.

                                                                                        It’s not exactly the same thing, it’s not both sides. I am not calling for Stallman to be arrested or harmed. I just don’t want him leading the FSF or GNU.

                                                                                        1. 7

                                                                                          You are accusing people of coordinating an attack and giving a link to something that clearly isn’t that (not a thread where an attack coordination took place). Then you say you won’t give a real link. Why should I believe you?

                                                                                          The post you linked to doesn’t call for violence towards anyone, either. Also, “calls for violence” and “calls for authorities to get involved” are kinda mutually exclusive things.

                                                                                          1. 7

                                                                                            It’s not hard to find the Molly de Blanc attack page. Look for it yourself.

                                                                                            Also, “calls for violence” and “calls for authorities to get involved” are kinda mutually exclusive things.

                                                                                            Not in the US. Swatting has gotten people killed. Swatters hope people will get killed. This is an unfortunate by-product of militarisation of the US police force: calling cops on someone can be a death sentence.

                                                                                            1. 4

                                                                                              All respect due, that post isn’t calling for swatting. It’s calling for the removal of the issue from GitHub!

                                                                                              1. 3

                                                                                                I’m talking about the attack site on Molly de Blanc that I don’t want to link.

                                                                                                But incorrectly citing laws on Github is a similar sort of aggression, driven by similar rage. You’re right it won’t lead to a swatting but I have seen the same group endorse both kinds of actions.

                                                                                        2. 3

                                                                                          I mean, they are literally trying to coordinate to have the original letter removed. That’s different to signing an open letter, isn’t it?

                                                                                          1. 6

                                                                                            It’s a copy of the deleted issue that someone posted there after the fact, and it received a whole three comments (all general remarks about the situation, no specific action proposals). Since that post clearly is not about coordinating an attack, I assumed JordiGH is referring to something else—most likely the rms-support-letter itself.

                                                                                        3. 1

                                                                                          The issue reads like some spam I get daily 😀

                                                                                    2. 4

                                                                                      Who cares where they’re from? What matters is whether they’re just random names, or if they’re actively involved in the business of the FSF (and, therefore, are more likely to know what they’re talking about).

                                                                                    3. 2

                                                                                      It seems the letter of support has currently twice as many signatures as the one criticising RMS, which is supprising.

                                                                                      I don’t know. It seems to me that pretty much nobody knows who RMS is, and a significant portion of those who do don’t care about him. So it makes sense that the ones who bother to do something about it are the ones who support him.

                                                                                    1. 4

                                                                                      I was hoping to learn something here, but this was a very disappointing blog post. Everything is ordinary except that Golang doesn’t seem to allow negative zero literals. That’s the whole post.

                                                                                      Something I wish was touched upon, and a more useful use of negative zero in my experience, is that it can indicate that a value got very small from the negative side.

                                                                                      For example, if you perform a calculation such as 1e-200*-1e-200, you should be getting negative zero in any “reasonable” programming language, which includes any programming language that obeys IEEE 754. This is a contrived example, but it is relevant when you have a numerical procedure that happens to converge to zero from the negative side. In that case, the sign of zero carries information that exceeded the amount of precision that can be stored in a float.

                                                                                      1. 3

                                                                                        Yes, and fun things with atan2 that’s actually important with +/- 0.0 and +/- infinity. Here is a unit test for gambit scheme: https://github.com/gambit/gambit/blob/master/tests/unit-tests/02-flonum/flatan.scm

                                                                                      1. 2

                                                                                        This is quite interesting to me. After going through the process to relicense a project with a previous employer (who I definitely do not speak for) I wanted to write up some thoughts that would’ve started the exact same way:

                                                                                        Many people don’t understand:

                                                                                        • copyright law,
                                                                                        • and GPL.

                                                                                        What I’ve learned is that while we might have good basic intuitions about copyright law and the GPL, we (read: software devs) do not understand it. We can claim to, but a lot of it hinges on case law/prior art/and what lawyers will and will not go after (see also: how much money you have).

                                                                                        1. 3

                                                                                          Something I’ve noticed is that a lot of software people want the law to work like source code. They read the thing and try to imagine some kind of machine that will execute the legal code within it. They look for logical implications and contradictions and deductions they can arrive to by reading the license text.

                                                                                          Of course, though, the law is interpreted by the whims of judges and sometimes juries, with its own peculiar culture that outsiders might not be familiar with. It’s more like how early web browsers did whatever they wanted with HTML than what ghc does with Haskell. :)

                                                                                          Also, there’s often this certain uninformed “folklore” of how the law works (like those no “no copyright intended!” messages in fan-made YouTube music uploads) that is even worse.

                                                                                          1. 1

                                                                                            Also, there’s often this certain uninformed “folklore” of how the law works (like those no “no copyright intended!” messages in fan-made YouTube music uploads) that is even worse.

                                                                                            Yeah, and this is one of the reasons I don’t quite enjoy discussions around the GPL :)

                                                                                            A lot of what people think about the GPL is what they want the GPL to say but that it doesn’t quite say or intentionally talks around. My particular hobby horse: “what is a derivative work?” The GPL doesn’t define it. There’s some US case law that has decided particular things. There’s some examples in the FAQs but they’re not exhaustive. There’s endless discussions about what is/isn’t a derivative work on the internet. But nobody knows until they’re in a courtroom.

                                                                                            While few people understand licenses, the GPL is one of the few license people don’t even read. It’s often just carted around and used because tradition.

                                                                                            Edit: s/people even read/people don’t even read/

                                                                                            1. 3

                                                                                              While few people understand licenses, the GPL is one of the few license people even read. It’s often just carted around and used because tradition.

                                                                                              It doesn’t help that it’s not a very well-written document (as well as needlessly long including quite a few bits that probably aren’t really needed).

                                                                                              For example, let’s take this paragraph from the GPL 3:

                                                                                              A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.

                                                                                              I had to read this several times and out loud to really understand what’s being meant here, which is “Object code whose source is not part of the GPL licensed code does not need to have their source made available”. I think so, anyway. It’s not hard to see how this could be phrased in a much clearer way. This isn’t even about “legalese language is hard”, it’s just bad writing IMO. I’ve managed to read things like SCOTUS decisions or EU laws without too much trouble, but I struggle with the GPL.

                                                                                              For this reason alone, I think the EUPL is an infinitely better copyleft license.

                                                                                              1. 2

                                                                                                It’s not hard to see how this could be phrased in a much clearer way. This isn’t even about “legalese language is hard”, it’s just bad writing IMO.

                                                                                                Oh! Another thing this reminds me about is how the GPL and its FAQs reference things like static and dynamic linking and object/machine code. While I respect that the license made sense at the time, these distinctions become harder to make with each passing day. A lot of things are bundled together in a way that makes them singularly executable (e.g. .app files on macOS, Docker images, concatenated scripts for interpreted languages) but aren’t static linking in the original sense—how does all of that come into play? Who knows.

                                                                                                1. 3

                                                                                                  As mentioned elsewhere in this discussion: no one knows anything until in a court room. The GPL itself isn’t interested in linking and even the FAQs mention it mostly to make certain binary requiremnts more clear in cases they make sense (more for LGPL than GPL). The maim hinges are legal terms of art like “derivative” and what a judge would think is anyone’s guess.

                                                                                        1. 4

                                                                                          The author suggests that the answer to “Can I license my code under AGPL with an extra clause that prohibits people from using it for commercial purposes?” is “no-ish”. However, the answer is “yes”; many companies will avoid using AGPL-licensed code even without extra clauses. I curated a list of such licenses alongside AGPL, including examples of corporations who refuse to accept the AGPL license for third-party contributions.

                                                                                          1. 4

                                                                                            You mean that although the AGPL does not forbid commercial use, in practice it does because companies refuse to do commerce under its terms?

                                                                                            1. 4

                                                                                              Yes, exactly. Or, to quote from a past version of myself:

                                                                                              The goal, to paraphrase a famous prayer, is to find licensing from which all corporations recoil. As a technicality, I would like to see such licenses which are nonetheless still FSF- or OSI-approved.

                                                                                              There turn out to be several such licenses, with AGPL being merely the most well-known and well-understood.

                                                                                          1. 1

                                                                                            I have yet to read a useful post about licenses, given that I know basic info: MIT/BSD - good, GPL - bad =)

                                                                                            1. 8

                                                                                              GPL good. It’s our only legal defense against corporate open source, where huge companies take all the software and give back none of the freedom. Tech empires are being built on the backs of hobbyists giving their software away. The GPL prevents this: no taking without giving back. It levels the playing field.

                                                                                              Weak licenses have enabled situations where we have all of this open source software and yet our phones and websites are tracking our every move and spying on everything we do.

                                                                                              1. 5

                                                                                                GPL good. It’s our only legal defense against corporate open source

                                                                                                GPL is not the only copyleft license. Tabling the discussion about whether the concept of copyleft is good or bad, the GPL is a terrible implementation of it IMHO, starting with the poorly written text as I mentioned in my other comment, but I also don’t really care for the organisation/people behind it; in particular the shenanigans surrounding the GPL3 left me with a serious distrust and dislike over the GPL specifically (independent of the idea of copyleft). Torvalds explained this fairly well.

                                                                                                So, perhaps somewhat pedantically, the GPL is not “out only legal defence”. Copyleft perhaps is, but GPL and copyleft are not synonyms.

                                                                                                1. 3

                                                                                                  What are other “good” copyleft licenses?

                                                                                                  1. 4

                                                                                                    @arp242 mentioned the EUPL in another comment, which I agree seems more relevant to modern software. It is also really neat in that it has official non-English versions and is written by an actual governing body.

                                                                                                    The Open Software License (OSL) is also interesting in that it was written by a lawyer/member of a law firm and is quite readable. I personally like a license that I can read and expect others to read.

                                                                                                    1. 2

                                                                                                      A note on the EUPL. Copyright law that follows EU tradition includes a moral rights component that is entirely ignored by the GPL (both version 2 and 3) and does to my knowledge not even exist in US law. The EUPL addresses it and tries to waive it to the most extend possible. This might not be at all what you want. Even if you fully stand behind the copyleft concept, you might still want to retain moral rights. The EUPL has this clause probably because it is designed to be used for code written by EU institutions, but it does not really fit code written by natural persons.

                                                                                                      The GPL has improved over time. While GPLv2 had only considered US law, the GPLv3 has been designed to be much more friendly to other jurisdictions. It does not recur to specific US concepts anymore and uses wording that is distinct from traditional US copyright wording for that very reason. It is quite a bit easier to fit the GPLv3 into European jurisdictions than the GPLv2. The notorious “derivative work” has been erased from the text and replaced with a clause that makes its GPLv3 equivalent depending on what the active jurisdiction requires the copyright holder’s consent for. A nice and elegant solution from a jurist’s view.

                                                                                                      1. 1

                                                                                                        The biggest issue I have with the OSL is the “reasonable effort” clause:

                                                                                                        If You distribute or communicate copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License.

                                                                                                        So what does that mean for apt-get install osl-project?

                                                                                                      2. 3

                                                                                                        I like the EUPL, but there are others as well. I didn’t do a full review/comparison of all licenses, but I wrote a little bit about it over here last year.

                                                                                                1. 8

                                                                                                  This was fantastic. I loved every part of this video and I feel like I finally really understand what amplitude modulation and demodulation is. So that’s what a modem does!

                                                                                                  And wireless Mario!

                                                                                                  How interesting.

                                                                                                  1. 7

                                                                                                    That “how does AM work” graphic was much better than anything I saw studying for amateur radio exams.

                                                                                                    1. 1

                                                                                                      Seriously the graphics were top notch. I’m extremely impressed and I’m now watching all this dude’s videos.

                                                                                                      1. 2

                                                                                                        There’s another four or five videos at least on this person’s channel that would make perfectly good lobsters submissions in their own right - I just watched https://www.youtube.com/watch?v=rn1-HIVeKbQ wherein he experiments on a hard drive while it is running and copying a file.

                                                                                                        1. 1

                                                                                                          The only problem I had with that video is that SMART is rather useless for figuring out whether data has been silently corrupted. Hence the silent. I’d have really enjoyed a run of that video with ZFS while scrubbing…

                                                                                                          Anyway, I’m sure he’d want to do a repeat. For science.

                                                                                                    2. 3

                                                                                                      Yeah - I’ve seen radio signals described in terms of carrier and modulation many times, but that metaphor of “squinting at” the incoming signal to the receiver to recover the original base video signal made something click in my head.

                                                                                                    1. 2

                                                                                                      may still be missing some edge cases in which a float typed variable can lead to UB

                                                                                                      There’s no UB in Python. UB is defined in the C and C++ standards as behaviour that compiler authors do not have to write diagnostics for nor give a definite result for. A few other C-like languages also have UB, but UB is standardese. No standard and no definition means no UB.

                                                                                                      The only reason I’m harping on about this is because floats are not unpredictable, and it pains me when people think of floats as weird, unknowable entities that can do all sorts of wacky unpredictable things. Floats can and should be understood.

                                                                                                      1. 2

                                                                                                        I agree with your second half, but Python does have a definition (in the form of the python.org site documentation), and it points out things like “the ordering of X is not defined” (C/++ legalese would rather describe this as “implementation-dependent”). There is also a lot of “currently this returns like this but in the future this might break, so don’t rely on it”. And “This works like this in CPython, but only in CPython!”.

                                                                                                        Python as a language is more fleshed out than people give it credit for, imo.

                                                                                                        1. 1

                                                                                                          I still disagree that Python has a definition. Pypy for example has to implement “whatever cpython does” and can’t rely on a published Python standard to decide what is “correct” Python. It doesn’t matter if there’s documentation for it or not: people want their cpython code to produce exactly the same results on pypy and will consider any divergence a bug.

                                                                                                          1. 1

                                                                                                            The Python Language reference is written in an implementation agnostic angle and describes the behaviors that Python implementations should follow. It does have some “CPython implementation notes” but those are mostly things that don’t matter in the grand scheme of things.

                                                                                                      1. 1

                                                                                                        Also see TaskWarrior, which I have been using for several years now.

                                                                                                        1. 1

                                                                                                          This is explicitly referenced in the README. Looks like this is intended to be better than TaskWarrior.

                                                                                                          1. 1

                                                                                                            Huh, I have not used their sync service. I use git to manage the files in the data directory.

                                                                                                            1. 3

                                                                                                              I started with taskwartrior, indeed using git to sync the data directory at one point. I gave up doing that after the merge conflicts (caused by the data format, and syncing across computers) were too frequent and difficult.

                                                                                                              I did like taskwarrior, and it’s what inspired me to write dstask after a found several things I wanted to do differently.

                                                                                                              1. 2

                                                                                                                Thanks for the history!

                                                                                                        1. 5
                                                                                                          • Lexical-binding is used by default

                                                                                                          I know many packages out there enable lexical binding for all their stuff, but I’m curious if packages I use will break with this turned on by default

                                                                                                          time to find out!

                                                                                                          1. 4

                                                                                                            I’ve been using Emacs 27 for about as long as it’s been cut from the master branch and haven’t had any breakage. Using doom so I couldn’t even tell you how many packages I have installed.

                                                                                                            1. 3

                                                                                                              Maybe this statement should be moderated somewhat. I see in NEWS only that:

                                                                                                              ** Lexical binding is now used by default when evaluating interactive Elisp.

                                                                                                              https://lists.gnu.org/archive/html/emacs-devel/2020-08/msg00240.html

                                                                                                              1. 1

                                                                                                                Yeah that seems like a big change. I thought Emacs Lisp was famous for weird dynamic scoping issues

                                                                                                                1. 4

                                                                                                                  You can still use dynamic scoping when lexical-binding is activated, you just have to declare a variable as special (using defvar). This just means that

                                                                                                                  (defun foo () bar)
                                                                                                                  (defun baz () (let ((bar 23)) (foo))
                                                                                                                  

                                                                                                                  won’t work, without a preceding

                                                                                                                  (defvar bar)
                                                                                                                  

                                                                                                                  but as this has been a style recommendation for years now, most scripts have been adapted.

                                                                                                              1. 5

                                                                                                                Python is an interpreted language, i.e., a scripting language.

                                                                                                                So that’s what a scripting language is, eh? One that has an interpreter?

                                                                                                                Behold, the C++ scripting language:

                                                                                                                https://root.cern/cling/

                                                                                                                1. 3

                                                                                                                  Excuse me, but python is compiled to VM byte code like Java. Therefore it is a serious programming language, unlike those silly scripting languages like C++.

                                                                                                                1. 4

                                                                                                                  I tried the C++ code with and without sorting and both versions ran in about 1.8s on my machine.

                                                                                                                  Has something changed in compilers or hardware since 2012 when this was first posted?

                                                                                                                  1. 6

                                                                                                                    I have a CPU from that era (Intel i7 2600K, still going strong and I’m very happy with it) and I could reproduce it. With sort about 6.3 seconds, without sort about 16.0 seconds. My g++ version is 7.5.0. My only guess is that yes, they must have improved something about the branch prediction (in hardware or microcode?) for this effect to disappear.

                                                                                                                    Also, wow, your machine is so much faster than mine. I didn’t know I could expect such a big single core speedup from upgrading my CPU. Maybe I should buy a new CPU after all. However, having an old CPU is really beneficial for development because if it performs well on my machine, it will perform even better on other people’s.

                                                                                                                    1. 7

                                                                                                                      Using old hardware for the benefit of your users. You, sir, are a hero. ∠(・`_´・ )

                                                                                                                      I thought maybe -O2 optimisation was doing something fancy, but no, doesn’t seem to matter without -O2 either. I’m on an i7-7600U CPU @ 2.80GHz with gcc 8.3.0, which doesn’t seem that newer. I wonder if I’m doing something wrong in my test.

                                                                                                                    2. 2

                                                                                                                      Your compiler is almost certainly using cmov (conditional move) or adc (add with carry), if it hasn’t gone vectorization crazy (e.g. some versions of clang, depending on the flags). These instructions have the same timing regardless of the value being compared, since there is no branch involved.

                                                                                                                      If you use objdump, you’ll probably find something along these lines in your binary:

                                                                                                                      cmp word ptr [rax], 128
                                                                                                                      adc rdx, 0
                                                                                                                      

                                                                                                                      In my experience, an unrolled loop using adc is hard to beat in this context.

                                                                                                                      1. 2

                                                                                                                        Here’s the disassembly of gcc 8.3.0’s output up until the clock call at the end.

                                                                                                                        00000000000011a5 <main>:
                                                                                                                            11a5:	41 55                	push   %r13
                                                                                                                            11a7:	41 54                	push   %r12
                                                                                                                            11a9:	55                   	push   %rbp
                                                                                                                            11aa:	53                   	push   %rbx
                                                                                                                            11ab:	48 81 ec 08 00 02 00 	sub    $0x20008,%rsp
                                                                                                                            11b2:	49 89 e4             	mov    %rsp,%r12
                                                                                                                            11b5:	48 8d ac 24 00 00 02 	lea    0x20000(%rsp),%rbp
                                                                                                                            11bc:	00 
                                                                                                                            11bd:	4c 89 e3             	mov    %r12,%rbx
                                                                                                                            11c0:	e8 6b fe ff ff       	callq  1030 <rand@plt>
                                                                                                                            11c5:	99                   	cltd   
                                                                                                                            11c6:	c1 ea 18             	shr    $0x18,%edx
                                                                                                                            11c9:	01 d0                	add    %edx,%eax
                                                                                                                            11cb:	0f b6 c0             	movzbl %al,%eax
                                                                                                                            11ce:	29 d0                	sub    %edx,%eax
                                                                                                                            11d0:	89 03                	mov    %eax,(%rbx)
                                                                                                                            11d2:	48 83 c3 04          	add    $0x4,%rbx
                                                                                                                            11d6:	48 39 eb             	cmp    %rbp,%rbx
                                                                                                                            11d9:	75 e5                	jne    11c0 <main+0x1b>
                                                                                                                            11db:	e8 80 fe ff ff       	callq  1060 <clock@plt>
                                                                                                                            11e0:	49 89 c5             	mov    %rax,%r13
                                                                                                                            11e3:	be a0 86 01 00       	mov    $0x186a0,%esi
                                                                                                                            11e8:	bb 00 00 00 00       	mov    $0x0,%ebx
                                                                                                                            11ed:	eb 05                	jmp    11f4 <main+0x4f>
                                                                                                                            11ef:	83 ee 01             	sub    $0x1,%esi
                                                                                                                            11f2:	74 1d                	je     1211 <main+0x6c>
                                                                                                                            11f4:	4c 89 e0             	mov    %r12,%rax
                                                                                                                            11f7:	8b 08                	mov    (%rax),%ecx
                                                                                                                            11f9:	48 63 d1             	movslq %ecx,%rdx
                                                                                                                            11fc:	48 01 da             	add    %rbx,%rdx
                                                                                                                            11ff:	83 f9 7f             	cmp    $0x7f,%ecx
                                                                                                                            1202:	48 0f 4f da          	cmovg  %rdx,%rbx
                                                                                                                            1206:	48 83 c0 04          	add    $0x4,%rax
                                                                                                                            120a:	48 39 e8             	cmp    %rbp,%rax
                                                                                                                            120d:	75 e8                	jne    11f7 <main+0x52>
                                                                                                                            120f:	eb de                	jmp    11ef <main+0x4a>
                                                                                                                            1211:	e8 4a fe ff ff       	callq  1060 <clock@plt>
                                                                                                                        

                                                                                                                        So you’re saying cmovg is what’s removing the branching?

                                                                                                                        1. 4

                                                                                                                          (Butting in)

                                                                                                                          Yes, that’s right! The inner loop runs from 11f7 to 120d. It performs the addition every time, but only moves the result into the sum register if the condition is true.

                                                                                                                    1. 12

                                                                                                                      The hardware and software freedom issues all seem legitimate, but the ‘questionable politics’ appears to be a dedication to freedom of speech: they apparently purport not to censor legal speech on their platform. I share raymii’s abhorrence for racism and neo-Naziism, but like the ACLU of old I believe everyone deserves liberty, even abhorrent people.

                                                                                                                      1. 15

                                                                                                                        I really never understood this point of view. The slopes are not that slippery. You don’t need to allow people to say that other people should be killed, contained, or otherwise genocided in order to have a free society. You certainly are not obligated to give them a platform to amplify their voice. Hate speech is not equivalent to every other debate that a free society should be allowed to have.

                                                                                                                        You won’t lose your rights if you take away the right to say that entire societal groups should be harmed. Canada and most of Europe are not dystopian hell holes just because they have stronger laws against hate speech.

                                                                                                                        1. 8

                                                                                                                          One thing to add is that purisms platform is a private offer and is not a basic service, so they are perfectly within their right to say “go talk somewhere else”.

                                                                                                                          1. 9

                                                                                                                            I think the platform point is the real valid one, here. “Freedom of speech” is a pretty intellectually dishonest claim here - it matters for the government because the government’s authority is wide-ranging and governs behavior that’s not otherwise involved with the government. The government can arrest you in your home for crimes you committed there. All those First Amendment freedoms are there for the basic purpose of stopping thoughtcrime from being a thing, not because we’re all obligated to support all ideas being shared everywhere at all times.

                                                                                                                            Purism has nothing like a government’s reach; I’d be skeptical you could claim even major social media platforms are so critical to communication that banning certain kinds of speech there is equivalent to banning the ideas themselves. This is the basic premise of all forum moderation.

                                                                                                                            When a private group refuses to moderate its own platform, it’s not a principled stand in defense of freedom of speech because freedom of speech was never at risk. Most likely, it’s a principled stand in defense of laziness, because they don’t want the responsibility. Rarely (I think), it’s a principled stand in defense of whatever unpopular idea they’re being criticized for allowing to stay on their platform. I’d appreciate some honesty either way.

                                                                                                                            To be clear, I think the laziness argument is actually a valid one in some cases. But it’s important to admit that you’re declining that responsibility because it’s more investment than you’re willing to put in, and not try and cast it as a noble goal. In principle it’s not much different from choosing security policies - sometimes it’s not worth putting the effort in for the benefit you get out of it, and if you’re honest about that you and everyone who uses the thing will be better off.

                                                                                                                            1. 1

                                                                                                                              I really never understood this point of view. The slopes are not that slippery. You don’t need to allow people to say that other people should be killed, contained, or otherwise genocided in order to have a free society. You certainly are not obligated to give them a platform to amplify their voice. Hate speech is not equivalent to every other debate that a free society should be allowed to have.

                                                                                                                              Which one of “Black Lives Matter”, “All Lives Matter”, “Blue Lives Matter”, “White Lives Matter” is hate speech that can be legitimately banned in a free society? Which one of these slogans, if any, is shorthand for a set of political claims that imply that other people should be killed, contained or otherwise genocided? This isn’t an abstract hypothetical - this is an active political debate happening in the US right now that has a material affect on functions of the state such as policing policy and anti-discrimination law.

                                                                                                                              Calls like that made in the article for institutions like Purism who would like to run a social network to “take a stand against racism and nazis on their servers”, are necessarily calls that social network providers should make political judgments about exactly what speech is racist - and moreover, to make those political judgments in exactly the same way as the person calling for the censorship. There’s no reason why you should trust a social network that operates according to that principle - whether run by Purism or any other party - not to decide that something you think is important to say is a Nazi statement that can be legitimately banned.

                                                                                                                              1. 7

                                                                                                                                Which one of “Black Lives Matter”, “All Lives Matter”, “Blue Lives Matter”, “White Lives Matter” is hate speech that can be legitimately banned in a free society?

                                                                                                                                They are all a reaction to BLM in an attempt to drown it out: ALM is about “shut up, you’re not relatively important”, Blue LM is about “shut up, cops are awesome” and WLM is about “shut up, slavery wasn’t that bad”, or something like that. All of them are saying, “shut up black people, cops aren’t killing you that much or your deaths aren’t that important compared to our own problems”. The four slogans are not equivalent nor comparable.

                                                                                                                                I’m not sure any of these slogans on their own are legitimately hate speech, but they tend to accompany some other ideas that are more easily classified as hate speech.

                                                                                                                                It would go a long way if the government of the US more directly addressed the evident problems with the police. Doing so would clarify which one of those slogans is addressing a valid concern and which aren’t, and which associated ideas really do not need to be protected as free speech.

                                                                                                                                1. -1

                                                                                                                                  You don’t get to re-write other people’s speech and then punish them for it.

                                                                                                                                2. 6

                                                                                                                                  Which one of [these] is hate speech that can be legitimately banned in a free society? […] this is an active political debate happening in the US right now that has a material affect on functions of the state such as policing policy and anti-discrimination law.

                                                                                                                                  It’s really not - I, at least, haven’t seen anyone saying that people should not be legally permitted to say any variation of “X Lives Matter”. Instead, there’s a lot of conversation about whether, when C ⊂ S, saying “C matters” implies “(S - C) does not matter”, which is clearly not the case.

                                                                                                                              2. 6

                                                                                                                                The issue with a simplistic approach to free speech is that a great deal of speech is extremely effective at silencing other speech. In practice, there is no such thing as absolute free speech, and one cannot claim that free speech for all must be an absolute good when people use speech specifically to stifle others. Fascists have understood this for decades, which is why they so vociferously demand free speech for themselves when they are out of power but deny it the moment they are in power. The alt-right has taken this lesson to heart in recent years, which is why all of modern social media – built with a naive belief in “absolute free speech” – has become such an effective tool for them.

                                                                                                                              1. 1

                                                                                                                                Although most of the dose was directed at the feet, a substantial amount would scatter or leak in all directions. Shielding materials were sometimes displaced to improve image quality, to make the machine lighter, or out of carelessness, and this aggravated the leakage.

                                                                                                                                Holy crap, this was a lot worse than I thought. For 50 years we had untrained people doing the work of radio technicians. All the way into the 1970s!

                                                                                                                                1. 1

                                                                                                                                  Just imagine what they’ll be saying about us in 50 years.

                                                                                                                                1. 6

                                                                                                                                  The only-linking or only-describing “technically correct” argument against copyright infringement has been eroded quite a bit. Courts have deemed links to be as infringing as the content they link to. Instructions on how to produce unauthorised derivative works have been considered abetting copyright infringement. Nintendo has already been aggressively taking down discussions and videos and whatever they can about this feat you blogged. They might order you to remove the repo and the blog post too.

                                                                                                                                  I would be careful with what you have posted here.

                                                                                                                                  1. 11

                                                                                                                                    Like I said in DM, if I get C&D’d, I’ll comply with the C&D. If I don’t, I won’t need to do anything. I have been keeping off-internet backups just in case.

                                                                                                                                    1. 3

                                                                                                                                      I read C&D as Conquer and Destroy.

                                                                                                                                    2. 3

                                                                                                                                      Courts have deemed links to be as infringing as the content they link to.

                                                                                                                                      They might order you to remove the repo and the blog post too.

                                                                                                                                      It would seem that in the face of clearly bogus laws, a legitimate recourse is to massively disobey them. I’m not really interested in sn64 emulators, but I’m going to clone this stuff just in case.