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. 19

      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. -2

        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. 9

        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. 15

            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. 7

              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. 7

                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. 15

                  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. 11

                On one hand, I don’t particularly find the Linux code particularly pleasant to work on, so I probably wouldn’t be contributing in my spare time regardless.

                On the other hand, I think that this reduces the chance that I’ll send any patches in the future; I find these “welcoming” cultures make me feel less at ease, for whatever reason, which is a second strike against my involvement.

                For me, the code reviews I got from Theo were a highlight of sending in patches to OpenBSD.

                In the end, it doesn’t matter much – not everything needs to be for everybody, and the Linux community isn’t run for for me. This will bring some people in, push others out, and the world will go on.

                1. 7

                  True. I’m also concerned that code quality (and therefore users) will suffer.

                  1. 21

                    Why? Do you truly believe that it is impossible to reject bad patches without telling someone that they should be “retroactively aborted”?

                    1. -5

                      Language as harsh as that is used daily in normal speech between developers. I’ve seen much worse slack channels in terms of use of language, and you wouldn’t believe the language I’ve seen used on IRC to describe bad code.

                      I do indeed think that if you start censoring peoples’ language they’re going to change the way they contribute for the worse. If all you did was ban the absolute worst things like that, nobody would complain. But the reality is that’s not what will happen. Anything ‘offensive’ will be banned. Offensiveness is completely subjective.

                      1. 18

                        Language as harsh as that is used daily in normal speech between developers

                        That’s a rash generalisation. At none of the places I’ve worked as a developer would that sort of language be acceptable.

                        Offensiveness is completely subjective

                        That’s also untrue. While there will be grey areas, there are some things that are objectively offensive if interpreted literally - and if they’re not meant literally, why not use another expression?

                        1. 3

                          I’m going to guess you’re an American, correct me if I’m wrong. EDIT: stand corrected

                          The American cultural norm of ‘compliment sandwiches’ and being obsequiously polite is cancer to the ears of most people that aren’t Americans. I find it quite funny that Americans have this idea of Japanese as being very polite culturally, while Americans are insanely polite culturally compared to most other English-speaking countries.

                          The typical British, Australian or Kiwi software developer swears like a trooper. It’s not uncommon, it’s not offensive. You wouldn’t do it in an email, but this is the key point: my emails are not Linus’s emails. The context is different. All his communication is by email, so naturally email carries a much lower average level of formality.

                          That’s also untrue. While there will be grey areas, there are some things that are objectively offensive if interpreted literally - and if they’re not meant literally, why not use another expression?

                          I don’t even know how to respond to this. Why would one only ever say things you mean literally? Speaking entirely literally is something I would expect of someone with extreme levels of Asperger’s syndrome, I believe it’s a common symptom.

                          1. 9

                            I’m going to guess you’re an American, correct me if I’m wrong

                            The typical British, Australian or Kiwi software developer swears like a trooper

                            You are wrong; I’m Australian, currently working in England, and I disagree. Regardless, swearing by itself is not something that I find offensive.

                            Why would one only ever say things you mean literally?

                            That’s not what I suggested. If you have a choice between a highly offensive figurative or metaphorical expression and some other expression - whether literal or also figurative - which is not highly offensive, why go for the former?

                            1. 2

                              You are wrong; I’m Australian, currently working in England, and I disagree. Regardless, swearing by itself is not something that I find offensive.

                              I see

                              That’s not what I suggested.

                              I must have misinterpreted you. Sorry.

                              If you have a choice between a highly offensive figurative or metaphorical expression and some other expression - whether literal or also figurative - which is not highly offensive, why go for the former?

                              People say things that others find offensive, sometimes on purpose and sometimes not. Offensiveness is subjective. I genuinely don’t think I’ve ever been offended. Why go for one expression over another knowing that someone will get their knickers in a twist over it? Because you don’t care if someone finds it offensive? Because you enjoy it?

                              I have to admit that I actually quite enjoy knowing that someone got self-righteously offended over something I’ve said. It hasn’t happened too often, but when it does it’s just great.

                              EDIT: to be clear, there is ‘offensiveness’ that I don’t like. If someone is racist, I’m not offended, I just think that being racist is wrong and stupid and that they are wrong and stupid. I guess you could call this ‘offense’ but it’s really not the same thing.

                              1. 5

                                Why go for one expression over another knowing that someone will get their knickers in a twist over it? Because you don’t care if someone finds it offensive? Because you enjoy it?

                                I was not intending for you to provide an answer for the “why” - it was a rhetorical question. The point was that I do not think you should say something that may well offend someone, when there is a way to communicate without doing so.

                                Offensiveness is subjective. I genuinely don’t think I’ve ever been offended

                                I suspect this is why you’re having difficulty seeing the problem, and while I envy you never having experienced the feeling of being offended I can see that this could lead to lack of empathy for those who were.

                                Maybe you wouldn’t get offended by something, but that doesn’t mean it’s “not offensive” per se. I don’t agree that offensiveness is entirely subjective. Implying (or stating directly) that someone is stupid in communication to them, for example, is generally considered offensive. Statements can be intended to cause offense. There may be disagreement on specific cases, but I think in general that there would be good agreement in a survey of a random portion of the population that certain statements were offensive.

                                1. 1

                                  I think the reality is that I would be closest to feeling hurt or offended by someone calling me stupid if I really had done something stupid. I’ve been called stupid when I haven’t been stupid many times, doesn’t bother me. I’ve been called stupid when I really have been stupid, and it does indeed make you feel bad.

                                  I’ll acknowledge that the best way to deal with some bad code getting into the Linux kernel isn’t to make the person that wrote it feel bad.

                            2. 4

                              The typical British, Australian or Kiwi software developer swears like a trooper.

                              As a kiwi, I have not had this experience at all, quite the opposite. Everyone I work with is polite and respectful. This is just my experience, but I’m very surprised by your comment.

                              it’s not offensive

                              Sure, if it’s just swearing in general (though I’d still prefer to keep it to a minimum). The problem is when it becomes personal. Your argument is that people use ‘language just as harsh is used daily’, but there’s a line between bad language and abusive language. I don’t think the latter should be acceptable in a professional environment (at least one I’d want to work in). You can’t use one to justify the other.

                              1. 2

                                The typical British, Australian or Kiwi software developer swears like a trooper. It’s not uncommon, it’s not offensive.

                                I work in software development in the UK and many of Linus’ comments would be seen as completely unprofessional in either emails or conversation - certainly far past the bar where HR would get involved. There’s a massive gap between swearing and direct personal insults.

                        2. 20

                          I am honestly at a loss to see who abiding to a bland CoC could lead to code quality suffering.

                          Nothing in the CoC that I have read is in any way unremarkable. It’s simply normal professional behavior codified, with some additions to address the peculiarities of mostly online communications.

                          1. 5

                            It’s simply normal professional behavior codified.

                            That ship has sailed, but I am not convinced Open Source should be held to the standards of “professional behavior”. For instance, should we stop accepting underage contributors? What about anonymous or pseudonymous contributions?

                            Moreover what constitutes “professional behavior” differs wildly between countries and even companies within countries. For instance, “don’t ask don’t tell”-style policies are still the norm at some workplaces; do we want that in our communities? Or should we just accept that the average (non-Trump voter) U.S. sentiment should be the norm in Open Source?

                            Regarding Linus, he does (did?) have a very strong way of reacting when people disregarded things that he considered important principles of the kernel such as “do not break userspace”. He isn’t shy to use strong language to criticize companies either :)

                            Whether this has a positive or a negative effect is hard to say. It certainly antagonizes some people, and especially some potential new contributors, but at the scale of Linux should that still be the main concern of the project?

                            In any case Linus knows he reacts too strongly too fast already. This is not the first time he says something like that. We should wait and judge the long-term effects in a few months or years.

                            1. 12

                              Treating people professionally does not imply employment. A proprietor of a store treats a customer professionally by not insulting them, or refusing service. A teacher treats a student professionally by not verbally denigrating them, for example. A maintainer of an open source project treats bug reports professionally by attempting to reproduce them and applying a fix, even though the submitter of the issue may as well be anonymous.

                              It’s basically the 21st century formulation of the Categorical Imperative, as far as I am concerned.

                          2. 14

                            No one said you have to be an asshole when being firm about rejecting patches.

                            1. -1

                              A lot of people will interpret anything firm as being an arsehole. If you don’t put smiley faces at the end of every sentence, some people will interpret it as you being an arsehole. If you don’t couch every negative thing you say between two positive things, people will react very aggressively.

                              1. 16

                                But saying someone should be “retroactively aborted” for some bad code?

                                1. 10

                                  If you don’t put smiley faces at the end of every sentence, some people will interpret it as you being an arsehole. If you don’t couch every negative thing you say between two positive things, people will react very aggressively.

                                  This sounds like a very broad generalization to me.

                              2. 22

                                I think there’s no causal link between “being nicer when responding to patches” and code quality going down. If anything I’d suspect the opposite; you get people who learn and improve rather than giving up after feeling insulted, and then continue to submit quality improvements.

                                1. 3

                                  Linus Torvalds is nearly always nice when responding to patches. In 0.001% of emails he’s rude. Unfortunately he sends a lot of emails, and people cherry-pick the worst of the worst.

                                  1. 20

                                    His own apology and admission of a problem would indicate that the issue is significant. That “0.001%” is a made-up number, isn’t it? While I’m sure that only a small number of his emails are insulting, that small number still has - and has had - a detrimental effect on the mind-state of other developers. This is what’s come out of a discussion between Linus and a number of developers.

                                    Don’t get me wrong, I like Linus generally (not that I know him personally) and I think he does a great job in general, but it’s clear that this personality problem has been a growing problem. A number of people - even quite prominent developers - have left the kernel development arena because of this kind of behaviour from Linus and others and/or issues around it.

                                    I think this is a great step on Linus’ behalf, it must have been hard to make the admissions that he has and it’s a sign that things really could be better going forward.

                                    1. 4

                                      His own apology and admission of a problem would indicate that the issue is significant.

                                      I disagree. I think the issue is massively overblown and that he’s been worn down by the endless bullshit about something that really isn’t an issue.

                                      That “0.001%” is a made-up number, isn’t it?

                                      If you’d like to go do sentiment analysis on every LKML email he’s sent, be my guest. I’d love to see the real numbers. But I chose the number to make a point: it’s a vanishingly small number of emails. It’s about half a dozen well known rude emails over two decades or more. They’re really not that bad taken in the context of the number of emails he sends and the context in which he sends them. He doesn’t say ‘this code is shit’ out loud to his coworker and then send a nice polite email. The LKML is the entire communication layer for all of Linux kernel development (plus the other lists of course). The context of those emails includes a lot more than what you’d normally include in emails in a normal development environment.

                                      While I’m sure that only a small number of his emails are insulting, that small number still has - and has had - a detrimental effect on the mind-state of other developers. This is what’s come out of a discussion between Linus and a number of developers.

                                      I mean frankly I think that if someone is going to be detrimentally affected by a few emails they are no great loss. I’ve seen a few people that say things like ‘I’d never contribute to Linux even if that were in my skill set, because they’re always rude to new people’ and then cite Linus’s emails as evidence of this. I’ve seen that sort of comment a lot. Dozens of times on /r/linux, dozens of times on /r/programming, many times on HN. It’s rubbish! The LKML isn’t obsequious: the email culture there is the traditional techy one of saying what you need to say straightforwardly rather than the traditional corporate one of layering everything in sugar to avoid sounding rude to people that expect every criticism to be wrapped in three layers of compliments.

                                      The LKML is especially not rude to newcomers. Linus has been rude, in the past, sure, but only to people that are expected to know better. Long term, hardcore maintainers that have been around for years. Is it okay? No, but it’s not anything to get worked up about. It’s a really really minor issue.

                                      There are way bigger issues in Linux kernel development, like the really scary amount of control and input some companies have in its development.

                                      Don’t get me wrong, I like Linus generally (not that I know him personally) and I think he does a great job in general, but it’s clear that this personality problem has been a growing problem. A number of people - even quite prominent developers - have left the kernel development arena because of this kind of behaviour from Linus and others and/or issues around it.

                                      They probably would have left anyway. People don’t change careers because someone said ‘retroactively aborted’ in an email once.

                              3. 8

                                funny, I almost avoided a potential security report to OpenBSD because I saw the contact is theo. I didn’t want to get flamed.

                              1. 1

                                How likely is your stack implementation to break after it’s initially written?

                                Very. If you - for whatever reason - find yourself implementing a stack class instead of using an existing one, you’re probably going to come back and optimize or improve it to better fit the specific needs that required it in the first place.

                                1. 2

                                  I don’t have anything useful to say about this, but I really really love it. There’s a lot of cool data that I always thought would be hard to collect, and it’s very nicely presented.

                                  It’d be nice to be able to just show “known” influences instead of “known” and “inferred” influences.

                                  1. 1

                                    I’ll probably never use this, but I’m really glad it exists - whenever I’ve managed a Slack instance I’ve had people who don’t want to use it without a non-GUI option.

                                    1. 11

                                      I don’t claim to understand the nitty gritty of HTTPS but I feel like it should be possible to cache HTTPS requests by having clients recognize the caching server as a certificate authority. My employer has managed to snoop on my HTTPS traffic somehow and I assume it has to do with the root CA my installed on my workstation that no one outside the organization has ever heard of. I’m guessing the proxy is generating a phony certificate for my target domain and then signing it itself while using publicly acknowledged CAs on the other side. I can’t say I enjoy being MitM’d by my employer but if there’s a use case that justifies it, the situation described in the article seems to be it.

                                      Is this not actually what’s happening? Is it impossible to do given the resource constraints of rural Ugandan computing?

                                      1. 11

                                        What you’ve described is right - it’s not uncommon for companies to snoop on HTTPS traffic by installing their own CA on employees machines. I don’t think it’s a good practice, but it does work in cases where companies insist on doing so, and there’s no reason it shouldn’t work for a caching server.

                                      1. 3

                                        I’ve wanted something like this for a while - the idea of mixing documentation/checklists and a record of going through them really appeals to me.

                                        Not sure about GitHub-as-storage, but I can see how other approaches might be more work. I was expecting it to be more like a wiki (self-hosted, database backend) on first glance, but I’m not sure if that would actually be an improvement rather than just what I’m used to.

                                        1. 2

                                          Yes, checklisted documentation is helpful, but also notice the context-collection capabilities via comments on steps. The motivation use case: A person is working on a complex process for several months, then leaves the company. Another person takes over and has to get up speed quickly. By looking at the graph they can immediately understand what have been done, what haven’t been done and what’s blocking what. By looking at individual unfinished step they can read the comments and understand what was already done.

                                        1. 41

                                          It’s also developer-friendly because of its excellent wiki.

                                          I learned Linux doing everything by hand on a Slackware system, then moved to Ubuntu after ~8 years when I realized I’d stopped learning new things. Then a couple years ago I realized I didn’t understand how a bunch of things worked anymore (systemd, pulseaudio, Xorg, more). I looked at various distros and went with Arch because its wiki had helped me almost every time I’d had an issue.

                                          Speaking of distros, I’m currently learning Nix and NixOS. It’s very nice so far. If I can learn to build packages I’ll probably replace lobsters-ansible with it (the recent issues/PRs/commits tell a tale of my escalating frustration at design limitations). Maybe also my personal laptop: I can experiment first with using nix to try xmonad first because it’s mostly configured by editing + recompiling) and deal with python packaging, which has never worked for me, then move completely to NixOS if that goes well.

                                          1. 9

                                            I switched from Mac to NixOS and couldn’t be happier. At work we use Nix for building Haskell projects as well.

                                            1. 9

                                              The Arch wiki actually seems to be the only good documentation for using the advanced functionality of newer freedesktop components like pulseaudio, or much older software like Xorg.

                                              But I’ve noticed it’s documentation for enterprise software like ZFS is usually hot garbage. Not surprising given the community. The recommendations are frequently hokey nonsense: imaginary micro-optimizations or blatantly incorrect feature descriptions.

                                              What do you find better about nix for making packages than, say, making an rpm or deb? I’ve found those package systems valuable for large scale application deployment. Capistrano has also been nice for smaller scale, with its ability to deploy directly from a repo and roll back deployments with a simple symlink swap. And integration libraries are usually small enough that I’m comfortable just importing the source into my project and customizing them, which relieves so many minor tooling frustrations overall.

                                              Of course in the end the best deployment system is the one you’ll actually use, so if you’re excited about packaging and deploying with nix, and will thus devote more time and energy to getting it just right, then that’s de facto the best option.

                                              1. 3

                                                What do you find better about nix for making packages than, say, making an rpm or deb?

                                                I don’t, yet. The “If I can learn to build packages” sentence links to an issue I’ve filed. I was unable to learn how to do so from the official documentation. I’ve almost exclusively been working in languages (PHP, Python, Ruby, JavaScript) that rpm/deb have not had good support for, prompting those languages to each implement their own package management systems that interface poorly or not at all with system packaging.

                                                I’ve used Capistrano, Chef, Puppet, and currently use Ansible for deployment. Capistrano and Ansible at least try to be small and don’t have a pretensions to being something other than an imperative scripting tool, but I’ve seen all of them break servers on deployment, let servers drift out of sync with the config, or fail to be able to produce new deployments that match the existing one. Nix/NixOS/NixOps approach the problem from a different direction; it looks like they started from what the idea of system configuration is instead of scripting the manual steps of maintaining one. Unfortunately nix replicates the misfeature of templating config files and providing its own config file on top of them instead of checking complete config files into a repo. Hopefully this won’t be too bad in practice, though it’s not a good sign that they implemented a programming language.

                                                I appreciate your closing sentiment, but I’m not really trying to reach new heights of system configuration. I’m trying to avoid losing time to misconfiguration caused by services that fundamentally misunderstand the problem, leading to booby traps in common usage. I see almost all of my experience with packaging + deployment tools as a loss to be minimized in the hopes that they waste less time than hand-managing the global variables of public mutable state that is a running server.

                                                1. 1

                                                  Hmmm. I don’t think the problems you listed are 100% avoidable with any tool, just easier in some rather than others.

                                                  I like Puppet and Capistrano well enough. But I also think packaging a Rails application as a pre-built system package is definitely the way to go, with all gems installed and assets compiled at build time. That at least makes the app deployment reproducible, though it does nothing for things like database migrations.

                                                2. 1

                                                  What do you find better about nix for making packages than, say, making an rpm or deb?

                                                  Let me show you a minimal nix package:

                                                  pkgs.writeScriptBin "greeter" "echo Hello $1!"
                                                  

                                                  Et voila! You have a fine nix package of a utility called greeter that you can let other nix packages depend on, install to your environment as a user or make available in nix-shell. Here’s a function that returns a package:

                                                  greeting: pkgs.writeScriptBin "greeter" "echo ${greeting} $1!"
                                                  

                                                  What you have here is a lambda expression, that accepts something that you can splice into a string and returns a package! Nix packages in nixpkgs are typically functions, and they offer an a great amount of customizability without much effort (for both the author and the user).

                                                  At work, we build, package and deploy with nix (on the cloud and on premises), and we probably have ~1000 nix packages of our own. Nobody is counting though, since writing packages doesn’t feel like a thing you do with nix. Do you count the number of curly braces in your code, for instance? If you’re used to purely functional programming, nix is very natural and expressive. So much so that you could actually write your application in the language if it’s IO system were designed for it.

                                                  It also helps a lot that nix can seamlessly be installed on any Linux distro (and macOS) without getting in the way of its host.

                                                  1. 1

                                                    If only ZFS from Oracle hadn’t had the licensing compatibility issues it currently has, it would probably have landed in the kernel by now. Subsequently, the usage would have been higher and so would the quality of the community documentation.

                                                  2. 4

                                                    If I can learn to build packages I’ll probably replace lobsters-ansible with it

                                                    Exactly. I don’t have much experience with Nix (none, actually). But in theory it seems like it can be a really nice OS-level replacement for tools like Ansible, SaltStack, etc.

                                                    1. 1

                                                      This is exactly what NixOps does! See here.

                                                      1. 2

                                                        Thanks for the video. I’ll watch it over the weekend!

                                                        Curious - are you also running NixOS on your personal machine(s)? I’ve been running Arch for a long time now but considering switching to Nix just because it makes so much more sense. But the Arch documentation and the amount of packages available (if you count the AUR in) is something that’s difficult to leave.

                                                        1. 1

                                                          Yes, I’m using it on my personal machine :). I wouldn’t recommend switching to NixOS all at once, what worked for me was to install the Nix package manager, use it for package management and creating development environments, and then only switch once I was fully convinced that NixOS could do everything I wanted from my Ubuntu install. This took me about a year, even with me using it for everything at work. Another approach would be to get a separate laptop and put NixOS on that to see how you like it.

                                                          1. 1

                                                            Interesting. I’ll try it out for some time on a VM to get a hang of it. Thanks for the info!

                                                    2. 3

                                                      Even as a Ubuntu user, I’ve frequently found the detailed documentation on the Arch wiki really helpful.

                                                      1. 2

                                                        I really want to use Nix but I tried installing it last month and it doesn’t seem to have great support for Wayland yet which is a deal breaker for me as I use multiple HiDPI screens and Wayland makes that experience much better. Anyone managed to get Nix working with Wayland?

                                                        1. 2

                                                          Arch’s wiki explaining how to do everything piecemeal really seems strange given its philosophy is assuming their users should be able to meaningfully help fix whatever problems cause their system to self-destruct on upgrade. It’s obviously appreciated, but still…confusing, given how many Arch users I’ve met who know nothing about their system except what the wiki’s told them.

                                                          1. 1

                                                            I gave up on my nix experiment, too much of it is un- or under-documented. And I’m sorry I derailed this Arch discussion.

                                                            1. 1

                                                              I’m happy to help if I can! I’m on the DevOps team at work, where use it extensively, and I did a presentation demonstrating usage at linux.conf.au this year. All my Linux laptops run NixOS and I’m very happy with it as an operating system. My configuration lives here.

                                                              1. 2

                                                                Ah, howdy again. I’m working my way through the “pills” documentation to figure out what’s missing from the nix manual. If you have a small, complete example of how to build a single package that’d probably be pretty useful to link from the github issue.

                                                                1. 2

                                                                  I made a small change to the example to get it to build, and I’ve added it as a comment to your issue.

                                                            1. 10

                                                              The author suggests that you could take linux cgroups, namespaces, packaging tools and filesystems to build something that would let you package and run isolated services.

                                                              I suggest that a group of people have already done that, and called it Docker.

                                                              1. 1

                                                                I don’t know much about this, but it seems like the author’s saying that while Docker does abstract over these utilities, it also adds some new overhead & complexity in exchange. And from what I can see, reduce flexibility and interoperability on top of all of that.

                                                                Is Docker’s implementation truly as simple as you suggest? And if so, is unifying & packaging this functionality a better solution than writing a guide on how to configure the set-up yourself? After all, we developers don’t go around saying our computers’ built-in utilities are too complex for web functionality and we should use entire browsers to do the same thing instead! …oh wait.

                                                                1. 2

                                                                  Docker is not simple (it’s 10 million+ lines of code!), and you absolutely get new overhead and complexity, as you do with anything that abstracts over a set of components and adds features on top of them. It reduces flexibility, as many abstractions do. But those things are not inherently downsides of Docker - that complexity adds features on top, and it’s able to provide a standard approach and set of features.

                                                                  The author’s suggestion that you could put those components together in a couple of scripts and get the same results as Docker is pretty silly - people have done exactly that, resulting in projects like bocker (docker in 1000 lines of bash) which is neat but avoids implementing any of the actually hard parts of docker, like networking, filesystems or system setup.

                                                                  And if so, is unifying & packaging this functionality a better solution than writing a guide on how to configure the set-up yourself?

                                                                  It think it absolutely is, in almost any situation. Giving people tools they can use without needing to understand the details is incredibly useful, as it means they can spend their time working on more important things. I find it hard to imagine any situation where the answer to that isn’t yes.

                                                                  1. 1

                                                                    I understand. In that case, what would be missing if the “hard parts” were implemented in the scripts as well? Or, from another perspective, why couldn’t Docker itself consist of a bunch of shellscripts? Wouldn’t using existing system utilities be a boon for modularity?

                                                                    1. 2

                                                                      I think you’re conflating “uses existing system utilities” (which Docker does) with “written in shell scripts” (which Docker is not). There’s not really any good reason to write things in sh/bash other than it’s ease of use for small tasks - it’s certainly not suited for writing anything at all complex.

                                                                      1. 1

                                                                        Oh. If it already uses system utilities (such as chroot or systemd-nspawn, as the author suggests), then what on earth is the author complaining about? It seems like he’s saying that Docker goes about doing this in a roundabout fashion, but to hear you say it, that is false.

                                                              1. 8

                                                                This seems almost entirely a reaction to a set of values (“new shiny technology is good!”) rather than a set of values that stands on it’s own merits. The examples in particular list a set of technologies - microservices, NoSQL, single-page apps - that while possibly used often where they don’t need to be still have real cases where they are appropriate, valuable solutions.

                                                                1. 3

                                                                  I like most of this, save for unquoted string values - as lines like x: true become ambiguous (could be either the string "true" or the boolean true). YAML does this, but with a whole list of words that evaluate to true or false which can easily lead to subtle mistakes.

                                                                  1. 1

                                                                    I found that in practice it works surprisingly well, and is less error prone than Yaml – I never got bitten by the unquoted strings, for what it’s worth. It’s a syntax that deserves to be more well known, and a good alternative to *ml languages.

                                                                  1. 7

                                                                    I do something very similar with Ansible. I’ve found it a lot more effective than bash scripting or tools that symlink dotfiles into a home directory, since it not only manages configuration but also installing the applications that use that configuration - I think more of my setup is installing apps over configuring them now.

                                                                    I also use peru to download applications I can’t install from a standard package repository and store them in my git repo, so that I’m relying on fewer external downloads at setup time, and can easily control when they update.

                                                                    1. 1

                                                                      Thanks for the hat tip to peru. I’ll have to check that out.

                                                                    1. 2

                                                                      I played this a lot a few years back, and wondered a lot about how they managed to generate playable levels where all the challenges were randomised. It’s nice to see articles going into detail about how the mechanics of games were designed.

                                                                      1. 1

                                                                        This really misses the most obvious argument for using Docker: because it’s easy.

                                                                        It’s really as simple as that. It saves me time, and I spend that time doing more useful things.

                                                                        1. 2

                                                                          The author contrasts “easy” and “simple”, agreeing that Docker may be easy but it doesn’t simplify things. (Inspired by Rich Hickey’s talk https://www.infoq.com/presentations/Simple-Made-Easy which I highly recommend).

                                                                        1. 27

                                                                          I’m glad to see this trend of standing up against poltiical exclusion in Open Source. I assume that the Code of Conduct for llvm was written in good faith, but the continued demonization of political groups (and to some extent, white men) is troubling. Remember when no one on the internet cared what you looked like, believed, or who you loved? I want to go back to that :/

                                                                          1. 43

                                                                            Who is being excluded? How is Outreachy preventing someone from contributing to llvm?

                                                                            I remember those days too. “No one” cared because “everyone” assumed you were white, male, and college educated. “There are no women on the Internet” dates back, at least, to the early ’90s.

                                                                            As a black male dropout, that was fine for me— I could get involved. No one questioned my capabilities. And as long as I kept up a good impression of being fluent in upper-middle to upper-class white culture, I could build my skills and social capital.

                                                                            I also got beat up on the street in front of my grandmother for “showing off” how I could “talk white” at school.

                                                                            I also remember, when Pentiums were out, using a pawn shop purchased Apple IIc with a gifted modem. I also remember hacking into dial-up pools to get telnet— haha, as if my machine could talk SLIP or PPP. I remember begging friends from MOOs and IRC for a shell account. I remember having no concept of the disparity between myself and the people with whom I played games, chatted, wrote code, and made friends. They simply had things, and I didn’t.

                                                                            I don’t see a problem with choosing to give their time and their money to mentor people who otherwise might not be able to participate. There certainly hasn’t been a problem with people choosing to give their time and their money to people who look like them, sound like them, grew up with them, attend the same church as them, went to the same school as them, are friends with them, enjoy the same movies as them, play the same sports as them, and just happen to be a well-off straight white male. Just. Like. Them.

                                                                            1. 5

                                                                              I also remember hacking into dial-up pools to get telnet

                                                                              Holy crap, you and I are kindred spirits. The terminal-concentrator at the local university dropped you into a command line…you were supposed to then immediately telnet to the VAX on campus, but they didn’t enforce that. I was 13 years old and certainly not a student at said university but boy did I get around using that little trick.

                                                                              (This would’ve been like 1993. I’m old.)

                                                                              1. 4

                                                                                🙏🏾 s/the local university/Sprint/ and that was me too!

                                                                                1. 4

                                                                                  It was an eight year old Amiga 1000 that my dad got at an estate sale for like $20 because it would only boot up about half the time and shut down and random intervals, hooked up to a black and white TV, with an old external 1200 baud modem and a terminal program I got off a disk on the cover of a magazine. I felt like the lord of all creation.

                                                                                  Man I’m nostalgic now.

                                                                                  1. 4

                                                                                    Who ever thought we’d make it this far?

                                                                              2. 3

                                                                                I remember when internet arrived at my hometown. It was 1996. I am not sure such delay was related to skin color.

                                                                              3. 46

                                                                                There is no whitemend.

                                                                                Outreachy isn’t out to make a monster out of you. It’s trying to correct for GSoC. You don’t like Outreachy’s policies, a much smaller, less well-funded org than Google, then go through GSoC and Google. You have lots of other options other than Outreachy.

                                                                                The code of conduct doesn’t say anything about how white men are bad. Reading the CoC, if you object that strongly to it that you must leave, then please do! That’s the CoC working as intended. You are deciding to exclude yourself by deciding that what the CoC forbids (i.e. being an asshole) is something that you must be and defend.

                                                                                Also, one more thing.

                                                                                I wish I could explain to people who are privileged one way or another, that it doesn’t mean your entire life is handed to you in a silver platter. Being a white male doesn’t mean you can’t be poor or can’t be gay (thus discriminated) or that you can’t have a slew of other problems.

                                                                                It just means you don’t have those problems in addition to also being discriminated for being a woman, for being black, for being anything else.

                                                                                1. 5

                                                                                  Reading the CoC, if you object that strongly to it that you must leave, then please do! That’s the CoC working as intended. You are deciding to exclude yourself by deciding that what the CoC forbids (i.e. being an asshole) is something that you must be and defend.

                                                                                  I would disagree with that notion. I think it’s certainly possible to disagree with the CoC or parts of it without being an “asshole as the CoC forbids”. Personally and for example, I would say the “Be welcoming” clause is too exhaustive and could be shortened to “Be welcoming to everyone regardless of who they are and choose to be” which would IMO cover the same topics as it does now. The fifth clause is also way too broad and vague. A simple note that discussion not furthering the the project or it’s software, being NSFW or otherwise non-productive would have achieved the same goal and would give moderators more leeway to deal with troublemakers.

                                                                                  I specifically wonder why number 6 was necessary. It’s a community of coders, if they can’t understand disagreement I seriously question what is going on behind the scenes that warrants such a rule. Does discussion derail so often into low level sand-flinging?

                                                                                  Not too long ago I was member of a forum focused around LEGO robots. There were no rules of any kind but plenty of electricians and programmers around, men, women, kids and teens, etc. Everyone was happy to participate and be happy to exchange ideas and code. When there was drama the moderators enacted unspoken rules of the clearly obvious kind. If you insulted someone for no reason you got banned. Same for insulting someone based on their gender. We didn’t need rules for that. It was obvious as day that such behaviour was not something you’d do to have a productive conversation with someone about the intricacies of rubber bands vs gearing.

                                                                                  1. 8

                                                                                    I specifically wonder why number 6 was necessary. It’s a community of coders, if they can’t understand disagreement I seriously question what is going on behind the scenes that warrants such a rule. Does discussion derail so often into low level sand-flinging?

                                                                                    Speaking as someone who has over the course of many years, moderated things on the internet. Things like this exist because otherwise someone will come along and say “but you didn’t say”. It’s an unwinabble battle, there will always be a “but you didn’t say” response to something. You try to cover the big things in a broad way so that people have a general idea.

                                                                                    I’ve answered many emails as a member of the Pony core team where well meaning people write in to ask “if I do X, would that be against the CoC”. I can’t say that is how every CoC operates, but its how I like them to operate:

                                                                                    Here are some ground rules. If you aren’t sure if what you are going to do violates those ground rules, maybe don’t it or ask whoever enforces the CoC.

                                                                                    CoC’s are far from perfect. A large amount of that lack of perfection is that they are administered by people. Establishing some ground rules for a community is better than having none. Most communities have a CoC whether they call it that and whether its explicit. Take HackerNews, its called “Guidelines” there. It’s still a statement of some behavior that isn’t acceptable.

                                                                                    1. 2

                                                                                      I think if someone goes down the route of “but you didn’t say” that would be grounds for getting a mute from the poor moderator they annoyed. At least back in the forum that was how it was handled. Nitpickers aren’t people who tend to keep around once the people in charge hammer them on the fingers.

                                                                                      I don’t think Hackernews’ Guidelines are comparable to a Code of Conduct. HN’s book of laws is much more vague and subjective, the word “guideline” already implies a certain amount of softness. Moderators won’t stick to that word-by-word and rather apply common sense on top of the rules. A “Code of X” for me implies a certain rigidness and thoroughness that isn’t present in most of them.

                                                                                  2. 14

                                                                                    The code of conduct doesn’t say anything about how white men are bad.

                                                                                    And yet that is how it has been applied. The organisation is funding a scholarship which is very explicitly open to people of some race/gender combinations and not others. I don’t think finding that unconscionable makes someone an “asshole”; quite the opposite.

                                                                                    I wish I could explain to people who are privileged one way or another, that it doesn’t mean your entire life is handed to you in a silver platter. Being a white male doesn’t mean you can’t be poor or can’t be gay (thus discriminated) or that you can’t have a slew of other problems.

                                                                                    It just means you don’t have those problems in addition to also being discriminated for being a woman, for being black, for being anything else.

                                                                                    Put it this way: I would lay money that, in practice, the average Outreachy scholarship ends up going to someone who has had an easier life than the average open-application scholarship (GSoC or similar). The rhetoric of inclusion is all about underprivileged groups, but somehow the beneficiaries always end up being middle-class college-educated liberals.

                                                                                    1. 15

                                                                                      The organisation is funding a scholarship which is very explicitly open to people of some race/gender combinations and not others. I don’t think finding that unconscionable makes someone an “asshole”; quite the opposite.

                                                                                      Races and genders which are significantly unrepresented in the field they are trying to get them into.

                                                                                      There are campaigns and organisations here to try and get more male primary school teachers, because males are significantly unrepresented in primary education. Are the people running those organisations and campaigns “assholes” for discriminating against women, who represent over 84% of primary school teachers?

                                                                                      1. 4

                                                                                        He said although he made hiring decisions based on who was the best teacher, irrespective of gender, it would be great to see more men giving teaching a go.

                                                                                        That’s what the non-asshole version of this kind of thing looks like. Marketing the career to a particular demographic is fine. Giving that demographic an unfair advantage is not fine.

                                                                                        1. 2

                                                                                          It’s an unfair advantage that’s not even managing to negate the pre-existing unfair disadvantages that certain groups face.

                                                                                          1. 4

                                                                                            It’s Simpson’s paradox in reverse: picking an advantaged member of a disadvantage group over a disadvantaged member of an advantaged group is a negative step for equality that sounds like a pro-equality move.

                                                                                      2. 6

                                                                                        The outreachies I’ve seen have gone to Indian and Eastern bloc girls. You don’t see a lot of those in GSoC.

                                                                                        1. 4

                                                                                          Sure. That doesn’t contradict what I said: that the beneficiaries of these efforts end up being disproportionately people from the international college-educated liberal middle class (a group that’s far more homogenous in the ways that matter than most races or genders, though that’s a separate discussion), people who have had an easier life with fewer problems than the people they are displacing, even when those people are white and male.

                                                                                          1. 4

                                                                                            Let’s assume you’re right.

                                                                                            How does Outreachy working with international college-educated liberal middle class Indian and Eastern bloc girls displace anyone?

                                                                                            1. 2

                                                                                              If LLVM is choosing to fund a scholarship with Outreachy in place of funding one with GSoC, the recipient of that scholarship is displacing the person who would’ve received the GSoC one.

                                                                                              1. 9

                                                                                                Please correct me if I’m wrong, but as I understand it:

                                                                                                • LLVM participates in both Outreachy and GSoC.
                                                                                                • LLVM doesn’t fund either programme.
                                                                                                  • Outreachy and GSoC both provide funds for their own programmes.

                                                                                                So, neither LLVM nor Outreachy are “displacing” anyone from GSoC.

                                                                                                Moreover, no one even signed up for LLVM’s Outreachy! So this is hypothetical “displacement.”

                                                                                                1. 1

                                                                                                  Outreachy doesn’t fund internships, you need to bring your own funding to them. I’m not sure how LLVM is funding their outreachy internships.

                                                                                                  1. 8

                                                                                                    [citation needed]

                                                                                                    Because, from their front page:

                                                                                                    Outreachy provides three-month internships for people from groups traditionally underrepresented in tech. Interns are paid a stipend of $5,500 and have a $500 travel stipend available to them.

                                                                                                    And their sponsor page:

                                                                                                    Outreachy internship stipends, travel fund, and program costs are supported by our generous donors.

                                                                                                    Same page, “Commonly Asked Questions”:

                                                                                                    Q: Who pays the interns? A: The Outreachy parent organization, the Software Freedom Conservancy, handles payments to interns.

                                                                                                    Not to make too fine a point:

                                                                                                    Q: We have a company internship program. How does that work with Outreachy internships? A: Outreachy internships are completely separate from any other internship program. Outreachy organizers find FOSS communities that are willing to provide mentorship and use corporate sponsorship to fund the internships.

                                                                                                    1. 1

                                                                                                      I guess I don’t see how you’re disagreeing with what I wrote. You need to have funding arranged before you can set up an outreachy internship.

                                                                                                      1. 4

                                                                                                        FOSS community provides mentorship. Corporate sponsor provides funding. Internship = mentorship + funding. Outreachy provides internships.

                                                                                                        The money from corporate sponsors goes into a pool that is used for all internships. Outreachy is a funds aggregator.

                                                                                                        When you say “you need to bring your own funding to them,” who is the “you?” It’s not the FOSS community. It’s not the internship applicant. Who is it?

                                                                                                        1. 1

                                                                                                          Perhaps the policy changed. When I looked this up in November it was the responsibility of whoever wanted to start an outreachy program for a project to identify a source of funding.

                                                                                                          1. 2

                                                                                                            According to the Internet Archive, in September of 2017, their policy was exactly the same. It’s the same at least back through the last GNOME Outreachy, over a year ago.

                                                                                                            Update: I deleted my follow-on questions. This is the kind of back and forth @pushcx warned about.

                                                                                                            1. 2

                                                                                                              Did you see my other comment? Each org needs to find a coordinator who needs to find funding for their org (see under coordinator, here: https://www.outreachy.org/mentor/). That might be in terms of corporate sponsorhip, but outreachy won’t do that for you.

                                                                                                              1. 2

                                                                                                                No I didn’t, I missed your self-reply. Sorry about that!

                                                                                                                And, yeah:

                                                                                                                Coordinator Duties Before Application Period Opens

                                                                                                                • Finding funding for at least 1 intern ($6,500)

                                                                                                                That’s clear and conflicts with their other pages. “Perhaps the policy changed” indeed. I put more weight on that page, though, than their more advertise-y ones.

                                                                                                                mea culpa!

                                                                                                  2. 1

                                                                                                    I understood LLVM was funding the scholarship but could easily have misunderstood. In any case it’s beside the point: my point goes through exactly the same if we’re talking about the person a hypothetical open-application scholarship would have selected or a person who was displaced as such.

                                                                                                    Moreover, no one even signed up for LLVM’s Outreachy! So this is hypothetical “displacement.”

                                                                                                    Isn’t it just the opposite? If choosing to offer an Outreachy scholarship rather than some other scholarship meant that instead of getting a likely-less-privileged individual they got, not a more-privileged individual but no-one, that’s an even bigger loss.

                                                                                                    1. 1

                                                                                                      If choosing to offer an Outreachy scholarship rather than some other scholarship […]

                                                                                                      They also offer a GSoC scholarship, and there’s nothing to imply Outreachy replaced an alternative rather than being an addition.

                                                                                                      1. 0

                                                                                                        Scholarships don’t grow on trees; surely the fairest comparison to make is offering a scholarship versus offering a slightly different scholarship. (Would you apply the same reasoning if someone wanted to offer a scholarship that was only for white people, say?)

                                                                                                        1. 3

                                                                                                          I can play this game too, where “displaced” is entirely hypothetical:

                                                                                                          • LLVM has displaced compiler developers from gcc!
                                                                                                          • My drinking tea tonight displaced a purchase of beer from the bar down the road!
                                                                                                          • My mother and father each displaced every other person on the planet born before 1980!

                                                                                                          THE INJUSTICE

                                                                                                          1. 1

                                                                                                            Um, yes, it’s 100% fair to compare gcc to llvm, tea to beer, or your mother and father to other people?

                                                                                        2. 8

                                                                                          It just means you don’t have those problems in addition to also being discriminated for being a woman, for being black, for being anything else.

                                                                                          That’s incorrect in any environment where whites or men are the minority. Human nature dictates that all groups favor those like them and penalize those unlike them. Examining the politics of non-white nations in World History or current affairs confirm those groups are just as racist in the social systems they create. Examining the actions of black administrators or elected officials show they mostly bring in people like them regardless of what the mix is in their area. The kind of political beliefs behind these Codes of Conduct and privilege assume this doesn’t happen on a large scale by non-whites to whites. The wealth of evidence disagrees with that so strongly that believing in it anyway and suppressing alternative views is comparable to a religious faith. One that damages specific groups while propping up others.

                                                                                          Another point folks in favor of those beliefs and CoC’s never bring up is how many minority members disagree with them. The surveys they usually take are almost never worded to assess how many people believe it’s something all groups do to each other. That’s because they’re biased enough to try to just reinforce their own beliefs. In my surveys, I always present both sides asking which they think it is. I rarely meet black or Latino people, majority of minority members in my area, that think structural oppression is only a white thing. It’s so rare out here. Most think all groups do it but that whites are doing it the most. That’s reasonable. Yet, under CoC’s and associated beliefs, their views would be censored as well since they’d be construed as racist (in their definition) or contributing to reinforcement of it. Likewise, any “language” or “terms” that are racist, sexist… scratch that, which their political beliefs without supporting evidence label as inherently racist, sexist, etc. That too.

                                                                                          So, I object to these CoC’s that act like a good chunk of minority members’ opinions don’t matter, that ignore the fact that minorities do structural racism/sexism all the time (by default like people in general?), ignore the fact that whites/men they’re addressing might have been the oppressed minority in previous environment (or current), and then build social structures and enforcement mechanisms on top of those damaging, faith-based beliefs. I also say this as a white guy who spent years in black-run schools living a long time in many areas of black-run city working in black-run departments and companies. If I write about my experiences or tell it like a 3rd party, the black people always think the person in the story is black saying the feelings and obstacles are what they endure. When I say they’re white, then type of people I’m countering say, poof!, none of it counts as evidence of racism. That shows it’s politically-motivated maneuvering, not consistent logic.

                                                                                          These should be fought in favor of CoC’s that don’t require everyone in America or the World to believe and speak as if one, smaller, vocal group is unconditionally right in all political claims about these matters.

                                                                                          1. 14

                                                                                            That’s incorrect in any environment where whites or men are the minority. Human nature dictates that all groups favor those like them and penalize those unlike them. Examining the politics of non-white nations in World History or current affairs confirm those groups are just as racist in the social systems they create.

                                                                                            I’m sorry, what are you talking about? I’m from Peru where ‘whites’ are a minority. They are most certainly not discriminated against, quite the contrary. Whiteness is equated to privilege to the extent we have a saying here: ‘El dinero blanquea’, which roughly translates to ‘Money bleaches’.

                                                                                            The discrimination comes from factual power, not a head count. Power which was built upon centuries of enslavement and exploitation. Exploitation most members of the white elite minimize and/or are oblivious to.

                                                                                            It is the same in other places of South America. Certainly in Brazil, where the author is from.

                                                                                            1. 6

                                                                                              I’m from Peru where ‘whites’ are a minority. They are most certainly not discriminated against, quite the contrary. Whiteness is equated to privilege to the extent we have a saying here: ‘El dinero blanquea’, which roughly translates to ‘Money bleaches’.

                                                                                              I appreciate you sharing your example where one of the minorities has power. That supports my view that it’s highly conditional. Power is one thing that ties into discrimination. Group identity is another. You don’t need centuries of enslavement or exploitation to get one group working for themselves more or against another. It can be a factor, though. Often is. I also noticed you’re mentioning countries where white armies invaded them and their upper classes, not whites in general, did coercive negotiations for trade that benefits them. In this case, it’s real but tied to who did what. You can bet a group invaded by non-whites will also develop some reaction to that group.

                                                                                              Whereas around Memphis TN, being white in specific areas won’t get them respect or power due to the slavery that happened in the South. They’ll just get a warning to leave, beat down, robbed, and/or killed. No power. Like with those that invaded Latin America, the power was with a subset of them in high places or any that could get them to act on their behalf. As a civil rights proponent in America, I assure those powerful, white people would try to squash or minimize white people like me when our interests conflict. They hate outsiders even more but I would be treated more like them than your scenario would lead you to expect. I’m still in the outgroup. Just not as far out as Latin America. Same with local blacks or latinos that control specific areas, organizations, businesses, and so on. Being white conveys me large benefits in some contexts, about none in others, kind of negative in others, and violence/death in others.

                                                                                              It varies by context is my overall point. It’s not “If white, always this. If non-white, always that.” It’s really complicated. I’m sure I have plenty more to learn about the dynamics of the many groups. Thing is, countering it my way is much simpler than trying to trace it all: being civil, going out of your way to bring in others, accepting each other despite differences, and randomizing/blinding where possible selections/promotions. Increased fairness without further discrimination or hate. It’s simple, but not easy.

                                                                                              Edit to all: Other replies will be delayed since I have to work a late shift tonight. Heading out now. Hope yall have a good day and appreciate all the civil replies so far. :)

                                                                                              1. 4

                                                                                                Thank you for the thoughtful response. I get a better sense of what you were getting at. I don’t think I’m qualified to say much more on the matter, I don’t think I have a proper grasp of the dynamics of structural exploitation. But I’d like to add a couple of not fully developed ideas.

                                                                                                – Whiteness is sometimes used as a proxy for privilege.

                                                                                                – Whiteness is context dependent. My cousin from the US grew up on Pensilvania. Here he is a ‘gringo’, where he grew up he was considered far from white, being called racial slurs when growing up.

                                                                                                – It may be a better idea to talk more in other terms w/o proxies. Class politics are more relevant today than race IMHO.

                                                                                                – Even in Perú there are some contexts where you can be subject to specific instances of discrimination, but they pale in comparison to the structural discrimination that happens in the day to day basis. Which is why (in the context of Latin America at least) I view focusing on ‘reverse racism’ as a mechanism to distract from the larger and more important problem of structural discrimination.

                                                                                                also noticed you’re mentioning countries where white armies invaded them and their upper classes, not whites in general, did coercive negotiations for trade that benefits them.

                                                                                                I understand and empathize and partially agree with what you are getting at. Certainly you can’t be held personally accountable for everything action your government does. But at the same time they have to some extent the support of the general public. At best, you are turning a blind eye to the pain and suffering that supports your economy. But then again, it is our (Latin American) governments which are complicit and also responsible for said exploitation.

                                                                                                I’m the words of a mining worker, when talking to a college student:

                                                                                                – You speak of the gringos you’ve seen in Morococha and Cerro (Mines in Perú). But they are millions. Don’t generalize…

                                                                                                – So why do they send those how look down on us, cholos, not like people but like dogs.

                                                                                                Another thing, the exploitation of Latin America is not limited to ‘economic deals’ and is not something of the past (But there is more than a fair share to blame on our obsequent governments). In the 90’s US Companies hired henchmen to kill union leaders. The US Goverment (through US-‘AID’) provided logistic support for the mass forced sterilization of millions of women in Perú. Or even this decade, the US government, through the DEA, determines the policy and funds the forceful eradication of coca leaves further contributing to the impoverishment of Peruvian farmers. The Coca plant is legal here and is consumed by many in their day to day.

                                                                                                1. 1

                                                                                                  I thank you for your detailed response. That was a mix of interesting and pretty sad. I’m going to back up a bit first on one issue since I was using a simplification that you and @stephenr are showing I probably shouldn’t use maybe here or in general. I’ll have to think on it. The actual belief I have about the ingroup vs outgroup dynamic is that they’re just treated differently in a way where it’s often positive to first and negative to second. It doesn’t have to be. I was just going with common pattern since it fits both my experiences and minorities in the U.S. which is mostly the topic around this thread. You’ve both given examples where a white outgroup can be benefit from their status in other countries. Likewise, there’s examples where the ingroup is a rough position with expectations for man or women coming to my mind easiest. One of the worst examples I’ve seen is the tribe that covers people in bullet ants to prove they’re men. I’d rather be the outgroup they look down on forever. ;)

                                                                                                  On to your comments on exploitation. Far as unions, sterilization, and so on, that’s a side effect of the elites controlling America. They use the media to keep folks under control fighting enemies that aren’t the main enemy. You won’t see the stuff you described on American media much. Instead, it’s stuff that shocks or lets people point fingers temporarily for quick reactions. Next wave of shock happens making them forget what came before that. Americans can’t keep track of history. They can only focus collectively a moment at a time with what’s carefully put in front of them. The parts of the government doing things like you describe are mostly autonomous working for rich and powerful. Those that get voted in do a mix of things they said they’d do and things that appear to benefit their voters with lots of publicity for both. The choices are few with the non-participation and apathy so high that government doesn’t worry about rebellion. It’s kind of a constant rehash of the same games and corruption with businesses getting laws passed benefiting them more and more every year mostly under Americans’ noses since media barely reports on it.

                                                                                                  So, that’s how that works if you were wondering. When I was young, I never thought handfuls of companies and some government organizations could really control most of several hundred million people with the presence of the Internet, activists getting word out, and so on. Yet, they actually can. They’re also intelligent, focused, well-staffed, and relentless in their pursuits vs masses that are hit and miss on these things with more scattered beliefs, goals, and participation. Just like in this, those fighting over the CoC’s and such aren’t investing effort in joining together against the elites like folks did in MLK days which truly scared them enough to plot murders. If they beat the corruption, they could work law by law, reg by reg, case by case to get a lot done starting with something as simple as due process for workers (I’m union). It takes unity and focus on where the foundational problems are, though, to achieve something like that. Not to knock efforts to improve things elsewhere but we really should be almost all in on dealing with people paying bribes for damaging laws to be passed that give corrupt jurisdictions and companies impunity in their evils. It seems like so much starts right there.

                                                                                                  Anyway, there’s a lot of people pulling for the folks you describe. They just feel powerless to do anything about it. Also, those that care are so few that giving up products that come from there will change nothing. So, everyone from the consumers to the traders ignore their fleeting thoughts since they need some cheap copper.

                                                                                            2. 13

                                                                                              I’m not sure how anything you’ve written is relevant to LLVM’s code of conduct. It says; be welcoming of everyone, be considerate, be respectful, don’t make violent threats. All very basic, common sense stuff that the vast majority of people don’t need to a checklist to accomplish. I’m not sure how you went from what is actually written there, to this:

                                                                                              The kind of political beliefs behind these Codes of Conduct and privilege assume this doesn’t happen on a large scale by non-whites to whites.

                                                                                              Which part of LLVM’s CoC do you think is saying this? Do you think the part about being welcoming of everyone regardless of race is non-white people discriminating against white people?

                                                                                              1. 8

                                                                                                “Violent threats or language directed against another person. Discriminatory jokes and language. especially those using racist or sexist terms Advocating for, or encouraging, any of the above behavior.” (my emphasis added)

                                                                                                It’s those words that are used to block people based on political beliefs. The kinds of people that push CoC’s often have specific views about what is considered racist, sexist, etc that there’s not a wide consensus on. Any words or behavior will be interpreted in the light of their views. This is double true when they get into the moderation positions, which they often aim for. I don’t have to speculate as I’ve been banned from forums for quoting under my own name minority member’s opinions on minority issues. They were racist, sexist, etc. by their definitions. These policies interpreted however they want are the leverage they use to reinforce their own groups or eject other groups. Advocating for is the last term where anyone even debating whether something was racist or sexist might be construed as supporting the racist or sexist person. That’s happened plenty, too.

                                                                                                So, it’s the intent behind the terms along with whose enforcing them, what their beliefs are, and if they’re willing to exclude people with different beliefs on contentious topics. They usually are. So, I oppose those in favor of CoC’s without enforcement of political ideology that focus on people just staying civil, friendly, etc. Those parts of the CoC’s I have no problem with.

                                                                                                EDIT to add what I’m fine with since I’d rather not be overly critical of something that’s mostly good:

                                                                                                “be friendly and patient, be welcoming, be considerate, be respectful, be careful in the words that you choose and be kind to others, and when we disagree, try to understand why.”

                                                                                                Most of the weaseling is built into that “be careful in the words you chose” part. Minus the weaseling, even quite a few points in that section are good. Also note that we don’t have to speculate given Lobsters already has enforcement that’s similar to what I’m advocating for. Our moderators may agree or disagree with people’s political views but haven’t ejected anyone for stating their views with data in a civil way. Our community is still a thriving, functioning community despite any political scuffles.

                                                                                              2. 11

                                                                                                That’s incorrect in any environment where whites or men are the minority.

                                                                                                I guess you’ve never been to Thailand. Whites are a ridiculous minority, but they’re held in such high regard by a large percentage of the population.

                                                                                                Edit: and to clarify, this isn’t the same situation as @PuercoPop’s:

                                                                                                Thailand was never colonised, has never been under ‘white’ or ‘western’ rule and was not a ‘source’ for slavery by whites, Heck, whites (without getting Thai citizenship, which, holy shit is that a long process) can’t own land, can’t own more than 49% of a company, etc.

                                                                                                Try to find some Thai soap operas on YouTube - notice how all the actors are very pale skinned: they’re all half-Thai, half-white. If they want to show a ‘poor brown girl’ (believe me, their stereotype, not mine) they literally take a Thai/White actress, and use makeup/body paint/whatever to show their version of what anyone else would think of as a ‘natural’ brown skin.

                                                                                                I’ve been stopped at police licence checkpoints, and the cop has been so excited just to say hello to a white guy he doesn’t even care if I have a licence.

                                                                                                1. 4

                                                                                                  Of course structural oppression isn’t a white only thing. Anyone can discriminate against anyone. And sure, in localized areas some groups can oppress others in different ways than the average. That doesn’t mean CoCs shouldn’t try to prevent racist / sexist conduct.

                                                                                                  What things do you see in CoCs that minority members disagree with, that unfairly construes their beliefs as racist? Or disregards their opinions? Or ignores that whites/men may have been the oppressed minority in their environment?

                                                                                                  1. 4

                                                                                                    That doesn’t mean CoCs shouldn’t try to prevent racist / sexist conduct.

                                                                                                    I didn’t say that. I said it’s usually interpreted in a way where racist and sexist conduct has definitions that usually mean whites/males can’t experience the negatives, are often responsible for them (supported point in general case), and inherently have the positives. Evidence strongly counters two of those showing it has to be judged case by case, place by place, etc. For instance, the forums dominated by the types of people with that ideology make them the majority with the structural power to include, exclude, oppress, and so on. By their own definitions this is true. Yet, any person in a different group dissenting in such a place will be told they’re the “majority” with “privilege” who wouldn’t understand the… blah blah blah. Actually, at least in that context, they’re a minority getting treated worse than its majority at risk of damaging affects of discriminatory treatment. This plays out in other contexts like school, work, etc. where non-whites or non-males in the majority positions reinforce themselves at others expense. A general pattern.

                                                                                                    Far as minority members disagree with, who are the minority members? That’s exactly what I mean. It depends on who you’re talking about in what context. Someone who is a minority member in one environment might be part of the privileged majority in another. The very definitions of who constitutes a minority (absolute vs conditional), what defines racism, who has privilege… these are in dispute across the nation. Many non-white and non-males dispute some of same points, too. So, starting from a specific set of views on it being true with enforcement working from there is already discriminating against all who disagree. They’ve not proven these views with evidence either.

                                                                                                    Note: You can try to cheat with legal terms that one side or a group of them got in but treating the law as truth or moral is dangerous. Slavery and women not having rights were legal. So, my definitions are about reasonable categories people are in with their numbers or influence compared to groups of other categories.

                                                                                                    The evidence collected on a global scale indicates that all groups in power reward their own and oppress others. So, if by evidence, this stuff will be conditional with every group monitoring themselves for bias boosting their outgroups when they don’t get a fair shake: not just whites or males being monitored with everyone boosting non-whites or non-males in all scenarios. In this country or in tech scene, the results would mostly be boosting non-whites or non-males to correct existing imbalances just on the numbers alone. No argument there. Yet, other things wouldn’t be taboo or inconsistent with the rules: a mostly black or women organization in mixed area with people in other categories having skills would be said to give more privilege to blacks/women, possibly structurally racist/sexist in hiring if ratios of workers vs supply were really skewed, encouraged to diversify, and activist action taken if they didn’t. Just like such people would do with white or male majority structurally reinforcing their own groups.

                                                                                                    We don’t see this. Most of the types that push and want to enforce CoC’s frame it as one thing by definition with whites or males on high-privileged/victim-creating side in all situations. That’s dishonest. I’ll take “this happens more often than that” but not “this never happens or we should act like it doesn’t exist.” With that, they can’t eject people for disagreeing with them on what counts as discriminatory language or behavior if it’s something there’s no consensus on by people who otherwise are against a lot of clearly-discriminating behavior. Further, they might be more likely to go with diverse inclusion plus blind evaluation/selection to correct imbalances instead of ignore whites/males much as possible to only focus on everyone else. One is inherently more fair achieving a similar goal.

                                                                                                    1. 2

                                                                                                      But don’t you think that being the privileged majority in the society you live in will have more to do with shaping your experience and fortune in the world than being the privileged majority in an online message board or OSS project?

                                                                                                      1. 3

                                                                                                        In the spaces I live with, my lack of privilege as a white minority in many contexts has cost me likely mental health, plenty humiliation, confusion, physical beatings, missed dates, missed jobs, missed promotions, and so on. Coworkers locally were just telling me recently about black-run classes singling them out for opposing beliefs. Things they say get an entire room screaming at them to intimidate them into silence on top of whatever penalties teacher might give. More extreme versions of this ideology are going campus to campus all over the place taking on life of their own where students are doing things like holding up signs protesting inferred problems in words or ideas of instructors that are there to help them during class.

                                                                                                        Again, I”m white male who doesn’t or can’t have such problems in a structural way according to specific groups in the United States despite the evidence of such things happening with non-white or non-male majorities. The forum example was just easier for people to see where you can tell the white male is not in control, is subject to the whims of others, and can be damaged for that. People causing outgroups problems is totally predictable in my model. That’s not the interesting thing. The interesting thing about the forum example is that the people in control who are the majority continue to describe their limited, powerless target in the same terms like powerful and majority. It doesn’t usually change as the circumstances change. It’s usually politics or religion when people’s beliefs or dictated rules don’t change when data flips by 100%.

                                                                                                        So, it’s not what they say it is or consistent. That’s enough reason to resist it. That following it would damage more innocent whites or males making them suffer as so many of us did is even more reason. You could say what motivates me to write these posts isn’t much different as what motivates those on the other side with personal experiences in racism or sexism to write their posts. It’s not “reverse (ism)” so much as all the same evil to me. Once we see and experience the evils, we have to stop them from continuing in any form they’ll take. Another thing I noticed is we seem to do it for others’ sake more than ourselves as we can’t undo what we experienced. We’ll always be a bit fucked up by it. We can maybe stop someone else from having to experience that, though. I want someone else to be everyone instead of “everyone but whites and males.”

                                                                                                        As usual, that’s on top of all the non-whites and non-males I care about and try to help. They just get a lot more attention and support than this other cause. Hence it being a focus area you’ll see me on. Plus, having been affected so strongly, that’s a motivational bias of mine on top of it.

                                                                                                        1. 4

                                                                                                          @nickpsecurity, that sucks. You’ve been a victim of structural discrimination. Worse, because it’s not a politically sexy or easily visible form, people continually reject your experience. That. Sucks.

                                                                                                          In the past, if I’d heard your narrative, I’d have dismissed you by thinking something like “this white dude forgets he always has the option to leave, unlike …” But that’s unfair.

                                                                                                          You’ve been a member of these communities, for years. You’ve been a decent person. You have family, friends, colleagues, social capital, and memories in these communities. To tell you “get up, leave, move on” is to ignore the simple reality that we’re social animals and structural discrimination harms everyone.

                                                                                                          Thank you for your repeated posts on this point. At the very least, you got through my thick head. Hopefully, in the future, I can be a better person for it.

                                                                                                          1. 2

                                                                                                            Damn. That means a lot to me you saying that. I sent a private message not long ago about your comments being interesting as usual on these discussions. More than usual with one comment about you getting beat up for talking white to presumably get ahead whereas I was learning early to talk or act black to attempt inclusion in my environment. It’s because some of what you wrote seems like you might have started in similar circumstances as me going in an opposite direction to find yourself with opposite views. Maybe a stretch to say two sides of same coin but that metaphor popped into my head at least. Then, we end up here in this moment on this forum. A trip, eh?

                                                                                                            It’s why I fight for flexibility on these topics in these discussions in wherever places I can. It’s painful and costly but the moments I learn from or reach people are worth it to me. I think those moments are critical. Probably gotta get to sleep now as I intended to. I just had to respond to that comment. :)

                                                                                                            Edit: Oh yeah, sleepy enough I forgot to say Good Night.

                                                                                              3. 16

                                                                                                demonization of political groups (and to some extent, white men)

                                                                                                I’m a white man in tech and I can count the number of times I’ve been demonized on zero fingers.

                                                                                                demonization of political groups

                                                                                                The dominant political party in this country has in black and white in its party platform a desire to make same-sex marriage illegal (while simultaneously claiming “government overreach” is a bad thing). If hearing that we shouldn’t punish gay people just for being gay makes you uncomfortable, well…it’s supposed to.

                                                                                                (That same party has in its platform a denial of anthropogenic climate change, an existential threat to our civilization; the denial of which has zero scientific backing….but no, we can’t tell them that they’re wrong.)

                                                                                                More importantly, the stuff I’m talking about above is also banned. You can’t go to a conference and talk about how “Republicans are stupid”. You’d be asked to leave or at least tone it down.

                                                                                                The problem is that a lot of people hear “don’t be an asshole” and they think “man when I tell transgender folks they’re stupid and make jokes about gay people I get called an asshole (totally unjustifiably!) and I might get in trouble. Ugh, SJW’s!”

                                                                                                Remember when no one on the internet cared what you looked like, believed, or who you loved? I want to go back to that :/

                                                                                                I’ve been on the Internet since around 1992. That’s only three years after the very first consumer ISP served its first customer.

                                                                                                Was there a large contingent of people who really did believe that? Absolutely, I mean, I was one of them. Were there plenty of racists, sexists, homophobes, and bigots of all stripes? Absolutely. Go look at old Usenet archives from the 80’s and 90’s. Racism, sexism, homophobia abound. There was a long diatribe against same-sex marriage on a Perl newsgroup for some damn reason around 1996; there were plenty of people who chimed in and agreed. Various big names in the early hacker community were famously bigoted (often hiding behind “libertarianism” while simultaneously claiming women and black folks are just inherently inferior and it’s “just science”).

                                                                                                The “good old days” are very often viewed through rose-colored glasses. People were people back then too, for all the good and the bad.

                                                                                                1. 16

                                                                                                  Remember when no one on the internet cared what you looked like, believed, or who you loved? I want to go back to that :/

                                                                                                  This was never true. People on the internet have always cared about who you are in ways that factor these things in. The fact that the (largely white) nerd culture contingent who had a lot of influence on the early internet has decided to tell this utopian story does not make it any more true than stories your grandpa tells about respectful children and walking both ways uphill in the snow.

                                                                                                  1. 23

                                                                                                    It’s less that “No one cared what you looked like” and more “Everyone assumed you were a white dude with roughly conformal beliefs, behaviors, and similar.”

                                                                                                    1. 3

                                                                                                      There’s no contradiction. Both those things were true.

                                                                                                  2. 12

                                                                                                    Remember when no one on the internet cared what you looked like, believed, or who you loved?

                                                                                                    And look where it got us. Toxic subcultures, huge gender inequality in the workplace, software products that simply don’t work for many groups people… The field was biased towards white male hackers from the very beginning, and “not caring” only increased this bias. No, I don’t want to go back to that, I want to fix it.

                                                                                                    Updated:

                                                                                                    Also, “no one one the Internet cared what you looked like” simply because they technically couldn’t: nicknames and plain text don’t divulge much. As soon as we got real names and YouTube it became obvious that the majority of people care very much about how you look like. So a young girl making a guitar cover or an Ubuntu installation walk-through mostly gets “you’re hot” and “nice boobs” comments.

                                                                                                    1. 16

                                                                                                      People with privilege have been getting more and more outraged that the world is discriminating against them. They see it as unfair. Yes, it’s discrimination and that sucks. But it’s infuriating when they paint it as unfair, because that implies they’re somehow being disproportionately discriminated against, that the discrimination is unfairly balanced against them. And of course that’s nonsense. These privileged people, intentionally or not, feel they’re entitled to live free from any and all discrimination at the expense of those less privileged.

                                                                                                      Remove yourself from the politics and think about a simple model instead of race, sex, gender, or orientation. Just group A and group B.

                                                                                                      • members of group A receive 120 points a day
                                                                                                      • members of group B receive 80 points a day

                                                                                                      Members of group A develop a belief system that they are entitled to their 120 points. When some members of group B try to increase their points to 85, and that lowers the group A points to 119, the members of group A become angry. They say the members of group B are being unfair.

                                                                                                      Group A believes that group B should not take any action that decreases their daily points. Group A compares their loss of 1 point to group B’s initial 40 point deficit, drawing a false equivalency. Some subset of A, group A’ deliberately take points from group B members around them to restore their original 120 points. Group A’ claims this is fair.

                                                                                                      Group A’ bands together to institutionalize the 40 point difference. Some extreme members of group A’ even try to widen the 40 point difference. Group A’ comes to believe at an institutional level that the 40 point deficit either doesn’t exist, or is somehow natural and fair. Group A’ believes they hold the moral superiority by defending their 120 points.

                                                                                                      Members of group B continue to try to elevate themselves, but A’ demands that all work done by group B must benefit group A’ equally. A’ considers this fair. Groups A and B focus on elevating group B rather than bickering with group A’ about whether 1 equals 40. Some members of both groups A and B institutionalize polite exclusion of group A’ just to simplify the whole thing, because they’re tired of bickering.

                                                                                                      A vocal minority demonizes group A’ for their actions. Some members of group A find this demonization troubling. A larger and less vocal group of A and B think group A’ is a bunch of fucking douchebags, and start to actively exclude A’ rather than deal with their asinine bullshit. A surprising amount of group A wonders if this exclusion is fair or reasonable. Group B, and an increasing amount of group A, respond “are you fucking joking my ass what the actual fuck?”


                                                                                                      If you’re a member of group A, please try to empathize with group B. Next time you feel discriminated against for your group A membership, take a step back and reflect on how you’re feeling in that moment. Try to imagine what it’s like to feel that way every single day of your life, at work, on the street, or in your own home through the media.

                                                                                                      1. 2

                                                                                                        But it’s infuriating when they paint it as unfair, because that implies they’re somehow being disproportionately discriminated against

                                                                                                        I think there is more to this implication than you’re letting on, because it makes assumptions about what “fairness” actually means from the person wielding the term. You’ve assumed one definition, but perhaps someone else has another in mind. As a nominal example, consider this implication in different ethical frameworks (say deontological or Kantian ethics versus utilitarian). Is it true in all of them? Alternatively, do you dismiss ethical frameworks in which it isn’t true as nonsense or intractable? Either way, those are important assumptions to state, because your entire comment appears to rest on them.

                                                                                                        (I do wholeheartedly agree with your final paragraph, but try my best to perhaps apply it as much as possible, with a healthy dose of perspective taking on all sides. I don’t always succeed!)

                                                                                                      2. 4

                                                                                                        I’m glad to see this trend of standing up against poltiical [sic] exclusion in Open Source.

                                                                                                        Me too, I just wish more people would up and leave, instead of stick around and yell about “reverse discrimination” and such. I’m definitely coming at it from a selfish angle (and concern for my friends,) I’m just really tired of people who “disagree” with us existing, at best, and actively harass us at worst. The only way I can participate in open source is anonymously, which means it’s mostly uncredited work. It’s just not worth the toll it takes on my mental health. Of course, whenever possible, I contribute to projects/communities who show that they are aware of these issues, and are actively doing something about it.

                                                                                                        Looking forward to the Incorrect, Off-topic, and Troll downvotes.

                                                                                                        1. 4

                                                                                                          I think it’s a loss when someone who can write code leaves a OSS project. I also think that discrimination, which you refer to as “reverse discrimination” in certain contexts, is bad, end of story. I don’t want anyone to be discriminated against. “Contribute good code” is all I ask off people looking to work with me. Politics are boringly unproductive towards that goal.

                                                                                                          1. 4

                                                                                                            I think it’s a loss when someone who can write code leaves a OSS project.

                                                                                                            I don’t, if they keep other people away who can also write code. I honestly can’t understand what’s wrong with participating in this, unless you believe (actual) discrimination isn’t real.

                                                                                                            1. 2

                                                                                                              I do believe actual discrimination is real but I think discriminatory internships aren’t the solution as they only lead to problems down the road. It’s great that outreachy is doing it and I believe they honestly think it’s the correct solution but I simply can’t agree on that.

                                                                                                      1. 2

                                                                                                        I always thought commands like this wouldn’t be very useful for me (I usually rely on well named directories and zsh’s AUTO_NAME_DIRS), but z has become an essential part of my workflow over the last few months, even though I mostly use it to leap to the top-level directories of the projects I work on.

                                                                                                        1. 7

                                                                                                          I wrote a Rust library for reading process information from /proc a few years back, and ended up with a list of notes on strange problems I had with the documentation and implementation (process.rs#L159-L206).

                                                                                                          1. 4

                                                                                                            Sounds like you might want to look into using a configuration management tool - ansible is a good place to start and is an easy step to make from using bash scripts to configure environments.

                                                                                                            For the specific problem of parameterizing configuration files, I use Chef/Ansible/etc and their templating functions to write a file with variables inserted. In the case of Chef, I did some work to write a custom resource that accepted a Ruby map structure containing my configuration and create a JSON config file, which avoided the possibility of generating a syntactically invalid configuration file.

                                                                                                            These days I work more on the software development side of things, and am starting to find that designing software to have the simplest configuration options possible makes my life much easier when it comes to deploying that software and managing it’s configuration.

                                                                                                            1. 1

                                                                                                              Would you mind posting a short program in the README or homepage or something so newcomers can immediately see what the syntax looks like? It’s always frustrating to see a new programming language being advertised, but no first impression of what it looks like without digging.

                                                                                                              1. 2

                                                                                                                …I cannot. I just thought you all would like the name. :)

                                                                                                                1. 1

                                                                                                                  The homepage for Lobster has some examples.

                                                                                                                1. 37

                                                                                                                  The “downsides” list is missing a bunch. I mean, I use Makefiles too, probably too much, but they do have some serious downsides, e.g.

                                                                                                                  • The commands are interpreted first by make, then by $(SHELL), giving some awful escaping at times
                                                                                                                  • If you need to do things differently on different platforms, or package things for distros, you pretty quickly have to learn autoconf or even automake, which adds greatly to the complexity (or reinvent the wheel and hope you didn’t forget some edge-case with DESTDIR installs or whatever that endless generated configure script is for)
                                                                                                                  • The only way to safely (e.g. parallelizable) do multiple outputs is by using the GNU pattern match extension, which is extremely limited (rules with multiple inputs to multiple outputs is hard to write without lots of redundancy)
                                                                                                                  • GNU make 4 has different features from macos (pre-GPL3) make 3.8 has different features from the various BSD makes
                                                                                                                  • You really have to understand how make works to avoid doing things like possibly_failing_command | sed s/i/n/g > $@ (which will create $@ and trick make into thinking the rule succeeded because sed exited with 0 even though the first command failed). And do all your devs know how to have multiple goals that each depend on a temp dir existing, without breaking -j?

                                                                                                                  and there’s probably lots more. OTOH, make been very useful to me over the years, I know its quirks, and it’s available on all kinds of systems, so it’s typically the first thing I reach for even though I’d love to have something that solves the above problems as well.

                                                                                                                  1. 14

                                                                                                                    Your additional downsides makes it sound like maybe the world needs a modern make. Not a smarter build tool, but one with less 40-year-old-Unix design sensibilities: a nicer, more robust language; a (small!) handful of missing features; and possibly a library of common functionality to limit misimplementations and cut down on the degree to which every nontrivial build is a custom piece of software itself.

                                                                                                                    1. 7

                                                                                                                      mk?

                                                                                                                      1. 3

                                                                                                                        i’ve also thought of that! for reference: https://9fans.github.io/plan9port/man/man1/mk.html

                                                                                                                      2. 10

                                                                                                                        I think the same approach as Oil vs. bash is necessary: writing something highly compatible with Make, separating the good parts and bad parts, and fixing the bad parts.

                                                                                                                        Most of the “make replacements” I’ve seen make the same mistake: they are better than Make with respect to the author’s “pet peeve”, but worse in all other dimensions. So “real” projects that use GNU Make like the Linux kernel and Debian, Android, etc. can’t migrate to them.

                                                                                                                        To really rid ourselves of Make, you have to implement the whole thing and completely subsume it. [1]

                                                                                                                        I wrote about Make’s overlap with shell here [2] and some general observations here [3], echoing the grandparent comment – in particular how badly Make’s syntax collides with shell.

                                                                                                                        I would like for an expert in GNU Make to help me tackle that problem in Oil. Probably the first thing to do would be to test if real Makefiles like the ones in the Linux kernel can be statically parsed. The answer for shell is YES – real programs can be statically parsed, even though shell does dynamic parsing. But Make does more dynamic parsing than shell.

                                                                                                                        If there is a reasonable subset of Make that can be statically parsed, then it can be converted to a nicer language. In particular, you already have the well-tested sh parser in OSH, and parsing Make’s syntax 10x easier that. It’s basically the target line, indentation, and $() substitution. And then some top level constructs like define, if, include, etc.

                                                                                                                        One way to start would be with the “parser” in pymake [4]. I hacked on this project a little. There are some good things about it and some bad, but it could be a good place to start. I solved the problem of the Python dependency by bundling the Python interpreter. Although I haven’t solved the problem of speed, there is a plan for that. The idea of writing it in a high-level language is to actually figure out what the language is!

                                                                                                                        The equivalent of “spec tests” for Make would be a great help.

                                                                                                                        [1] https://lobste.rs/s/ofu5yh/dawn_new_command_line_interface#c_d0wjtb

                                                                                                                        [2] http://www.oilshell.org/blog/2016/11/14.html

                                                                                                                        [3] http://www.oilshell.org/blog/2017/05/31.html

                                                                                                                        [4] https://github.com/mozilla/pymake

                                                                                                                        1. 6

                                                                                                                          Several more modern make style tools exists - e.g. ninja, tu and redo.

                                                                                                                          1. 2

                                                                                                                            We need a modern make, not make-style tools. It needs to be mostly compatible so that someone familiar with make can use “modern make” without learning another tool.

                                                                                                                            1. 8

                                                                                                                              I think anything compatible enough with make to not require learning the new tool would find it very hard to avoid recreating the same problems.

                                                                                                                          2. 2

                                                                                                                            The world does, but

                                                                                                                            s/standards/modern make replacements/g

                                                                                                                          3. 5

                                                                                                                            Do most of these downsides also apply to the alternatives?

                                                                                                                            The cross platform support of grunt and gulp can be quite variable. Grunt and gulp and whatnot have different features. The make world is kinda fragmented, but the “not make” world is pretty fragmented, too.

                                                                                                                            My personal experience with javascript ecosystem is nil, but during my foray into ruby I found tons of rakefiles that managed to be linux specific, or Mac specific, or whatever, but definitely not universal.

                                                                                                                            1. 5

                                                                                                                              I recommend looking at BSD make as its own tool, rather than ‘like gmake but missing this one feature I really wanted’. It does a lot of things people want without an extra layer of confusion (automake).

                                                                                                                              Typical bmake-only makefiles rarely include shell script fragments piping output around, instead they will use ${VAR:S/old/new} or match contents with ${VAR:Mmything*}. you can use ‘empty’ (string) or (file) ‘exists’.

                                                                                                                              Deduplication is good and good mk fragments exist. here’s an example done with bsd.prog.mk. this one’s from pkgsrc, which is a package manager written primarily in bmake.

                                                                                                                              1. 2

                                                                                                                                Hey! Original author here :). Thanks a bunch for this feedback. I’m pretty much a Make noob still, so getting this type of feedback from folks with more experience is awesome to have!

                                                                                                                                1. 2

                                                                                                                                  You really have to understand how make works to avoid doing things like possibly_failing_command | sed s/i/n/g > $@ (which will create $@ and trick make into thinking the rule succeeded because sed exited with 0 even though the first command failed).

                                                                                                                                  Two things you need to add to your Makefile to remedy this situation:

                                                                                                                                  1. SHELL := bash -o pipefail. Otherwise, the exit status of a shell pipeline is the exit status of the last element of the pipeline, not the exit status of the first element that failed. ksh would work here too, but the default shell for make, /bin/sh, won’t cut it – it lacks pipefail.
                                                                                                                                  2. .DELETE_ON_ERROR:. This is a GNU Make extension that causes failed targets to be deleted. I agree with @andyc that this behavior should be the default. It’s surprising that it isn’t.

                                                                                                                                  Finally, for total safety you’d want make to write to .$@.$randomness.tmp and use an atomic rename if the rule succeeded, but afaik there’s no support in make for that.

                                                                                                                                  So yes, “you really have to understand how make works [to avoid very problematic behavior]” is an accurate assessment of the state of the things.

                                                                                                                                  1. 1

                                                                                                                                    Your temp directories dependency problem makes me think a GUI to create and drag drop your rules around could be useful. It could have “branching” and “merging” steps that indicate parallelism and joining too.