1.  

    As a genuine question from someone who hasn’t used procedural programming productively before, what would be the benefits of a procedural language to justify its choice?

    1.  

      I would say less conceptual/cognitive overhead, but I don’t know if that’s something that can be said of this language as a whole, as I have no experience with it.

      By that I mean something like: I have a rough idea of what code I want from the compiler, how much mental gymnastics is required to arrive at the source-level code that I need to write?

      I would imagine that’s an important consideration in a language designed for game development.

      1.  

        Yeah, it makes perfect sense.

        To dumb down Kit’s value prop, it’s a “Better C, for people who need C (characteristics)”.

      2.  

        On top of alva’s comment, they compile fast and are easy to optimize, too.

        1.  

          I looked this up for some other article on lobste.rs. I found wikipedia to have a nice summary

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

          Imperative programming

          Procedural programming languages are also imperative languages, because they make explicit references to the state of the execution environment. This could be anything from variables (which may correspond to processor registers) to something like the position of the “turtle” in the Logo programming language.

          Often, the terms “procedural programming” and “imperative programming” are used synonymously. However, procedural programming relies heavily on blocks and scope, whereas imperative programming as a whole may or may not have such features. As such, procedural languages generally use reserved words that act on blocks, such as if, while, and for, to implement control flow, whereas non-structured imperative languages use goto statements and branch tables for the same purpose.

          My understanding is that if you use say C you are basically using procedural language paradigms.

          1.  

            Interesting. So basically what was registering in my mind as imperative programming is actually procedural.

            Good to know. Thanks for looking it up!

            1.  

              I take “imperative” to mean based on instructions/statements, e.g. “do this, then do that, …”. An “instruction” is something which changes the state of the world, i.e. there is a concept of “before” and “after”. Lots of paradigms can sit under this umbrella, e.g. machine code (which are lists of machine instructions), procedural programming like C (where a “procedure”/subroutine is a high-level instruction, made from other instructions), OOP (where method calls/message sends are the instructions).

              Examples of non-imperative languages include functional programming (where programs consist of definitions, which (unlike assignments) don’t impose a notion of “before” and “after”) and logic programming (similar to functional programming, but definitions are more flexible and can rely on non-deterministic search to satisfy, rather than explicit substitution)

              1.  

                If functional programs don’t have a noton of before and after, how do you code an algorithm? Explain newton’s method as a definition.

                  1.  

                    both recursion and iteration say “do this, then do that, then do … “. And “let” appears to be assignment or naming so that AFTER the let operation a symbol has a meaning it did not have before.

                    open some namespaces
                    open System
                    open Drawing    
                    open Windows.Forms
                    open Math
                    open FlyingFrog
                    

                    changes program state so that certain operations become visible AFTER those lines are executed, etc.

                    1.  

                      It is common for computation to not actually take place until the result is immediately needed. Your code may describe a complicated series of maps and filters and manipulations and only ever execute enough to get one result. Your code looks like it describes a strict order the code executes in, but the execution of it may take a drastically different path.

                      A pure functional programming language wouldn’t be changing program state, but passing new state along probably recursively.

                      1.  

                        but you don’t really have a contrast with “imperative” languages - you still specify an algorithm. In fact, algorithms are all over traditional pure mathematics too. Generally the “state” being changed is on a piece of paper or in the head of the reader, but …

                  2.  

                    If functional programs don’t have a noton of before and after, how do you code an algorithm?

                    Roughly speaking, we define each “step” of an algorithm as a function, and the algorithm itself is defined as the result of (some appropriate combination of) those functions.

                    As a really simple example, let’s say our algorithm is to reverse a singly-linked-list, represented as nested pairs [x0, [x1, [x2, ...]]] with an empty list [] representing the “end”. Our algorithm will start by creating a new empty list, then unwrap the outer pair of the input list, wrap that element on to its new list, and repeat until the input list is empty. Here’s an implementation in Javascript, where reverseAlgo is the algorithm I just described, and reverse just passes it the new empty list:

                    var reverse = (function() {
                      function reverseAlgo(result, input) {
                        return (input === [])? result : reverseAlgo([input[0], result], input[1]);
                      };
                      return function(input) { return reverseAlgo([], input); };
                    })();
                    

                    Whilst Javascript is an imperative language, the above is actually pure functional programming (I could have written the same thing in e.g. Haskell, but JS tends to be more familiar). In particular, we’re only ever defining things, in terms of other things. We never update/replace/overwrite/store/retrieve/etc. This style is known as single assignment.

                    For your Newton-Raphson example, I decided to do it in Haskell. Since it uses Float for lots of different things (inputs, outputs, epsilon, etc.) I also defined a bunch of datatypes to avoid getting them mixed up:

                    module Newton where
                    
                    newtype Function   = F (Float -> Float)
                    newtype Derivative = D (Float -> Float)
                    newtype Epsilon    = E Float
                    newtype Initial    = I Float
                    newtype Root       = R (Float, Function, Epsilon)
                    
                    newtonRaphson :: Function -> Derivative -> Epsilon -> Initial -> Root
                    newtonRaphson (F f) (D f') (E e) (I x) = if abs y < e
                                                                then R (x, F f, E e)
                                                                else recurse (I x')
                    
                      where y  = f x
                    
                            x' = x - (y / f' x)
                    
                            recurse = newtonRaphson (F f) (D f') (E e)
                    

                    Again, this is just defining things in terms of other things. OK, that’s the definition. So how do we explain it as a definition? Here’s my attempt:

                    Newton’s method of a function f + guess g + epsilon e is defined as the “refinement” r of g, such that f(r) < e. The “refinement” of some number x depends on whether x satisfies our epsilon inequality: if so, its refinement is just x itself; otherwise it’s the refinement of x - (f(x) / f'(x)).

                    This definition is “timeless”, since it doesn’t talk about doing one thing followed by another. There are causal relationships between the parts (e.g. we don’t know which way to “refine” a number until we’ve checked the inequality), but those are data dependencies; we don’t need to invoke any notion of time in our semantics or understanding.

          1.  

            really dislike all that address randomization and stack munging stuff. It seems like a hack and an admission that system utilities are going to be security holes.

            1.  

              Exactly! It’s why I push that other stuff. Their competition at Green Hills, Lynx, and VxWorks (MILS team) were showing it was largely unnecessary if you have rigorous, development practices.

              However, there’s failures that can happen, the known unknowns, where you can’t do anything about preventing them. You can only disrupt or contain the attacks. These kind of methods can counter some of that. It’s also why I’m a big fan of obfuscation on top of strong, security engineering.

              1.  

                the big example of a failure that was supposed to be caught by grsecurity were bad programming errors that would have been flagged by e.g. coverity.

            1. 69

              I’m kind of speechless. This looks truly genuine, and it makes me hopeful for the Linux kernel community (and all the other open-source communities it influences!) in a way I hadn’t predicted would ever happen.

              1. 8

                I feel quite the opposite. I think it’s very sad that the reddit/twitter bandwagon of people that never actually contribute anything to open source but love to rip those that do to shreds have finally go to him.

                1. 46

                  This argument is a classic to be found in all of those discussions, but doesn’t hold any water.

                  • Coraline Ada, the woman who’s work the now adopted Code of Conduct is based on, is the primary author of 25 Ruby gems, regular contributor, very welcome as a speaker in the Ruby world.
                  • Sage Sharp, known for their angry good-bye from the Linux kernel and outspoken critic of Linus, has been author and maintainer of the USB-3.0 implementation in the kernel. Sage also lead intern groups working on the Kernel through Outreachy.
                  • Matthew Garret, also a very outspoken critic, has been maintaining kernel power management modules and is constantly working on Linux related issues ever since.

                  The no-contribution Twitter crowd, right?

                  The list could go on and on. Find another angle, this one insults the intelligence of everyone at the discussion table. It only works if you don’t name names, if you do, you suddenly find that these people do contribute.

                  Finally, as someone managing a huge FOSS project with > 100 maintainers, I think this gatekeeping isn’t part of open standards. If your project is open and contribution is free to everyone, the barrier for criticising your projects methods and practices should be as low as the barrier for contributing anything else: as close to zero as possible. This is also important for practices to travel between projects.

                  1. 7

                    And very recently, Alexander Popov, no lightweight by any measure. https://lwn.net/SubscriberLink/764325/09702eb949176f55/.

                    1. 1

                      I’m sympathetic to Torvalds critique, if not his wording. It seems bizarre to just live with kernel code that uses uninitialized data structures and doesn’t cross check pointers and hope that some complex mechanism will ameliorate the problem.

                      1. 5

                        Sure, his technical arguments were probably sound, as usual, but his abuse of Popov left the latter “emotionally dead for weeks”. Popov might’ve gotten the fixes made and thus the patch committed much sooner had Linus not abused him so the project also loses.

                        1.  

                          I am not convinced the patch ever became worthwhile - but I agree that Linus’s argument style was counterproductive and abusive.

                  2. 22

                    I think you’ve got a selection bias in which criticism you’re seeing. From my perspective, the people who I hear take the most issue with Linus’s conduct are largely people who’ve quit kernel development as a result of it, or people with many years of OSS experience (such as myself).

                    1. 5

                      I’m not an advocate of the absurdly excessive personal attacks for which Linus is known but at the same time I think quitting kernel development because of those personal attacks shows a lack of awareness of how OSS and specifically Linux operates. The reality is that Linux is Linus’s project and he’s incentivized to take your patches to make his project better, not to build a cooperative community. The community, if one could call it that, is incidental to Linus’s incentives.

                      If a person quits because of Linus’s behavior, it signals to me that their motivation had something to do with the approval of others and unfortunately those motivations are incompatible with Linux’s development process. Linus’s insults are just the tip of the iceberg when it comes to all the other problems that will arise due to the mismatched expectations. A famous example was when Ingo Molnar rewrote Con Konlivas’s CFS, or the multiple times grsecurity’s patches were rewritten by others.

                      Linus basically doesn’t owe anyone anything, and it’s not because he’s a jerk (though maybe he is), it’s because of the emergent social phenomena around OSS. Similarly, no one owes Linus anything. Many actors out there are using Linux to facilitate their billions of revenue and not paying Linus anything. If you write code and put it out there, there is no obligation that what you want to happen with it will happen, and it’s not unlikely that what happens with it will hurt your ego. If someone quits kernel development because of Linus’s behavior, they really should reexamine why they want to write OSS code in the first place and whether or not OSS development is the best way to reach their goals.

                      All that said I don’t necessarily disagree with Linus’s recent decision. It shows a conscious effort on his part to change the strategy used to sustain the project. I’m only criticizing those who may have mismatched expectations of the potential outcomes in OSS work.

                      1. 3

                        The reality is that Linux is Linus’s project and he’s incentivized to take your patches to make his project better, not to build a cooperative community.

                        Linus is an employee of the Linux Foundations, a nonprofit corporation with stakeholders like Red Hat, Google, and Intel, and he owes his employers their money’s worth as much as anybody else who works for hire.

                        I would agree with you if this was still the Linux that wasn’t going to become a big thing like Hurd. But Linus chose to remain the project lead even as the job became less technical and more political, and when they decided to pay him to work on it full-time, he accepted. There’s money, there’s a trademark, and there’s inertia undermining any claim that the situation is totally voluntary and that nobody owes anybody anything.

                        And that’s before we even consider the fact that there is a huge and informal web of soft obligations because human beings don’t work the way you say they do.

                        1.  

                          Linus owns the trademark and even if he didn’t work for the Linux Foundation he would still be the maintainer of Linux. The entire development structure is centered on him. No company could successfully and sustainably fork Linux if Linus decided to operate against their goals.

                          I made no claim as to how human beings work. My claim is simply that OSS is essentially a free-for-all and those that aren’t acutely aware of that and incorrectly treat OSS like a traditional organization that has inbuilt obligations to their well-being will be inevitably burned. Linux is not a cathedral, it’s a bazaar. http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/

                    2. 6

                      Are you talking about the crowd that is currently lambasting him for “yielding to the SJWs”?

                      1. 9

                        No I’m talking about the much larger crowd of people applauding him for ‘moderating himself’ and other such nonsense. I’m talking about the huge crowd of people that act like every message he sends is a scathing personal attack on someone for indenting something incorrectly.

                        1. 11

                          Well, perhaps it’s just that our perception of the (ultimately utterly pointless) social media reactions is colored by our preconceptions. I’ve mostly seen people praise and defend him.

                          I’m not sure what the resistance is about. It seems to me that all these CoCs are just a way of codifying “don’t be an asshole”, and it’s perplexing that people get so angry about it. But it cannot be that, right? Surely you and others are not against “don’t be an asshole” as a work ethic?

                          If not that, then what? I’ve listened to Sam Harris quite a lot recently, so I have some feeling about the problem of identity politics et al, especially in the US. I’m just still not exactly convinced, because I don’t see it happening. Perhaps it’s not that big a problem in Europe?

                          1. 10

                            I’m not sure what the resistance is about. It seems to me that all these CoCs are just a way of codifying “don’t be an asshole”, and it’s perplexing that people get so angry about it. But it cannot be that, right? Surely you and others are not against “don’t be an asshole” as a work ethic?

                            I think a lot of this is related to the “hacker identity” which is strongly tied up with counterculture, stepping outside/dismissing/rebelling against social conventions. For example, in the genre of cyberpunk (which I’d consider a hacker’s dream world, even if it’s a dystopia) there is almost no law and order or even anarchy, everyone does their own thing and your skill is the only thing that counts.

                            So I think a lot of the reaction is “who are you to come in and police the way we’ve always been doing things?”. I suppose a lot of these people claiming are seen as outside intruders enforcing their “outside” morals on the hacker “community” at alrge (if there is even such a thing). For this reason I think it’s important that people like Linus, who are truly regarded as being “from” the community, are signaling that change needs to come. We’re all human, not machines.

                            1. 8

                              I think there are two big issues. One is that “hacker culture” has historically attracted people with social issues. I know that it appealed to me as an unpopular, nerdy, shy kid: I didn’t have a lot of outlets, so computers and the Internet helped me form my personality. That’s great; I don’t know where I’d be without it. That leads into the second issue, though, which is that it’s utterly dismissive of all the traditions we call the “humanities.” I am lucky, I think, in that I’ve always been “into” literature, philosophy, theology, and so on, and could balance my computer-nerddom with those fields. (In fact, my only college degree is a BA in English.) Without that tempering influence, it’s very easy to get caught up in an aspiration-to-Spock sort of behavioral cycle.

                            2. 5

                              Surely you and others are not against “don’t be an asshole” as a work ethic?

                              Who defines what an ‘asshole’ is?

                              My problem is that Codes of Conduct explicitly and implicitly privelege some groups but not others for protection, and that even when de jure they protect some groups, de facto they do not.

                              Moreover, I find the idea that we should generally value social etiquette more than technical excellence to be troublesome. Are there people who are so socially rude that they should be shunned? Sure. But should shunning be our go-to? I don’t think so.

                              1. 5

                                I find the idea that we should generally value social etiquette more than technical excellence to be troublesome.

                                Is that what’s actually happening? I thought this was about valuing both.

                              2. 2

                                It seems to me that all these CoCs are just a way of codifying “don’t be an asshole”, and it’s perplexing that people get so angry about it.

                                I can’t speak for all opponents, but for me at least I disagree with it being “codified”, or rather formalized what essentially isn’t formal. People contributing to software won’t just suddenly become good people because there is a CoC. It’s like wanting to prevent a husband from abusing his wife by requiring him to hold up his hands whenever they are in the same room.

                                What I usually fear from these kinds of things is that they one the one hand subvert genuine communities, customs and practices, while possibly encouraging the harmful parts of these communities to discreetly and dishonestly live on, much harder to fight or criticize. Essentially it’s taking a passive stance towards real issues people should actively and collectively oppose – say harassment or insulting people.

                                Turning issues of civility and decency into rules, especially if these are too vague, always bears the danger of being on the one hand abused by those trying to evade then (“oh, that’s not what I meant”) and on the other hand by those enforcing them (“rules are rules”)…

                                But then again, I’m not a Linux contributer (although I would be honored to managed to get there one day), and I can just hope it turns out well for them, and the issue doesn’t get instrumentalised.

                                1. 4

                                  People contributing to software won’t just suddenly become good people because there is a CoC. It’s like wanting to prevent a husband from abusing his wife by requiring him to hold up his hands whenever they are in the same room.

                                  I find that analogy deeply flawed (and somewhat bizarre). The CoC doesn’t require anyone to do anything as ridiculous as hold their hands in the air while in the same room as their wife.

                                  Essentially it’s taking a passive stance towards real issues people should actively and collectively oppose – say harassment or insulting people.

                                  So you’re saying that rather than having a CoC it would be better if, every time Linus or some other kernel developer was offensive, other developers stepped in and told them off? How do you make that happen? Do you not think the CoC is a step towards making that happen?

                                  1. 1

                                    The CoC doesn’t require anyone to do anything as ridiculous as hold their hands in the air while in the same room as their wife

                                    Of course not literally, but for many people they have to adjust their own behavior in unusual (and often enough unknown) ways. I’ve experienced communities on the Internet which banned their users for using any phrase that has to do with eyesight disabilities (e.g “I can’t see what’s wrong”), and most people simply just didn’t know about this.

                                    And the point of my analogy still remains, the issue with the husband beating his wife isn’t that he can but that he wants to, consciously or unconsciously. Just saying “Don’t” won’t help solve the problems in the long term, just suppresses them.

                                    So you’re saying that rather than having a CoC it would be better if, every time Linus or some other kernel developer was offensive, other developers stepped in and told them off?

                                    The way I see it, this would obviously be better. This means that the community has a strong sense of internal solidarity and openness that they manage to enforce by their own means. Essentially this means that the goals of the CoC come naturally and authentically to the members.

                                    How do you make that happen? Do you not think the CoC is a step towards making that happen?

                                    I really can’t say, nor do I know. Nothing I’m saying is authoritative or really substantial, I’m just trying to give a more reasonable criticism of codes of conducts than certain other people in this thread.

                                    1. 7

                                      Just saying “Don’t” won’t help solve the problems in the long term, just suppresses them.

                                      Suppressing the problem does help, though. I don’t want to continue the husband/wife analogy as I find it distasteful, but once you establish norms of good (or at least better) behaviour, people do adjust. And by having the CoC, even though it doesn’t cover every case, it sets up some basic guidelines about what will and won’t be accepted - so you remove the excuse of “no this is fine, everyone talks this way, deal with it” from the outset. This alone can make people who otherwise feel vulnerable, and/or belong to marginalised groups etc, to feel more comfortable.

                                      I’d prefer we didn’t need CoCs, but clearly we need something to make development groups less unpleasant to participate in. And even if you don’t think they’re effective, I can’t see how they hurt.

                                      1.  

                                        I guess we just have different views on the question if issues are to be addressed or suppressed (in my eyes willfully ignored). But that’s fine. There’s more I could say, but I won’t for the sake of brevity, except that a CoC should (imo) be always the last resort when everything else has failed. A kind of martial law. Since they aren’t just guidelines or tips, but can justify very drastic behavior.

                                        1.  

                                          I guess we just have different views on the question if issues are to be addressed or suppressed

                                          I think that’s a mis-characterization. We both seem to think that offensive behaviour should be addressed by other people stepping in as appropriate, but I see the CoC as prompting this to happen, whereas you are saying that you don’t know how to make it happen and that the existence of a CoC will make people suppress their bad behaviour and that this is bad (for some reason which I’m not clear on).

                                          I would say that the existence of a CoC may make people suppress an urge to spout off an offensive rant against another developer, and that’s a good thing. I also think that it lends a stronger position to anyone who does step in when offensive behaviour does occur (despite the existence of the CoC). I think it’s more likely that, rather than completely suppressing offensive behaviour, the CoC causes more people to respond and challenge such behaviour, which is the outcome that we both seem to think is ideal (and which leads to less of the behaviour occurring in future). Now if you disagree that the CoC will lead to that happening, that’s fine, but:

                                          A kind of martial law. Since they aren’t just guidelines or tips, but can justify very drastic behavior.

                                          That’s just ridiculous. A CoC is nothing like martial law. The only behaviour it justifies is that of stepping in to control other, offensive, behaviour:

                                          … to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

                                          Maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.

                                          These are the only behaviours that are actually “justified”, to use your word, rather than expressly prohibited, by the CoC. I think saying these are “drastic” and comparing to martial law is clearly an immense level of exaggeration.

                                          1.  

                                            but I see the CoC as prompting this to happen, whereas you are saying that you don’t know how to make it happen and that the existence of a CoC will make people suppress their bad behaviour and that this is bad (for some reason which I’m not clear on).

                                            I don’t want this to go on for too long, so I’ll just quickly clarify my two main points:

                                            • banning obvious misbehavior won’t change people, it will at best make them be quiet, at worst invite them to a passive aggressive game of trying to evade the rules while still trying to be mean or hurtful.
                                            • a CoC is a principally passive stance, where active action is necessary trying to address and resolve issues. Suppressing discussion where necessary may (again) lead to a overall harmful atmosphere, especially towards those not used to these, usually American, norms (because of different backgrounds, cultures, standards).

                                            So it’s not that it’s irrelevant, but that it may go wrong, specifically when applied to quickly or without introduction. But again, maybe not.

                                            A CoC is nothing like martial law.

                                            You’re right, I should have put “martial law” in quotes. My point is that it shouldn’t be a permanent solution, but as you said try to push a community in a better direction, “stabilize” a situation so to speak. Even here between us we see how different background, invoke different images and connotations with examples as simple as metaphors.

                                            1.  

                                              You’re right, I should have put “martial law” in quotes. My point is that it shouldn’t be a permanent solution

                                              Ok, I understand now what you meant.

                                              banning obvious misbehavior won’t change people

                                              I am not sure that I agree with this. For one thing, “obvious misbehaviour” may be generally understood but is not obvious to everyone. You will see many people arguing that Linus’ rants are perfectly acceptable, for various reasons. By making a clear statement that “behaviour X is wrong” you are removing the doubt.

                                              at worst invite them to a passive aggressive game of trying to evade the rules while still trying to be mean or hurtful

                                              I believe that the Contributors’ Covenant deliberately avoids trying to produce an exhaustive list of disallowed behaviour, precisely so that the rules can’t be avoided in this way. Yes, there will always be some problematic individuals who push the limits regardless. But is it better that they are at least constrained in this way, rather than being able to be openly offensive? I think so. And I think this anyway is somewhat irrelevant to the issue of a CoC; even if you generally enforce good behaviour without a CoC, there can always be trouble-makers who test the limits.

                                              a CoC is a principally passive stance, where active action is necessary trying to address and resolve issues. Suppressing discussion where necessary may (again) lead to a overall harmful atmosphere

                                              A CoC is just a document, so it is passive in that sense, yes. But it doesn’t prevent any affirmative action - it encourages it.

                                              What this seems to boil down to, if I’m reading you correctly, is that you’re saying that it’s better to allow offensive behaviour to occur - and then to have the perpetrator reprimanded - than it is to document what is considered offensive behaviour so that it will be deliberately avoided. I cannot see how that is better. If someone’s response to a rule is to try to find underhanded ways to work around that rule, what difference does it make whether the rule is written down or enforced only by-the-way?

                                              1.  

                                                For one thing, “obvious misbehaviour” may be generally understood but is not obvious to everyone. You will see many people arguing that Linus’ rants are perfectly acceptable, for various reasons.

                                                Ok, but these people would say these rants are good because they are brutal or some kind of “not nice”. Nobody, or at least nobody I’ve seen, claims that Linus is always “kind” and “civil” and people are just misunderstanding him.

                                                Yes, there will always be some problematic individuals who push the limits regardless. But is it better that they are at least constrained in this way, rather than being able to be openly offensive? I think so. And I think this anyway is somewhat irrelevant to the issue of a CoC; even if you generally enforce good behaviour without a CoC, there can always be trouble-makers who test the limits.

                                                I get your point. I still belive there to be a difference between the two cases – maybe not immediately visible, but on a more symbolic level. In the first case the trouble-maker stands in conflict with the (official, formal) document and will try to defend his or her behavior on semantic issues and misreadings, while in the second case the conflict is more direct with the “community”. This is not to say that no rules should be made or no behavior should be sanctioned – just that in the long term this should be a internal and organic (eg. self-made (maybe even unofficial) “community guidelines”, that serve to introduce new members) process not ordained from above.

                                                you’re saying that it’s better to allow offensive behaviour to occur - and then to have the perpetrator reprimanded - than it is to document what is considered offensive behaviour so that it will be deliberately avoided

                                                I wouln’t phrase it that way, since to me many of these terms are too vague. Anyways, in my eyes this seems to be unrelated to CoC: from my experience most people encounter a CoC not by reading it before they do anything, but by people using it as “legislation” – they make a mistake and are then banned and excluded – often enough permanently because it’s just the easiest thing for moderators to do. Either way, the “offensive act” has taken place – with a quick and formal process leading to confusion on the one side and a honest attempt to point out what a person has done (on a case-to-case basis) in the other.

                                                1.  

                                                  For one thing, “obvious misbehaviour” may be generally understood but is not obvious to everyone. You will see many people arguing that Linus’ rants are perfectly acceptable, for various reasons.

                                                  Ok, but these people would say these rants are good because they are brutal or some kind of “not nice”. Nobody, or at least nobody I’ve seen, claims that Linus is always “kind” and “civil” and people are just misunderstanding him.

                                                  That’s my point. The CoC makes it clear that we are expected to be civil. Therefore if anyone goes on an uncivil rant, you can’t claim that it’s ok because [whatever reason], as it’s been explicitly stated that it’s not acceptable. You’re making the community rules about what certain unacceptable behaviour explicit, and removing the inevitable and fruitless debates over whether it’s ok to swear at someone for submitting a bad patch etc.

                                                  Whereas now, people don’t understand that it’s not ok to be uncivil.

                                                  Either way, the “offensive act” has taken place – with a quick and formal process leading to confusion on the one side and a honest attempt to point out what a person has done (on a case-to-case basis) in the other.

                                                  Other than anecdotal examples where it may have been the case with some unknown number of other projects (links to relevant mailing list posts would be interesting to see), I don’t see any evidence that a CoC will necessarily lead to confusion nor to people being wantonly banned from participating for one-off infractions; I certainly don’t think it’s designed or intended for that.

                                      2.  

                                        I’ve experienced communities on the Internet which banned their users for using any phrase that has to do with eyesight disabilities (e.g “I can’t see what’s wrong”), and most people simply just didn’t know about this.

                                        As a visually impaired person with several friends who are totally blind, this strikes me as ridiculous. I have no problem with such everyday use of “see” and related words. I think my blind friends would agree.

                                2. 8

                                  What’s so bad about people in positions of power to stop being abusive? Isn’t it something to applaud?

                              3. 2

                                It’s possible the CoC, the heart-warming public statement and Linus taking a time-out is a double-blind.

                                Well he could actually be a little burnt out as well, which is also totally fine.

                                I totally support him which ever way the pendulum falls.

                            1. -1

                              Adopting Coraline Ada’s anti-meritocratic CoC is a disaster. Its intended as political tool for feminism, this is no secret. This will, at best, split the community.

                              1. 17

                                I contemplated not answering to this comment, because I am tired of this discussion a bit, yet I don’t want to leave it unchallenged. I think

                                • The Contributor Covenant is a very reasonable guideline. Not every sentence is as I would have phrased it, but if you wholeheartedly reject it, I kind of suspect you aren’t interested in a community I want to work in. There are some legal implications I think that would be worth discussing before introducing it, though, but overall I share its intent.
                                • Feminism is a positive movement in our societies, it has liberated women and it has benefited men as well.
                                • Politics is the process of making decisions that apply to members of a group, so yes, this CoC is politics, but not having a CoC is also politics, just less organized politics.
                                • Meritocracy is a fairy-tale political ideal that never realizes usually because “merit” cannot be defined.
                                1.  

                                  The Contributor Covenant is a very reasonable guideline.

                                  Questioning its contents is now off-limits. Rules must stay debatable. The “not aligned to this Code of Conduct” part is unnecessary for moderation, but necessary if its intended to be abused as power instrument.

                                  I kind of suspect you aren’t interested in a community I want to work in

                                  You don’t know how i work or where i work or what i do, but you still voice that (pre-)judgement? IMHO its really rude. If you are interested, i offer you to come around and have a talk.

                                  Feminism is a positive movement in our societies, it has liberated women and it has benefited men as well.

                                  Just from the ire it created, i don’t think the 3rd wave feminism, especially identity politics, are helpful to society. People are so fed up with it, they vote for people like Trump just to spite them. Maybe some time for reflection what went wrong?

                                  Politics is the process of making decisions that apply to members of a group, so yes, this CoC is politics, but not having a CoC is also politics, just less organized politics

                                  Ill quote http://paul-m-jones.com/archives/6214:

                                  […], it is true that Ehmke thinks of open source as a political arena. As such, one must read the Contributor Covenant as a political document, with political means and political ends. Specifically, it is a tool for Social Justice.

                                  Kernel-internal politics are fine, but Coraline Ada using it as arena is off-limits.

                                  Meritocracy is a fairy-tale political ideal that never realizes usually because “merit” cannot be defined

                                  Things don’t need to be defined to be valid (including personal identity).

                                  In Software Development, competence is a scarce resource. If someone has the ability and knowledge to do something, they’ll also end up as decision maker in this area. This isn’t fairy-tale, this is how self-organization works, and this is how many OSS-Communities work. Its Ada who now whats that things happen differently. I highly doubt that her ideal will work at all.

                                2. 8

                                  I want to disagree with this, because I don’t believe that “a political tool for feminism” is necessarily a bad thing, but perhaps that’s my politics showing. Do you have any specific objections to the CoC? What in particular is anti-meritocratic about it?

                                  Edit: Link to the CoC itself, courtesy of rodolfo elsewhere on this page https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/process/code-of-conduct.rst?id=8a104f8b5867c682d994ffa7a74093c54469c11f

                                  1. 1

                                    The content is only one of the issues. Alone the fact that its imposed top-down will make feel many people violated in their moral autonomy. The worst thing is, people who don’t exercise their moral autonomy don’t understand what kind of loss this is.

                                    Maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.

                                    Tell me, how is this different from authoritarian rule?

                                    1. 14

                                      Tell me, how is this different from authoritarian rule?

                                      It sounds like… a rule. Some places have those, like “please put your clothes back on or we’ll ask you to leave the shop”, but it’s the content that makes them reasonable or otherwise.

                                      My question is what specifically does this code of conduct prevent people from doing that you object to?

                                      Examples of unacceptable behavior by participants include:

                                      • The use of sexualized language or imagery and unwelcome sexual attention or advances
                                      • Trolling, insulting/derogatory comments, and personal or political attacks
                                      • Public or private harassment
                                      • Publishing others’ private information, such as a physical or electronic address, without explicit permission
                                      • Other conduct which could reasonably be considered inappropriate in a professional setting
                                      1. 5

                                        I’m not the person you’re replying to, but I believe this point can raise some contention. It’s argued it’s so weakly defined that it could be abused both ways.

                                        Other conduct which could reasonably be considered inappropriate in a professional setting

                                        1. 4

                                          Yes, that’s a fair point - thanks. Personally, I believe there’s enough general consensus on what is considered appropriate in a professional setting that this isn’t immediate cause for concern, but it will come down to seeing when and how the CoC is enforced.

                                          Most workplaces have similar language in their contracts and it certainly can raise contention depending on how it’s applied.

                                          I realise you’re not liwakura, but just to bring it back around - I don’t think there’s anything in that to justify his original statement that it’s “a disaster”, or “a political tool for feminism”, however.

                                      2. 14

                                        I was once a visitor to South Africa during the apartheid government and stayed a couple of nights in a house up the hill from a police station. You could hear people screaming as they were tortured some nights. Being told that voluntarily participating in a group project requires you to be polite is really different from living under authoritarian rule.

                                        1. 6

                                          Tell me, how is this different from authoritarian rule?

                                          You are free to contribute to the Linux kernel as long as you abide by the code of conduct. If you do no abide by it, you may be censured. You can either change your behavior, stop contributing, or fork the code and continue on your own.

                                          This last is what makes it different from authoritarian rule.

                                          1. 5

                                            Tell me, how is this different from authoritarian rule?

                                            You can’t just walk away from authoritarian rule.

                                            No-one is being forced to contribute to Linux and follow the rules the community has.

                                            1.  

                                              imposed top-down

                                              What isn’t imposed top-down in open source projects?

                                              The license, the initial code, the name, the decisions on accepting patches, who gets commit access… The project owners can (and should) impose whatever they feel is necessary. What the hell is wrong with that? What makes you feel entitled to project maintainers not setting their rules?

                                              The only autonomy you have is to fork the project.

                                        1. 4

                                          I’m not sure I understand why the author places category theory in opposition to neural-nets and reenforcement learning. These are orthogonal technologies which can complement each other. The author’s assertion that category theory is somehow the successor to technologies like forward/backwards search (planning) is strange because category theory is primarily used in PL, not AI.

                                          Unrelatedly, the quote from Rich Hickey about how the goals of spec diverge from that of type systems, although inspiring, seems to reveal a lack of understanding of what type systems afford. Meanwhile Rich states several goals which are exactly the things that type systems prove about programs (though he uses the word “validate”).

                                          I’m left scratching my head. Though many interesting perspectives are expressed, this author’s “Type Wars” feel like an exercise in pointless oneupsmanship. I think all of these technologies will benefit the future, as they are demonstrating potential in the present.

                                          1. 1

                                            I have to say that I am dubious about the formal type systems one finds in Cardelli and on. I don’t see what they provide and I certainly do not see that they provide the advertised benefits. Cardelli: • No untrapped errors occur (safety guarantee). • None of the trapped errors designated as forbidden errors occur.

                                            I don’t see that, except in a trivial sense that the runtime catches all traps and does dynamic checking.

                                          1. 3

                                            I can’t remember who posted the interesting type safety idea of making sure that inches and meters were never combined.

                                            1. 3

                                              You can get this in haskell, along with a huge variety of other units, and conversions

                                              http://hackage.haskell.org/package/dimensional

                                              1. 1

                                                I’m not sure if that one was me. I did push for it for miles and kilometers given we already lost a spacecraft to a conversion error. The technique is types that make things unique by default. Type Miles as Int and Kilometers as Int are treated as two, different types that have to be casted to ensure developer knows something could happen. Ada has this.

                                                There’s also the possibility that they say distance in two modules from two teams with one being miles and one kilometers. That could’ve been how that spacecraft error played out. The types wouldn’t help. So, I further wanted a collection of various units such as miles or kilometers in the standard library where developers explicitly used them to catch more of these errors. That led me to Frink. I bookmarked it in case anyone wanted to work on something like this. It would probably be a nice, head start. Most of it is just formulas but some stuff like currencies are dynamic. Not sure best route for handling that.

                                                1. 2

                                                  smart https://en.wikibooks.org/wiki/Ada_Programming/Type_System

                                                  I think Tedu may have described how to get something like that in C with structs

                                                  1. 1

                                                    I saw the same idea for handling user input. Functions that take user input would be typed as DirtyString or something to that effect and would need to be sanitized before being used elsewhere. For me, it was an enlightening use of types.

                                                    1. 2

                                                      I actually did that! It was like having safe vs unsafe in modules. Good for highlighting problems.

                                                      The other thing I used it for was Red/Black separation to stop leaks. You make sure stuff with secrets is Red, stuff that’s potentially-hostile is Black, watch CPU/cache/memory interactions, and type system helps with that as they get mixed at various points. I literally added it to variable names, though, which let me do it manually instead of writing a type checker.

                                                  2. 1

                                                    F# has that https://fsharpforfunandprofit.com/posts/units-of-measure/

                                                    I’ve never used F# though

                                                  1. 5

                                                    “This is a complex technical field with nontrivial trade-offs in time and expressiveness! I know, let’s tie it to gender politics and Critical Theory! That’ll solve everything!” — The least likely sentence in the Universe.

                                                    Next up is “Rust: Is Ownership a Reactionary Plot?”

                                                    Edit: OK, this author tipped their hand a bit too much at the end:

                                                    Let’s call a spade a spade.

                                                    This is an outright racist dog-whistle, and isn’t even subtle. I can’t just play along anymore if that’s the level of humor on display. I’ll leave my jokes (such as they are) but I have to call that much out, at least.

                                                    1. 3

                                                      This is an outright racist dog-whistle, and isn’t even subtle.

                                                      Isn’t it? I had no idea until (prompted by your comment) I googled around and found how it’d acquired those implications recently in America. It’s used in Australia without any such nuance, and presumably other countries too. I wouldn’t be quick to assert that it’s a dog whistle, especially not in an article that’s being criticised for leaning too hard in the social justice direction.

                                                      1. 1

                                                        I wouldn’t be quick to assert that it’s a dog whistle, especially not in an article that’s being criticised for leaning too hard in the social justice direction.

                                                        That’s one thing which makes me conclude it’s meant in a racist fashion: The article does lean too hard in a social justice direction, as if it were written by someone trying to discredit that viewpoint by making it look ridiculous, or at least have some fun at its expense.

                                                        Any viewpoint has honest adherents who can make it look ridiculous all on their own, but the combination of factors here made me conclude it is, in fact, a racist dog-whistle.

                                                        1. 2

                                                          as if it were written by someone trying to discredit that viewpoint by making it look ridiculous, or at least have some fun at its expense

                                                          Mmn, now I see what you mean. :/

                                                      2. 1

                                                        ‘Call a spade a spade’ is not a dog whistle and never has been a dog whistle. It’s a common phrase, used all over the world.

                                                        I’ve downvoted you for trolling, because there’s absolutely no way you are unaware that ‘call a spade a spade’ is a common term with no racist implications. You’re flamebaiting and trolling and should go to HackerNews where this kind of discussion belongs.

                                                        1. 1

                                                          ‘Call a spade a spade’ is not a dog whistle and never has been a dog whistle.

                                                          It’s become a dog whistle through usage of “spade” as a term for Black people, and is undeniably questionable at best, and, in the context of an over-the-top hyperbolic attempt to make Liberals look like lunatics, must be interpreted in that fashion.

                                                          1. -1

                                                            ‘Spade’ is not a term for black people, and is not ‘questionable’. Nobody is talking about ‘liberals’ either.

                                                            Stop assuming everyone shares your ridiculous American political ideas.

                                                            1. 2

                                                              ‘Spade’ is not a term for black people, and is not ‘questionable’.

                                                              I’ve just demonstrated otherwise.

                                                              Stop assuming everyone shares your ridiculous American political ideas.

                                                              And now you’ve tipped your hand, troll.

                                                              1. 1

                                                                Turns out that even within a single language, words can have meanings that change by period, context or location. Shocking, I know.

                                                                1. [Comment removed by moderator pushcx: Personal insults are over the line. It's clear you two will never agree, so move on.]

                                                                  1. 0

                                                                    Don’t get hysterical.

                                                        1. 1

                                                          Quite a few people here demanded evidence that PC or radical leftists were doing some kind of coordinated work to suppress others’ views on forums, in media, journals, and so on. Count the first link as a nice example. A handful of people in secret and on Facebook misrepresenting a scientists work got everyone from journals to NSF to cancel support over concern of damaged image, losing people in professional network, and/or people getting fired. The scientific, free-speech alternative is that the paper is published followed by such scientists either corroborating or refuting it with evidence. They have no interest in that: political domination is more important facts or due process.

                                                          1. 2

                                                            That’s pretty poor evidence for your idea. If you bother to actually read the links you will find that the board of the NYJM raised questions about the lack of proper review of the paper and the quality of the mathematics

                                                            This statement is meant to set the record straight on the unfounded accusations of Ted Hill regarding his submission to the New York Journal of Mathematics (NYJM), where I was one of 24 editors serving under an editor-in-chief. Hill’s paper raised several red flags to me and other editors, giving concern not just about the quality of the paper, but also the question of whether it underwent the usual rigorous review process. Hill’s paper also looked totally inappropriate for this theoretical math journal: in addition to the paucity of math in the paper, its subject classification (given by the authors themselves) appeared in no other paper in NYJM’s 24 year history, and did not fall into any of the areas of expertise of the editors of NYJM, as listed on the NYJM website.

                                                            and

                                                            or whatever reason, some of the discussion online has focused on the role of Amie Wilkinson, a mathematician from the University of Chicago (and who, incidentally, was a recent speaker here at UCLA in our Distinguished Lecture Series), who wrote an email to the editor-in-chief of the Intelligencer raising some concerns about the content of the paper and suggesting that it be published alongside commentary from other experts in the field.

                                                            In summary, a trashy paper first slipped through peer review and then was caught and dumped by the editors. The real question is who wanted to publish this garbage in the first place and why? This is an example of the success of peer review and academic standards, not an example of a shadowy cabal suppressing free speech.

                                                            1. 1

                                                              You’re saying the regular, editorial process involves people in Women’s Chapters asking for stuff to be canceled for being inherently damaging, secret converations behind the scenes, the submitters being misled about the who/what of the review process, smear/shaming campaigns of organizations on Facebook, a “round table” where one side gets 15 min but others get prepared speeches, and replacing the article with another one entirely as shaming continues?

                                                              Is that all normal for a scientific, review process of a paper on biology or mathematics? I’ve never heard of it. I have heard of bickering with reviewers before submission. They’d already passed that point, though. This all happened after that through what looks to be entirely politics, not science. Of course, this assumes the stuff even happened in the event the author is misleading us. That would be easy to counter, though, by simply following the scientific process of publishing and debating the paper which already had some peer review. Then, the politics would be minimal in the process itself.

                                                              1. 3

                                                                No. Actually, what is described is the regular process. The irregular process at the NYJM was the initial acceptance of a political article, not within the scope of the magazine, outside the regular editorial process, without review. That was corrected when editorial board members expressed their concerns. It is very clear that the article never passed the regular review process at NYJM. And the regular process does not involve publishing every submitted paper and then arguing about it. The initial accept came out of an irregular process, ideologically motivated, to place an unsuitable article in a mathematical journal outside of peer review. Correcting that is a win for academic standards. The Terry Tao and Benson Farb and Amy Wilkinson statements are insights into the scientific process. Quillete is a house of nonsense.

                                                                This statement addresses some unfounded allegations about my personal involvement with the publishing of Ted Hill’s preprint “An evolutionary theory for the variability hypothesis” (and the earlier version of this paper co-authored with Sergei Tabachnikov). As a number of erroneous statements have been made, I think it’s important to state formally what transpired and my beliefs overall about academic freedom and integrity.

                                                                I first saw the publicly-available paper of Hill and Tabachnikov on 9/6/17, listed to appear in The Mathematical Intelligencer. While the original link has been taken down, the version of the paper that was publicly available on the arxiv at that time is here.

                                                                I sent an email, on 9/7/17, to the Editor-in-Chief of The Mathematical Intelligencer, about the paper of Hill and Tabachnikov. In it, I criticized the scientific merits of the paper and the decision to accept it for publication, but I never made the suggestion that the decision to publish it be reversed. Instead, I suggested that the journal publish a response rebuttal article by experts in the field to accompany the article. One day later, on 9/8/17, the editor wrote to me that she had decided not to publish the paper.

                                                                I had no involvement in any editorial decisions concerning Hill’s revised version of this paper in The New York Journal of Mathematics. Any indications or commentary otherwise are completely unfounded.

                                                                I would like to make clear my own views on academic freedom and the integrity of the editorial process. I believe that discussion of scientific merits of research should never be stifled. This is consistent with my original suggestion to bring in outside experts to rebut the Hill-Tabachnikov paper. Invoking purely mathematical arguments to explain scientific phenomena without serious engagement with science and data is an offense against both mathematics and science.

                                                                Amie Wilkinson Professor of Mathematics University of Chicago September 11, 2018

                                                                1. 2

                                                                  Just want to add that Professor Wilkinson’s final point is an excellent one. In social science and econ, and in CS for that matter, there are far too many papers showing that, with sufficient assumptions, some conjecture about how something works can be captured in a mathematical model. Without at least some indication that the model then actually casts light on the science, this is usually just a pointless exercise or worse.

                                                                  1. 1

                                                                    Have you read the article? Mathematical models may be seen as political when they suggest conclusions that go against somebodies belief about how reality should be.

                                                                    1. 2

                                                                      I read the assessment of one of the NYJM editors. It seems totally dispositive.

                                                                      This statement is meant to set the record straight on the unfounded accusations of Ted Hill regarding his submission to the New York Journal of Mathematics (NYJM), where I was one of 24 editors serving under an editor-in-chief. Hill’s paper raised several red flags to me and other editors, giving concern not just about the quality of the paper, but also the question of whether it underwent the usual rigorous review process. Hill’s paper also looked totally inappropriate for this theoretical math journal: in addition to the paucity of math in the paper, its subject classification (given by the authors themselves) appeared in no other paper in NYJM’s 24 year history, and did not fall into any of the areas of expertise of the editors of NYJM, as listed on the NYJM website.

                                                                      I don’t know what groundbreaking conclusions you think can be drawn from the paper but if you read the NYJM table of contents, you can see it was a bizarre idea to even consider this paper for publication. It’s, at best, a social science modeling paper - see http://nyjm.albany.edu/currvol.htm - for a journal that is more at home with cohomology and Banach spaces.

                                                                      1. 1

                                                                        Forming an opinion based on the point of view of one side of a discussion does have the advantage of not having to think too hard about an issue.

                                                                        1. 2

                                                                          I can check some of it. I looked at the article, it is obviously not suited to that journal. If you want to consider it likely that NYJM editorial board is a feminist conspiracy, be my guest, but Benson Farb is a well regarded mathematician, and as far as I know, nobody with inside knowledge has challenged his completely believable account. On the other hand, Quillete is a grossly unreliable source.

                                                            1. 8

                                                              I used to be against this, but with the exceptions for non-commercial services, I’m leaning the other way.

                                                              1. 3

                                                                Wait, really? Why on earth?

                                                                1. 2

                                                                  Because the business model of google is to profit from other people’s work and I don’t want them or Msoft or similar to be the gateway to content.

                                                                  1. 2

                                                                    “Commoditize Your Compliment.” Might be a bit harder under this legislation.

                                                                    1. 1

                                                                      I see; kind of a “the enemy of my enemy is my friend” kind of thing?

                                                                      1. 1

                                                                        Not really. You can see from the Google publishers program that it is getting into a position where everything goes through it. I think it is reasonable to require that either an aggregator is a public resource not-for-profit or that it pays its content creators.

                                                                1. 3

                                                                  https://juliareda.eu/2018/09/ep-endorses-upload-filters/

                                                                  Hmm, I think this actually makes it mandatory for Wikipedia to install an upload filter.

                                                                  1. 13

                                                                    There is actually an exception for websites like Wikipedia in this version of the directive:

                                                                    “online content sharing service provider’ means a provider of an information society service one of the main purposes of which is to store and give access to the public to copyright protected works or other protected subject-matter uploaded by its users, which the service optimises. Services acting in a non-commercial purpose capacity such as online encyclopaedia, and providers of online services where the content is uploaded with the authorisation of all rightholders concerned, such as educational or scientific repositories, should not be considered online content sharing service providers within the meaning of this Directive. Providers of cloud services for individual use which do not provide direct access to the public, open source software developing platforms, and online market places whose main activity is online retail of physical goods, should not be considered online content sharing service providers within the meaning of this Directive;

                                                                    (Emphasis mine)

                                                                    1. 4

                                                                      Reda says Voss misrepresents the true scope of the upload filtering obligation and at no point does the definition exclude platforms that don’t make money off their users’ sharing of copyrighted content. She concedes that “completely non-commercial platforms” are excluded, but points out that experience has shown that even a call for donations or the use of an advertising banner can be considered commercial activity.

                                                                      (Emphasis mine, https://thenextweb.com/eu/2018/06/19/the-eus-disastrous-copyright-reform-explained/)

                                                                      Also, I am not sure that this is the exact wording that has passed. I am, to be honest, not well-versed in the EU legislative procedure.

                                                                      1. 2

                                                                        does an american organization have to care about exceptions in stupid european laws?

                                                                        1. 16

                                                                          does an american organization have to care about exceptions in stupid european laws?

                                                                          They only do if they have enough presence in a European country willing to enforce those laws that they could be hurt in court.

                                                                          If a company has no presence in any EU country, it can ignore those laws just like it ignores the laws against insulting the Thai king and laws against telling the truth about the Tienanmen Square Massacre.

                                                                          1. 3

                                                                            Untill some European countries order their ISP’s to block all traffic towards those companies.

                                                                            This has already happened with major torrent sites like ThePirateBay,org, which serves up this page to everyone in The Netherlands with this ISP (and they are quite activistic about providing everyone unrestricted access to the entire internet). Take note that other European countries have ordered similar filters and take-downs onto their ISP’s and those are being actively being enforced.

                                                                            1. 1

                                                                              Untill some European countries order their ISP’s to block all traffic towards those companies.

                                                                              Again, that only hurts the company in proportion to how much of their business was coming out of the EU to begin with.

                                                                              It also isn’t forcing them to abide by the law of any EU member state, any more than West Germany was forced to abide by East German law when the Berlin Wall was up and East Germans were barred from going to West Germany.

                                                                              1. 1

                                                                                Again, that only hurts the company in proportion to how much of their business was coming out of the EU to begin with.

                                                                                True, but since most major content-platforms in Europe are American companies, I doubt they’d get away with ignoring these laws. Nor do I think that they’d like to give up a market of about 510 Million people. Note that the United States is a market of only 325 Million people. So in terms of numbers, you have to care if you intend to grow beyond the United States, Canada and Mexico somewhere in the near future. You also have to keep in mind that Europe is a lot closer to the United states than you might think.

                                                                                It also isn’t forcing them to abide by the law of any EU member state, any more than West Germany was forced to abide by East German law when the Berlin Wall was up and East Germans were barred from going to West Germany.

                                                                                Actually, that isn’t true at all. West Germany still had West-Berlin and had to maintain supply lines to that part of Berlin through East-German (DDR) territory. Because of this, there were a bunch of DDR-laws they had to abide by, despite of being separate countries. A scenario like this, might also happen to US-companies as well.

                                                                          2. 6

                                                                            It’s going to be interesting for US firms that use e.g. the Dutch sandwich to avoid US taxes.

                                                                      1. 2

                                                                        Verdict: not a whole lot.

                                                                        1. 1

                                                                          Exactly. That little, hard data vs the massive money and energy thrown at something usually indicates its a hype and gambling bubble.

                                                                        1. 6

                                                                          This paper is flogging a dead horse. There are plenty of corner cases to be tweaked, but they don’t add up to much.

                                                                          There are bigger improvements to be had by thinking bigger

                                                                          1. 2

                                                                            Your thinking bigger article is interesting. Morton encoding is cool.

                                                                            1. 2

                                                                              Interesting! Were there any programming languages which experimented with/used the Morton encoding for their arrays?

                                                                              1. 1

                                                                                It’s an implementation technique. If an array is only ever indexed (i.e., no pointers into it) the compiler can use whatever layout it chooses.

                                                                                1. 1

                                                                                  I don’t see how a compiler could deduce usage patterns that would benefit from morton indexing.

                                                                              2. 1

                                                                                “There are really really big savings to be had by providing compilers with a means of controlling the processors caches, e.g., instructions to load and flush cache lines. “

                                                                                It’s true. It’s also field-proven: they’re called scratchpads. They use less circuitry and power since they’re simple, software-driven stores. However, they have to be used wisely by the compiler. Most of what market makes isn’t. So, those pushing caches over scratchpads got more sales. The scratchpads are mainly in embedded products now IIRC.

                                                                              1. 1

                                                                                I’m sad to see that in 2018 they are still using the terms master & slave instead of primary & replica(s).

                                                                                1. 2

                                                                                  Thats the official terminology for redis.

                                                                                  1. 2

                                                                                    Ah, that explains it then. I guess my despair should be directed toward Redis instead.

                                                                                  2. 2

                                                                                    Stop it, please.

                                                                                    You’re overloading the terms master and slave in an unreasonable fashion when considering the current context, as well as derailing the post. Conflating the two terms with what is provided by your political correctness filter likely means there’s an issue with you to be sad about, not the people who put together this incredibly informative diagram.

                                                                                    1. 6

                                                                                      Using the primary definitions is “overloading”? Master/Slave in engineering contexts is a lazy, crappy, metaphor that can usually be replaced by something more informative, more precise, and less offensive.

                                                                                      1. 5

                                                                                        I don’t think I’m overloading the terms. They carry connotations with them because of history.

                                                                                        Furthermore, I don’t think that pointing out issues with terminology that is alienating to people whose ancestors were slaves is a political statement. It seem like a simple change to make that would make technical language more inclusive.

                                                                                        The post and diagrams are otherwise excellent but people who want to improve tend to be receptive to critical feedback.

                                                                                        1. 2

                                                                                          Folks that language police redefine words or use newer definitions of old ones all the time. Then, they say language cant evolve if its other people with their preferred words these people dislike. Makes me think many dont believe what they say about always acting in terms of history of words.

                                                                                          If they’re inconsistent and enforcing against political opposition, then I oppose that type of language policing since it’s political control instead of keeping words’ meaning consistent with history.

                                                                                          I’d love to see them do it first since it could make for entertaining, confusing reading. All of them would be calling out negative aspects from Old English or something while rest of us just have a conversation. ;)

                                                                                          1. 1

                                                                                            Normally I find your comments remarkable insightful. But I had a hard time even parsing this one!

                                                                                            1. 1

                                                                                              I was trying to be done with this. You disagreed and followed up in an exceedingly-polite way. So, I’ll make another attempt in a similarly non-judgmental way focusing on different perspectives. :)

                                                                                              I should first define what I mean by free speech for purposes of forums, database books, and so on. It’s mostly free where we avoid, call out, and/or censor only the things where majority of people in different groups agree are bad. There’s near-universal agreement from Left to Right that someone dropping N-bomb or saying someone is inherently inferior due to skin color is racist. That group X causes more of specific problems for whatever reason in specific area, whether Master/Slave is inherently offensive, what privilege someone has or doesn’t in various contexts, and so on are in dispute among groups. So, it’s not censored given free speech exists to protect dissent, not popular things. We allow the differing opinions even if one side’s pisses another off. We just keep things civil, minimize trashtalk, avoid or call out weak arguments (esp emotional), and focus on data supporting or refuting views. I especially like looking for inconsistencies as you’ll see.

                                                                                              My understanding is that you in this thread and a lot of other people in similar threads object to the use of specific words due to historical connotations. The argument is that they’re irreversibly tied to something evil in history, either created for evil (e.g. N-word) or supporting it in major way later (eg swastika’s). Then, these words get used in a new context where they might offend someone due to the historical evil’s attached to them. Some also claim that using the words is condoning or further promoting the evil. I was just assuming first claim (negative baggage) for your objection. Given these premises, your group thinks the moral response is to object to the use of those words, replace them with non-offensive terms, and ensure the source carefully considers their words to minimize the harm they’re creating.

                                                                                              I’m calling your group SpeakCarefully vs SpeakFreely for my group. The SpeakCarefully group tells us we can’t use these words in new ways since their historical meaning and potential effects have to be considered. Yet, the SpeakCarefully side redefines words to suit their political purposes all the time. Take racism whose original use by person that coined it was a level of suffering, isolation, and force change that I’d imagine is quite different from what most non-whites mean when they said they experienced racism. They’ve changed the meaning of the term to current form, structural racism, which suits their political agenda. SpeakCarefully folks often use that one. SpeakFreely folks and right-leaning people changed the word to yet a different meaning: an act of discrimination based on race with adjectives like “individual” or “structural” used to narrow it down or elaborate. I think that makes more sense if we’re redefining it anyway since it’s more consistent with English words in other topics.

                                                                                              In any case, I see an inconsistency where the SpeakCarefully types tell me the words have inherent baggage that can never be changed. We have to avoid them or mention them in ways consistent with that history. Then, they don’t follow their own standard when they redefine words such as racism. They even go further in many arguments telling the other side they’re using an incorrect definition: it should be their definition. Yet, their definition was itself incorrect if they changed the meaning. That has a few problems:

                                                                                              1. If term is incorrect upon change, then SpeakCarefully’s re-definition is incorrect as well. Yet, they defend it and their right to redefine things for their group’s own purposes. SpeakFreely are told they can’t redefine words. This is inconsistency.

                                                                                              2. SpeakCarefully selective about what we can redefine. They say this is what is offensive. Yet, what offends them is different than what offends another group. So, it’s not really what’s offensive so much as what their group decides to enforce on everyone else. This is why SpeakFreely types think SpeakCarefully folks aren’t mitigating harm or correcting immorality: they’re enforcing their views, for which there isn’t a national consensus, on people that don’t have those views. Once you know that, these seemingly harmless conversations correcting immoral behavior become something different entirely. And more complicated.

                                                                                              3. If we stick with No 1., SpeakCarefully are also ignoring the harms that their new definition might cause those who were effected by either pride in or baggage from original definition. In my link, natives sent via “racism” to schools bathing them in kerosene and forcing them to not understand their parents at all might be offended by suburban blacks encountering prejudicial hiring saying they were “victims of racism.” If historical meaning stays, then there are probably only a tiny percentage of non-natives in modern America that were victims of similar treatment and reasoning (aka racism in original definition).

                                                                                              4. As I alluded to in “do it first,” I found that SpeakCarefully doesn’t actually consider the negatives and offenses in all the words they use. This builds on No 2. There’s specific terms affecting specific groups under specific ideology (i.e. theirs) that are considered harmful. They may, at their sole discretion, add to or remove from the list. Yet, they continue to use terms that might offend those outside their political group. Most of them haven’t done a systematic, historical investigation of their vocabulary to only use words non-offensive to all groups. As my poem alludes, it may be impossible to not offend all groups. The inconsistency is they say they care about doing harm with words due to historical meanings, that SpeakFreely should carefully consider harm of words they use, and SpeakCarefully don’t actually do that themselves outside a subset of terms and concerns their group stays on (esp race/gender/religion/age).

                                                                                              I’m with SpeakFreely because I think the above incosistencies show the SpeakCarefuly side are often well-intentioned but have seriously inconsistent use of words and political action. They say not to redefine words with baggage but do it themselves, sometimes with same exact words. They’re selective about exceptions despite admonishments talking more like “always do this.” They define harm based on their political sub-groups beliefs on what’s harmful. No other group’s beliefs are allowed even if it’s members are in minority groups SpeakCarefully is claiming to protect. A smaller set of SpeakCarefully moves further to cut off speech, community membership, or even jobs over this stuff. Yet, they themselves violate their own rules causing the same kinds of emotional harm to the same kinds of people, assuming the words actually cause harm as they claim. They neither stop it nor punish their members for doing this.

                                                                                              That makes this more about political beliefs of a sub-group (or many sub-groups), pushing them, and/or enforcing them. That’s political domination even if you do it by asking nicely for other side to self-censor or be censored. Unlike what there’s consensus on, political domination should be resisted by default until a debate hashes out new consensus. At the least, I want to see SpeakCarefully modify their behavior to match their stated justifications or modify their statements of belief to match their inconsistent behavior.

                                                                                              EDIT: On a side note, it’s hard to do these discussions without ascribing malice to or flinging insults at other side. The SpeakCarefully vs SpeakFreely model is my attempt at representing the different views with simple terms that both have positive connotation since each group thinks their beliefs/actions are positive. Then, I focus on group views, actions, and potential inconsistencies. In another post, maybe successes or failures. Anyway, I wanted to know if you liked or disliked those in terms of softening these debates a bit. I’m trying to keep them accurate and neutral if not positive.

                                                                                              1. 1

                                                                                                I appreciate the thoughtful response but I don’t want to continue hijacking this thread so I’m going to respond to you via private message.

                                                                                                1. 1

                                                                                                  Probably best move.

                                                                                            2. 0

                                                                                              Words meanings have to be consistent with history? I’m not even sure what that means, but language is always changing and we have choices about how we speak. Terms like “jew” for bargain (usually unfairly) or to “gyp” or to call someone an “indian giver” used to be in common usage just a few years ago, but they are usually now rightly considered to be both offensive and indicative of ignorance or malice on the part of the speaker. It’s weird to me that civility is so controversial. “Master/slave” is a terrible metaphor as well as being offensive - I can’t imagine why anyone would find it worth defending.

                                                                                              1. 5

                                                                                                “ I’m not even sure what that means, but language is always changing and we have choices about how we speak.”

                                                                                                You’re making my argument for me while countering some on your side. They reach for historical meanings or intent when saying words are inherently offensive. If it’s fluid and contextual, then their arguments don’t hold water since that can be redefined be new groups to mean things like database setups. They’re inconsistent because this is about pushing politics rather than thorough assessment of each word we use with its historical connotations.

                                                                                                “But they are usually now rightly considered to be both offensive and indicative of ignorance or malice on the part of the speaker.”

                                                                                                You gave good examples that were designed for evil and currently used close to that context. Then, you apply it to a different situation with current terms. The people using master/slave are doing something comparatively harmless. Some setups in control systems even follow the literal meaning. Your position would ditch them, too, just on ideological grounds saying they’re always evil. Yet, in many setups, there are in fact master (management) and slave (“workers following orders no matter cost”) setups.

                                                                                                “It’s weird to me that civility is so controversial. “

                                                                                                This is kind of statement that motivates my replies. Anyone that disagrees with your position on language definitions or evolution is not “civil.” Yet, you dont want your opponents to be able to label you similarly just because you had different position. This is also example of personal attacks your side does that most on it are cool with.

                                                                                                “Master/slave” is a terrible metaphor “

                                                                                                I already said that in this thread. Finding a better metaphor makes sense. It’s just that most blacks I know in the South arent worried about how older whites labeled database functions. That’s you, some other Lobsters, and specific set of liberal ideology. People on your side here talk like they’re fighting for justice or black folks’ concerns. They didnt ask you to rename DB’s, protocols, etc. They asked you to help them avoid government abuse, get good jobs, get taken seriously for their tech skills, and so on.

                                                                                                What “offensive” things you put energy into tell me you arent really fighting for minority members’ needs. We just hooked up a few more in my [terrible, fairly-racist-on-top] company moving them to better positions. I worked on that personally plus coaching. Their lives might improve. What have you done lately for individuals with slavery in their background to help them stop flipping burgers, bagging groceries, delivering packages to geeks all day, assembling shit at factories, or (for privileged) doing menial office tasks? And especially outside your political group like they were mine?

                                                                                                I’m betting either nothing or close to it. The ethics of language and its policing are so easy in comparison. Just another online argument. I dare you to try the other thing if you havent. Especially in a combo of the hood and white businesses. I cant wait to see what you write afterward whether you agree or disagree with me. :)

                                                                                                1. 0

                                                                                                  If it’s fluid and contextual, then their arguments don’t hold water since that can be redefined be new groups to mean things like database setups.

                                                                                                  Language is fluid, but it’s not completely redefinable. I have been told by people who use “jew” as a pejorative way of saying “bargain hard” to lighten up and not read offensive content into everything. According to these people, it’s not meant as a slur anymore and they tell me how pissed off they are at politically correct busybodies trying to police the language. This has happened to me a couple of times in Europe and once in the old south. I’m not impressed - and it has left me with a lot of skepticism about arguments like yours.

                                                                                                  The people using master/slave are doing something comparatively harmless.

                                                                                                  It never occurred to me that it was a problem until I saw objections recently. But that was my blindness, not evidence of harmlessness.

                                                                                                  Some setups in control systems even follow the literal meaning.

                                                                                                  No they do not. Violence is intrinsic to slavery. Do, e.g. “master” bus signals coerce “slaves”? It’s never been a good metaphor - it is a lazy use of language.

                                                                                                  It’s just that most blacks I know in the South arent worried about how older whites labeled database functions.

                                                                                                  Done a survey, have you? I don’t see how that’s relevant. What’s odd to me is how much energy people like you put into complaining about efforts to change nomenclature to something else. What’s the emotional stakes for you? Why do you care so much? To me, it was just a minor thing: oh yeah, this metaphor I used for years without thinking about it is both crappy and offensive, we should change it. No big deal. But somehow, for you it’s important to keep calling replicas or clients or backups or controlled signals, “slaves”. Why?

                                                                                                  One of the uses I run into the most, in IEEE 1588, always bothered me, because the metaphor kind of justifies the underlying design error.

                                                                                                  1. 1

                                                                                                    “I have been told by people who use “jew” as a pejorative way of saying “bargain hard” “

                                                                                                    I would oppose that usage since it was inherently negative. The Jewish business people down here usually do hustle really hard. So do a lot of other types of hustlers. That it’s a capitalist system where hustling is rational makes this a stupid complaint by such people just as much a racial slur. I’ve been clear I’m for blocking racist language or acts if it’s something there’s a consensus on among groups. Some groups want to expand things way beyond what others accept with them solely defining what’s acceptable or unacceptable. I block that stuff. Other things, like this slur, most people out here would agree is racist. Many people that do it even admit it but don’t care.

                                                                                                    “. “master” bus signals coerce “slaves”? “

                                                                                                    In some setups (esp industrial or medical), the control systems can send commands that physically damage the receiver, physical property, or people. They’re usually designed to not do this. I’m not going further since I’m opposed to master/slave already on grounds it’s non-intuitive. No sense further justifying it.

                                                                                                    “What’s odd to me is how much energy people like you put into complaining about efforts to change nomenclature to something else. “

                                                                                                    It’s the other way around. Everyone was talking tech when someone like you put effort into language changes. They wanted everyone to stop what they were doing, think deeply about their morality, think deeply about the language problem, think deeply about alternatives with their tradeoffs, and then change it in every system in existence. That’s a lot of responsibility and energy. Then, you’re shocked that there’s initial resistance or that I’d throw a few posts at exploring this political act of people demanding the industry to change. The bigger the thing, the larger the energy is put into response.

                                                                                                    It’s also political activism on our technical forum representing the one side that does that among the many sides here and elsewhere. I supported that being against the rules in general. People on your side wanted it allowed so they can inject their politics into every discussion trying to force others’ compliance. Although we’re just talking tech, people on your side want to expend energy on this. They often initiate these tangents, too. If you all do that, expect others to put energy into representing their beliefs or just countering the weaker parts of yours. It’s like a few of you think every political discussion will involve your side making a comment with everyone else just nodding, saying “Thanks!,” and changing their life. That’s not how people and politics works.

                                                                                                    1. 1

                                                                                                      It’s the other way around. Everyone was talking tech when someone like you put effort into language changes.

                                                                                                      There are two errors in your remark. First, you begin by assuming the master/slave language was “tech” and didn’t have a political/moral content - which is convenient for your argument in the way that assuming one’s conclusion usually is convenient. Second, you want to characterize your emotional and frankly out of proportion freak out as rational, while my casual observations are, to you, some grand conspiracy to impose a political agenda. It’s not a big deal to me, but apparently is a red flag for you - for reasons I don’t get at all.

                                                                                                      1. 0

                                                                                                        I’m just counterpointing parts of comments here like I do in other threads. Hardly freaking out. Since you bring it up, a conspiracy is when people work together to do something that benefits them usually in secrecy. The group pushing this brand of politics are certainly working together at the forum level since one comment might be hit by several replies that are usually the same people. The word fails on coordination and secrecy: I don’t think you all are doing that since there’s no need or evidence. You’re just responding to comments from your viewpoints.

                                                                                                        A subset are also for censoring anyone with dissenting views on these topics. Ensuring alternative views are represented or they don’t acquire more power isn’t something hypothetical if censorship is an actively-stated goal. Dropping comments on those threads is the bare minimum response to such a thing. So, I do it.

                                                                                                        This conversation has dragged on a while, though. I’m done with my part in it since I think we’ve explored the topic plenty. I do want to re-emphasize I think Master-Slave sucks for other reasons and encourage better wording for new developments.

                                                                                            3. 2

                                                                                              Our people are no longer slaves. That you can’t separate the proper use of certain terminology given the relationship of the components in this system from your own history and feelings is your problem. The ones providing this service should not have to worry about coddling you or anyone else. There’re too many eggshells to avoid stepping on today. It’s mentally taxing.

                                                                                              Thinking about this selfishly, I just want useful information. If people continue on with your pervasive and detrimental mindset it will be too hard for others to disseminate what they know and the situation will become less inclusive overall. I worry about this daily.

                                                                                              1. 2

                                                                                                I’m literally just asking for a pair of trms to be replaced with synonyms. Text substitution is an easily solved problem.

                                                                                                1. 0

                                                                                                  I’m literally just asking for a pair of terms to be replaced with synonyms.

                                                                                                  No, you’re not.

                                                                                                  I’m sad to see that in 2018 they are still using the terms master & slave instead of primary & replica(s).

                                                                                                  You’re indirectly admonishing them for being racially insensitive because they used of a pair of innocuous words. You’re not just asking for text replacement, you’re trying to shame them into fixing their perfectly acceptable mindset.

                                                                                                  This is like back in the late 80’s when people started getting indignant about “the culturally insensitive” act of placing Christmas trees in company lobbies. I’m trying to stay respectful here but you and everyone else on the internet who would unreasonably police thoughts and words like that yet think nothing of it pisses me off. This problem widespread and getting worse. If you, a seemingly very intelligent individual, can’t see where this is going then I am right to worry.

                                                                                                  That is my point of view on this issue, I’m done. Do what you will.

                                                                                                  1. 4

                                                                                                    If you think Christmas trees & slavery are somehow on the same level, you’re a lost cause, my friend.

                                                                                                2. 1

                                                                                                  Here’s is a nice poem you can give people illustrating how it’s a no-win scenario if we’re really trying to avoid offending anyone. What I’ve seen among groups that tell me not to be offensive is that they’re often not really doing that. They have specific beliefs their group likes and doesn’t like. The doesn’t like is offensive. What they like may also be offensive to lots of people in other groups for similarly arbitrary or decent reasons (varies a lot). They don’t care, though, since they’re not really about offending people so much as offending people that agree with them on what’s offensive. Aka forcing others to comply with their beliefs and practices.

                                                                                            4. 1

                                                                                              In my opinion replica means knock-off, which is not the same as a clone or slave of master.

                                                                                              Granted a slave is usually usually promoted to master in failovers. A replica (kit) car is not the same thing as a name brand car … And I wouldn’t expect a replica to be a suitable replacement for a production system.

                                                                                              On the other hand I much prefer the term hot-spare for these kinds of redundant services.

                                                                                              1. 0

                                                                                                In my opinion replica means knock-off,

                                                                                                Then you should consult a dictonary to correct your opinion.

                                                                                                1. 6

                                                                                                  rep·li·ca ˈrepləkə/ noun an exact copy or model of something, especially one on a smaller scale. “a replica of the Empire State Building” synonyms: copy, carbon copy, model, duplicate, reproduction, replication; More a duplicate of an original artistic work. “it is a replica of an antique plaque”

                                                                                                  … I stand by what I said as a native English speaker a replica is not the same as the authentic item/service, it implies it’s inferior quality typically.

                                                                                                  1. 3

                                                                                                    I fail to see how any of what you posted implies inferior quality.

                                                                                                    1. 2

                                                                                                      Ever shot a gun with “replica” printed on the side? I doubt you have, and I bet you know why

                                                                                                    2. 2

                                                                                                      Some of that definition means equivalence. That’s opposite of lower quality. So, the meaning of the word isnt tied to the replica’s quality. The quality can be anything.

                                                                                                    3. 3

                                                                                                      Dictionaries are not authoritative sources on what words mean to people. Most words have multiple meanings, some of which are not in dictionaries, and they have connotations, relating them to networks of meaning.

                                                                                                      1. 2

                                                                                                        And then dictionaries periodically add words that are in popular use.

                                                                                                  2. 1

                                                                                                    Is this a topic of discussion for some people? Call it peanut and butter, as long as we all understand clearly.

                                                                                                    1. 2

                                                                                                      Derek! This post is super interesting and I hadn’t seen it until now. I’d worked on a similar idea about a year ago with a bitcoin-paying npm proxy server. The idea was basically the same: package developers could include payment information in the metadata and folks that use the projects would automatically payout to those projects.

                                                                                                      Although, I think OpenCollective’s BackYourStack has done a better job at creating a user-friendly system (centralized, over the traditional payment system).

                                                                                                      I’m not sure this fulfills OPs criteria for a compelling use case, but it’s great to encounter someone working on similar ideas.

                                                                                                      1. 2

                                                                                                        At the time there was push back from blockchain people complaining about blocks being filled up unnecessarily. These days Etherium might be a better, if somewhat more complicated solution.

                                                                                                        Traditional payment systems are designed o be confidential, which for this use case is a disadvantage.

                                                                                                      2. 2

                                                                                                        The argument seems to be “PayPal doesn’t have an API for this.” So the issue isn’t the centralized system, it’s just a missing API, and if they had it PayPal would suffice?

                                                                                                        1. 2

                                                                                                          The point of the blockchain approach is that proof of purchase is publicly visible; removing the need for the software developer to spend time any time confirming the sale.

                                                                                                          1. 10

                                                                                                            You dont need a blockchain. You just need a log, crypto, and 3rd-party checking. Schemes for “blockchain” functionality that just used logs with crypto have been around a long time.

                                                                                                            1. 5

                                                                                                              More specifically I guess, Certificate Transparency. Every time someone wants a “blockchain” to publicly prove something, they actually want CT.

                                                                                                              1. 1

                                                                                                                I think this is correct. Although it’s very hard to trust Google on this specific instance.

                                                                                                                1. 3

                                                                                                                  You don’t have to trust Google for anything. I mean, you can adapt the general scheme/protocol for any content (not just TLS certs) and trust whoever you want to host servers.

                                                                                                                2. 1

                                                                                                                  That’s another good example of logging + crypto + checking.

                                                                                                                  1. 1

                                                                                                                    A CT is half the solution. A blockchain performs payment and public record keeping in one transaction.

                                                                                                                    1. 2

                                                                                                                      It does but it’s unnecessary. Fire off two transactions: one updates a key-value store that audit pages are generated from; one goes through payment system. Both are so efficient that similar protocol operations are done on 16-bit MCU’s in smartcards.

                                                                                                                      It’s also not clear that you want the payment and log handled by same systems with same privileges and admins. Splitting them up can mitigate some risk.

                                                                                                          1. 2

                                                                                                            A secondary market for concert/event tickets could bypass the pretty extortionary and abusive middlemen that currently dominate that market. Of course that depends on: a stable value-coin; participation of event promoters; dramatically increased scalability, reliability, efficiency and usability of blockchain and off-chain tools.

                                                                                                            I think anything like this, that depends on allocating scarce intangible assets, presents a compelling use case. But all this is contingent on dramatic improvements in technology. Right now there are some really interesting things going on in the Ethereum world involving consensus, sharding, and scalability that, if promises are lived up to, might get us closer to where we’d need to be. As far as I can tell most people involved in other cryptocurrencies space are unhealthily fixated on asset prices and speculation, probably to the detriment of making meaningful progress into building these things into useful tools.

                                                                                                            1. 3

                                                                                                              I kind of agree, but a “stable value-coin” is a “trusted third party”, I think.

                                                                                                              1. 5

                                                                                                                Yes. This is an absolutely unavoidable point that people need to accept and not try to find a clever technical solution for, because none exists! The US dollar is useful to people largely because the federal reserve has a staff that produces and considers numerous reports of real-world consumer prices and adjusts policy to keep them changing at a modest and predictable rate. There is no way a fixed set of rules in a blockchain can achieve this: we are intractable bound to these real-world institutions if we want the stable prices average citizens will demand. Cryptocurrency enthusiasts very slowly re-learning–or refusing to learn–these basic tenets of monetary policy is frustrating.

                                                                                                                Given this, I feel that being able to trust arbitrary counterparties for a some variety of transactions could still be a very useful tool in the future.

                                                                                                                1. 3

                                                                                                                  I think for at least the early ones it was less ignorance of monetary policy, and more a fundamental philosophical disagreement.

                                                                                                              2. 1

                                                                                                                Can’t they just sell it centralized online with a limit for each registered customer? Could even bootstrap it at one event by giving customers cards with unique codes on them for use with an app and/or web site. They get them with instructions when they come in. That establishes the unique ID’s that are used to buy tickets for future events.

                                                                                                                Whatever is left of the problem should be minimal. If each supplier does this, third parties will show up selling them a solution trying to grab the market. It will get cheaper for those selling tickets.

                                                                                                                1. 5

                                                                                                                  So who are the miners? How are they paid? What is the mining/validation method? Who has custody over copies? What happens when there is disagreement among ledgers?

                                                                                                                  1. 1

                                                                                                                    My (very) naive answer would be:

                                                                                                                    • The users of the service
                                                                                                                    • By using the service
                                                                                                                    • no idea
                                                                                                                    • Everybody?
                                                                                                                    • Majority?
                                                                                                                  1. -3

                                                                                                                    “Considered Harmful” Essays Considered Harmful (I think “considered dangerous” falls in the same category)

                                                                                                                    It’s not difficult to use C correctly. Don’t blame your vulnerabilities on C when the real culprit is your own sloth.

                                                                                                                    I’ll concede that C (and it’s API) has quite a few foot guns, but I’ve learned how to avoid them pretty effectively, and I should be able to expect the same from kernel devs. The whole “rewrite everything in <insert promising new lang here>” mentality doesn’t work for large projects (like kernels). To rewrite the Linux kernel in Rust would take months (even if you had all hands on deck). And, who’s to say that Rust wouldn’t change incompatibly three times in the middle?

                                                                                                                    1. 21

                                                                                                                      It’s not difficult to use C correctly.

                                                                                                                      [citation needed]

                                                                                                                      There is no evidence to suggest that large codebases written in C can maintain memory safety in the face of that. The counter evidence, that writing code in C/C++ tends to produce large volumes of vulnerabilities, for reasons that are explained by language choice, is plentify. To whit, every major OS (Windows, Linux, macOS), every major browser (Chrome, Firefox, Edge, Safari), every major anti-virus program, every major image parsing library, I can keep going for a while.

                                                                                                                      Denialism about the dangers of memory unsafety is not productive, we need to move on to discussing how we address this.

                                                                                                                      1. 0

                                                                                                                        There is no evidence to suggest that large codebases written in C can maintain memory safety in the face of that.

                                                                                                                        Using C correctly means not making large codebases. C isn’t a language for programming in the large.

                                                                                                                        1. -1

                                                                                                                          there is no evidence that large codebases in any language produces anything better.

                                                                                                                          1. 7

                                                                                                                            Yes there is. The default, failure mode of safe languages doing common things is not potential code injection. The default for C language is. Given same bug count, using C will lead to more severe problems. The field results confirm that from fuzzing to CVE’s.

                                                                                                                            1. 4

                                                                                                                              Yes there is. The default, failure mode of safe languages doing common things is not potential code injection.

                                                                                                                              I don’t think this is wrong, exactly, but there’s a 100 exploits related to python pickle, etc. as counterexamples. And java serialize, etc.

                                                                                                                              1. 3

                                                                                                                                Do the memory-safe parts have the memory errors of C (a) at all or (b) as much? And do libraries in concurrency safe languages show same or less races as equivalent in multithreaded C?

                                                                                                                                You’re going to find vulnerabilities in all of them. My side are saying C amplifies that number by default or others greatly reduce it by default. That’s all we’re saying. I think the evidence is already supporting that.

                                                                                                                                1. 1

                                                                                                                                  amplify requires some comparative numbers.

                                                                                                                                  1. 2

                                                                                                                                    The numbers on using C are that the common operations lead to piles of vulnerabilities with code injection. This happens a lot on average. It happens less with veterans but still happens. That’s irrefutable. The numbers on safe languages show the problems mostly lead to compiler failures or DOS’s from runtime checks. The burden of proof is on your side given your side’s stuff is getting smashed the hardest all the time whether the app is small or big.

                                                                                                                                    What numbers do you have showing C is safer for average developer than Ada, Rust and so on? And I’m especially interested in fuzzing results of software to see how many potentially lead to code injection among new, half-ass, or just time-constrained programmers in C vs the same in safe, systems languages.

                                                                                                                                    1. 1

                                                                                                                                      you don’t even have good examples of large scale systems built using some other language that are substantially safer. Until you do, it’s just folklore.

                                                                                                                              2. 0

                                                                                                                                I see a real shortage of example of large-scale systems constructed in any language that are secure and bug free but I am happy to look at references. Like what do we have comparable to Qmail written in something better that has fewer bugs? I know that C has numerous limitations, but in CS we tend to embrace projects that claim a win by hiding a problem by e.g. using pragmas to do the things that are the most buggy as if pushing the problem into the corner made it go away.

                                                                                                                                And the code injection bugs I see are all example of bad engineering - not of bad programming.

                                                                                                                                1. 3

                                                                                                                                  There’s bugs and there’s serious bugs that the language causes. The latter are what hackers hit the most. The latter are what we’re talking about, not just bugs in general. The size of the program also doesnt matter since the safe language is immune to the latter by design. Scaling code up just increases odds of severe vulnerabilities in the unsafe, control language.

                                                                                                                                  Java and .NET apps are what to look at if you want big ones. Very few CVE’s posted on the apps of the kind you see in C apps. The ones that are posted are usually in C/C++ runtimes or support libraries of such languages. That just illustrates the problem more. The languages whose runtimes arent C have fewer of those since they’re immune or contain them by design.

                                                                                                                                  1. 1

                                                                                                                                    My impression is that a) the reasons that those c/c++ runtimes show up so much is that these language delegate the most dangerous code such as parsing of raw input or packets or complex interaction with the OS to the C/C++ runtimes where it is possible to do that work and b) the same errors show up in different form in different languages. The massive prevalence of scripting exploits is not due to C but to lazy interface construction where, for example, user inputs are treated as parts of database scripts etc etc. I do not think that “do all the hard stuff in pragmas or C libraries” actually does limit vulnerabilities.

                                                                                                                                    1. 1

                                                                                                                                      “where it is possible to do that work”

                                                                                                                                      The first part is true. That part isn’t. They think lower-level language is better for speed, bit handling, or OS interface. The second part implies you need C to do that work. There’s systems languages which can do that work with more safety than C. So, it’s “possible to do that work” in them without C’s drawbacks. Many low-level programs and OS’s were written in PL/0, PL/S, Ada, Modula-2, Oberon, Modula-3, Clay, and so on. They’re safe by default turning it off only where you need to. C doesn’t do that since it’s designers didn’t care when they were hacking on a PDP-11 for personal use.

                                                                                                                                      “b) the same errors show up in different form in different languages. The massive prevalence of scripting exploits is not due to C but to lazy interface construction where, for example, user inputs are treated as parts of database scripts etc etc.”

                                                                                                                                      Aside from something language-specific, the logic errors that happen in scripting languages can happen in C, too. You get those errors plus C’s errors plus the catastrophic effect that comes with them being in C. Let’s say you wrote the interpreter in Ada or Rust with safety-checks on. Most of the errors in the interpreter won’t lead to hacks. The extensions would have same property if building on base language like how extensions to C-based programs are often in C having same problems. Platforms like Java that built libraries on C are hit heavily in those C dependencies.

                                                                                                                                      Additionally, the extensions could leverage aspects of these languages, such as type or module systems, designed for knocking out integration errors. Finally, if it’s Ada 2012 and SPARK, they can eliminate runtime checks in performance-critical code by using the provers to show they’re not needed if specific pre-conditions pass early on. Unlike Frama-C, they get a good baseline on code they hurried and highest assurance of what they proved.

                                                                                                                                      1. 1

                                                                                                                                        Data would help. These arguments by what seems sensible to different people don’t go anywhere.

                                                                                                                          2. 16

                                                                                                                            To rewrite the Linux kernel in Rust would take months (even if you had all hands on deck).

                                                                                                                            Months? It would take at least 10 years, regardless of headcount.

                                                                                                                            I’ve learned how to avoid them pretty effectively, and I should be able to expect the same from kernel devs.

                                                                                                                            I’m impressed with your abilities, but then something nags me about the order-of-magnitude mistake in your rewrite estimate. Hmm.

                                                                                                                            1. 13

                                                                                                                              It’s not difficult to use C correctly. Don’t blame your vulnerabilities on C when the real culprit is your own sloth. I’ll concede that C (and it’s API) has quite a few foot guns, but I’ve learned how to avoid them pretty effectively, and I should be able to expect the same from kernel devs. The whole “rewrite everything in ” mentality doesn’t work for large projects (like kernels). To rewrite the Linux kernel in Rust would take months (even if you had all hands on deck). And, who’s to say that Rust wouldn’t change incompatibly three times in the middle?

                                                                                                                              I suggest you read the linked article first. The title is clickbait but the content is solid. No one even mentioned Rust or anything else… The guy talks on their effort to reduce the foot guns in the kernel code…

                                                                                                                              Here is a quote for the lazy:

                                                                                                                              Kees Cook gave a presentation on some of the dangers that come with programs written in C. In particular, of course, the Linux kernel is mostly written in C, which means that the security of our systems rests on a somewhat dangerous foundation. But there are things that can be done to help firm things up by “Making C Less Dangerous” as the title of his talk suggested.

                                                                                                                              1. 4

                                                                                                                                I suggest you read the linked article first.

                                                                                                                                Ok, you got me, I only skimmed the article and I didn’t see any mention of rewrite until the comments (it was literally the first response to the second comment). Although I do hear that mentality about other large projects (such as Firefox) as well. I guess I should’ve said “Clickbait considered harmful” ;-)

                                                                                                                                I’ve read some more of the article and he seems to know what he’s talking about but I would like to see the original talk.

                                                                                                                                As far as reducing foot guns, I guess Linux did start out as just one guy so I can understand a lot of foot shooting, but it’s been years and I would’ve thought that things like VLAs would’ve been avoided in the kernel. Then agian, I’ve never worked on a project as large as Linux so i guess I’m not the best judge of such things.

                                                                                                                                1. 4

                                                                                                                                  Ok, you got me, I only skimmed the article and I didn’t see any mention of rewrite until the comments (it was literally the first response to the second comment). Although I do hear that mentality about other large projects (such as Firefox) as well.

                                                                                                                                  Agreed. It’s annoying as hell, and the loud-mouths never do the work.

                                                                                                                                  I guess I should’ve said “Clickbait considered harmful” ;-)

                                                                                                                                  Funny because the talk is titled ‘Making C Less Dangerous’ - the lwn reporter is actually responsible for the horrible title that misrepresents the content and invites rewrite talks. I think this is the first time I’m using the lobste.rs ‘suggest’ a new title option to rename the link to ‘Making C Less Dangerous’ disrespecting the reporters chosen title. This is an abstract of the talk so keep the title close to the content.

                                                                                                                              2. 7

                                                                                                                                Literally 20+ years of unending computer security exploits disagree with you.

                                                                                                                              1. 11

                                                                                                                                There was a comment in that HN post that stated:

                                                                                                                                Lobste.rs is basically Hacker News without intransparent moderating based on whims, liberofascist social justice warriors, stalinists and feminazis. I like browsing it, but it doesn’t have as much activity as Hacker News.

                                                                                                                                It was soon moderated and marked as “dead”.

                                                                                                                                Inflammatory words, but the moderation part has some truth to it in my experience.

                                                                                                                                1. 17

                                                                                                                                  i would mark any such post as troll too. There is no content beyond the insult - and the insults are unacceptably vitriolic.

                                                                                                                                  1. 10

                                                                                                                                    And they make us look bad. Many people will think that’s how comments on Lobsters look or how most of us think about HN. Neither is true. I tried hard in my summary there to avoid causing a quick dismissal by the crowd which that troll earned for themselves. I count it going dead as an example of HN moderation doing their job.

                                                                                                                                    1. 5

                                                                                                                                      Your summary was wonderful detailed and a great representation.

                                                                                                                                  2. 6

                                                                                                                                    liberofascist social justice warriors

                                                                                                                                    LOL what is that even supposed to mean

                                                                                                                                    1. 2

                                                                                                                                      “Bad bad people who are bad and I disagree with them”, I think.

                                                                                                                                    2. 3

                                                                                                                                      The problem isn’t that HN is moderated in a politically biased way, it’s that it’s not really properly moderated at all. I’m sure this is what you actually meant, but it’s important to point out. I’m a leftist with liberal opinions and I also found HN’s moderation lacking.

                                                                                                                                      1. 2

                                                                                                                                        The presence of people that doesn’t ditch social issues was the exact reason I joined lobste.rs (complete opposite of what that person thinks what lobste.rs is). If I wanted a community of techbros, I would have joined any other community on the internet.

                                                                                                                                        1. 2

                                                                                                                                          The presence of people that doesn’t ditch social issues was the exact reason I joined lobste.rs

                                                                                                                                          Really? I don’t visit Lobste.rs as often nowadays, however I remember that when I joined the site it was because that it focused on tech (and stuff interesting to hackers) more than politics. Has that changed?

                                                                                                                                          1. 3

                                                                                                                                            It’s still focused on tech, but social issues also happen on tech. And from what I noticed visiting the website in the last months, people don’t just dismiss them, solely because they are social issues. Which I think it’s a good thing.

                                                                                                                                            1. 3

                                                                                                                                              Could you point me to some example threads here (or, better, the relevant tags) that you refer to as social issues?

                                                                                                                                              1. 1

                                                                                                                                                They are often tagged with culture or culture + person when it’s something very specific. I just don’t link the threads specifically because I don’t know how the moderation will feel about that. But, if you google “site:https://lobste.rs + term” with a term related with social issues, you might find them easily.

                                                                                                                                            2. 3

                                                                                                                                              It’s news to me…I’m still working on keeping that stuff out.

                                                                                                                                          2. 1

                                                                                                                                            obviously whoever posted that comment has never seen my replies

                                                                                                                                            1. 0

                                                                                                                                              plz delete this

                                                                                                                                            1. 1

                                                                                                                                              Hmmm. I think you might be on to something…. but this is going to take a looong time to digest.

                                                                                                                                              My brain got as far as “Note that there are K ∗ J states for the array elements…” and segfaulted… Why isn’t that J**K states? But maybe it’s just I haven’t finished my morning coffee….

                                                                                                                                              So I’m doing a Bad Thing. Making a bookmarking comment to come back to when I have digested it.

                                                                                                                                              1. 2

                                                                                                                                                I am adding the state set counts of modules when the system is factored. So K elements of J states each. If we construct the product, we get J^K.