1. 9

    Someone who writes ostensibly production-ready code in PHP or Perl should be treated like someone who refuses to vaccinate their children: their behavior should be considered acceptable only if they are extremely careful and they have a very good excuse.

    I think the author is a bit melodramatic, and that is the toxic part – there’s criticism, and then there’s criticism without concern for the humans receiving the criticism. I agree with the author that there’s a vast majority of programmers who could benefit from better tooling (I put myself in this camp), but how that knowledge is conveyed makes all the difference (as they mention in the article itself).

    It sounds like the author has knowledge and wants to spread it – either by mentoring or teaching directly. To be successful at that, they need to understand where a mentee/student is and jump into their worldview before moving them forward. There is a huge difference between “here is where I think you are, which means you’ve probably seen these kind of frustrations pop up, why not try X instead” and “hey you’re doing this all wrong, here’s the best way.”

    Sidney Dekker talks about how people don’t show up at work to do a bad job – everyone is usually trying their best, but is working within constraints (“my boss won’t let me use X”, “I haven’t heard about this,” “I have outdated knowledge about this,” “I don’t want to support this organization for moral reasons,” “I’m under a tight deadline and can’t afford the rewrite,” etc). People will only be receptive if you acknowledge that they are doing their best within constraints, and you are removing a constraint. “You use PHP, therefore you are bad” statements make you feel good and self-righteous, but are less effective than “do you hit these kinds of errors?” “yes!” “then you might consider this other language, it’s easier than you think.”

    As I write this I feel a bit hypocritical as I’ve spent a long time criticising {large, well known software product with a defensive, tribal culture} for not doing {well established modern software engineering practice} and releasing a buggy and infuriating product. My ranting and raving did nothing. Absolutely nothing. What was effective? Another team got merged into that one and started flooding the mailing lists with “you thought {software engineering practice} was impossible at this scale but it’s actually doable.” It worked. That’s how you effect change in organizations that might even be hostile to you: meet them where they are, treat them as doing their best within constraints, and show how to remove the constraints.

    1. 4

      I think the author is a bit melodramatic, and that is the toxic part – there’s criticism, and then there’s criticism without concern for the humans receiving the criticism.

      Absolutely. I fell into that trap recently. The organisation I was in was using PHP, and I engaged what I thought at the time as collegial bitching at that poor language. Turns out they were mostly humoring me and taking a minor bit of offense at each nag, and the taken offense piled up in time.

      It was a lesson for me obviously, but there’s something to be learned on the other side of this fence: if you’re getting offended by something your colleagues do, bring it up very early and don’t just assume the offender is aware of how they’re affecting you.

      1. 3

        I actually make this point later in the essay:

        I consider this really to be an issue of beginners graduating to higher levels of understanding (and systematic pressure making it harder for certain groups to graduate out of the beginner classification), and one way to help this is to be extremely clear in your criticisms about the nature of the problems you criticize — in other words, rather than saying “PHP users are dumb”, say “PHP is a deeply flawed language, and PHP users should be extremely careful when using these particular patterns”.

        When we are talking to individuals, I think we have the responsibility, as @stip says, to “understand where a mentee/student is and jump into their worldview before moving them forward”. However, one-on-one mentoring is not where programmers of any level learn most of their habits these days (and I’m not sure it ever was!). Instead, the most powerful shapers of industry and community norms are publications (ranging from comments and blog posts to books and standardized lesson plans) and myth (ranging from hype and stereotypes to stuff like programming epigrams and The Story of Mel). Publications shape myth through hyperbole, so if you’re writing for a very general audience, it pays to be melodramatic enough to be memorable.

        (While overwrought, I don’t think the comparison to antivaxxers is unfair. Using insecure tools in serious projects because you think it doesn’t matter bites you in the ass when the project suddenly acquires scale and problems start affecting every install, in the same way that an individual decision to avoid vaccination becomes a failure of herd immunity at scale. The fundamental mistake is the same: evaluating decisions about interactions with a group from only an individual lens.)

        Something I originally meant to address more directly in this piece is a flaw I see in articles of the type it criticises – namely, I think social pressure is extremely valuable because it performs soft enforcement of rules, and articles critical of gatekeeping in tech often ignore the social dynamics of this. The particular article I’m responding to only bumps up against the problem.

        Ultimately: when your software doesn’t matter (when it has zero or one users, or all its users are also its core developers, and when nobody ever pays for it, uses it for important tasks, or gives it sensitive data), then tool choice also doesn’t matter. This is great! But, when your software matters (when people depend on it working), making sure it’s reliable and secure matters more than your ego and personal preferences. At this point, so long as they properly modify behavior in the appropriate direction, social pressure (to the point of hostility) is justified.

        When I see people complain that they get criticized for using in a serious project & their defense is that they’re a beginner and don’t know how to use something better-suited for the job, my basic response is that when somebody is depending on a project, it shouldn’t be implemented by someone who doesn’t know how to implement it reliably. (Making sure the thing works is more important than even profit: if you can only do a half-assed job without going broke, you shouldn’t do it at all.) In the extreme case, you work on it until it is reliable (by learning new techniques and tools) and discourage people from depending on it (by marking it alpha) until it’s actually release quality.

        (And, of course, on the other side: when nobody depends on it, we should encourage beginners to expand their horizons by using all sorts of tools – particularly tools that are a poor fit – since dealing with a poorly-fitting tool when both the tool and the problem are new to you is a very productive learning experience.)

    1. 2

      I have an alias called git map that maps to

      git log --graph --branches --tags --color=always --date=short "--pretty=format:%C(red)%h%x09%Creset%C(green)%d%Creset %C(yellow)%cd%Creset ~ %s"
      

      It usually does what I need to do, but I’d be happy to hear about better GUI tools.

      1. 9

        This article is a good argument against treating a lack of gender diversity in video games as a problem to be solved. Men and women are systematically interested in different types of video game experiences, and game creators who cater to one type of experience or the other will naturally have a gender imbalance in the sorts of players who want to play that type of game.

        1. 11

          It’s a sign of bizarre times that this isn’t obvious. Boys and girls have always preferred playing with different toys since the dawn of time.

          1. 17

            There’s nothing obvious about it, and re-examining unfounded claims is not bizarre. We know that, historically, plenty of claims made were just plain wrong (consider the anabolic-catabolic “theory”).

            Boys and girls had very different /roles/ since the dawn of time for obvious reasons. If you tried, as a girl, to play with the “wrong” toys you could see quite a bit of resistance.

            1. 16

              I’m not saying this is wrong (I haven’t done any research so I don’t know) but it seems very likely that kids are pushed to play with specific toys by society. We label toys as boys or girls, we market toys as being played with by either boys or girls and we give kids toys that we associate with their gender.

              I saw a video this year where young babies were placed in a room full of a range of toys. Each time the baby was dressed in either pink or blue and given a female or male name regardless of their actual gender and a babysitter was in the room as well to help them play with the toys. Each time the babysitter would tend to help the baby play with toys stereotypical for their perceived gender. After the babysitter was asked which toys they thought the baby liked and they would say the baby seemed to prefer the toys of the perceived gender regardless of what the babys actual gender was.

              Now that’s not really a scientific study but it does seem to suggest that things are not as “obvious” as they seem. It’s a little hard to test because really you would have to raise a kid in an alternative society to see what differences it makes.

              1. 2

                There’s also evidence that toy choice is gendered along the same lines that we in our culture are familiar with among chimpanzees, suggesting that toy choice has something to do with biological mechanisms of gendering bodies that are older than the human-chimpanzee split.

                Anyway, this entire article is already presupposing that gendered differences in toys (well, video game tastes, but is a video game not just a more sophisticated toy?) exist and are important. As per the title, what men and women consider hardcore gaming are not the same.

                1. 2

                  Could as well be the kids wanted to be nice to the babysitter who helped them play. The type of play also needs to be accounted for. There are studies as well which show that very young kids tend to gravitate to certain types of play.

                  Of course there’s going to be some overlap and gray areas, but what’s the harm in acknowledging the idea that maybe play and preferences have something to do with biology?

                  1. 10

                    but what’s the harm in acknowledging the idea that maybe play and preferences have something to do with biology?

                    There is no harm in thinking maybe it might be true and maybe it might not. There is harm in things like OPs comment stating “It’s a sign of bizarre times that this isn’t obvious.” When it’s extremely complex and not obvious at all.

                    1. 7

                      There is no harm with acknowledging that they “have something to do with biology”, the difference is how much weight is put on it, and the problems are caused when that is used as an excuse for things like exclusion, whether that’s subtle coercion of “oh I wouldn’t bother with that, because it’s been shown that people like me are bad at that sort of thing”, to the deep personal exclusion of “I will never be able to do X in a good way because of my biology, so I should not try”.

                      Equally, what is the harm in acknowledging the idea that maybe play and preferences have something to do with culture?

                      1. 1

                        I don’t know where coercion or exclusion came from here.

                        And surely society has some effect, but reading something like The Blank Slate makes me think it’a not such a huge factor.

                        Next someone will probably point out Pinker is a white supremacist or something and I’m done with this already.

                        1. 3

                          I don’t know where coercion or exclusion came from here.

                          Do societal consequences not matter, just because they’re societal?

                          reading something like The Blank Slate makes me think it’a not such a huge factor.

                          The Blank Slate, last I checked, ignores a lot of hard evidence done in the social sciences in favour of bashing Pinker’s strawman of the subjects. In addition, I’m not sure how someone can place a single reasonably cited book as a justification for ignoring 70 years of hard evidence. Especially when such a book’s argument is strongly contested.

                          Next someone will probably point out Pinker is a white supremacist or something and I’m done with this already.

                          Does someone’s political views not have any bearing on their research? Surely years of study have found bias in study construction extremely easy. I take the attitude that it must be so, for politics is how we view and frame all manner of parts of the world. Whether or not someone is a racist matters deeply as to the purpose behind the arguments that they make, and the ways that they approach certain details. Likewise if I am a monarchist you would surely wish to know that when arguing about matters of state, since my arguments might be led by conscious or unconscious motivations.

                          1. 1

                            I don’t think Pinker has a political horse in the race, but I do understand he can be misunderstood to have one even if he didn’t. So as far as anyone should care, the discussion could be limited to the science.

                            I’m just not particularly interested anymore, because something like infant behavior, sex vs gender, toy preference, biology, anthropology, primatology and who knows what “always” gets conflated with coercion and exclusion.

                            It’s essentially impossible to discuss matters online, text-based, time-delayed and without real interaction. More so when it starts to feel like something someone wants to win. The easiest win is to claim the other party doesn’t care about something not immediately related yet important and he’s therefore a bad person by implication.

                            That’s why I’m done.

                            Sometimes a cigar is just a cigar and men and women choose different toys, ways to play, subjects to study and careers to follow.

                      2. 6

                        Yes as a hypothetical, and in a context where social coercion doesn’t exist your statement would be totally fine and good. Saying it with certainty, even though it runs contrary to the scientific consensus lacks epistemological responsibility. It’s fine to say I’m not sure I agree with the scientific consensus, however it’s irresponsible to say that the scientific consensus is certainly wrong without any evidence. Once you add in the fact that some people will try to use such claims as a way to pressure a demographic out of an activity, then you have the risk of real harm. I’m not saying you’re the kind of person who would do that but it’s important to be aware that people will try to use your message there to exclude others who are wholly capable.

                      3. 0

                        I mean there’s no reason to believe that there’s real sexual dimorphism in the toys children choose to play with. I’ve seen boys play with dolls and girls play with trucks. Gender is a construct, that’s the scientific consensus and those saying otherwise value tradition over evidence.

                        1. 3

                          There are also a lot of arbitrary gendered items that change over time or across cultures. For example skirts of some form have been either male or female clothing depending on the culture/location. Also pants have been male clothing but are now neutral.

                          There are no doubt very real differences between genders. The obvious one being physical strength/body shapes but I am willing to bet that a majority of the differences between genders today are formed by tradition and not biology.

                          1. 2

                            The differences in gender as you said are formed by tradition. When you talk about physical strength and body shapes however that’s sexual dimorphism, unless you are referring to the cultural mores that pressure men to bulk up and pressure women not to. Sex informally speaking is the bits between your legs, sexual dimorphism is the physiological difference that often (but not always) come along with that like testosterone or estrogen production, gender is the cultural construct we have around sex. You can have sexes without having gender, which I’m sure has existed and you can have many genders within a single sex if you’re like creating a sci-fi culture.

                            You weren’t wrong in any way I just thought it would be useful to be clear.

                    2. 4

                      The reason there’s a push to solve it is the profit motive.Given that roughly 50% of women play games if you could create an experience that tailors to both cultures you could make a lot more money than if you didn’t.

                      Though I personally also enjoy playing games with people with different backgrounds. Sometimes a different cultural outlook also can have refreshing outside of the box ideas. It looks like for example that according to this survey while women value competition and challenge, they also value looking good while doing it, and going all the way to completion. That would mean if you want to hook women, make sure to add robust customization options or ways to build or design things. I think the completion aspect is already in most games, cheevos. Notice that they don’t disvalue destruction, but they find it less interesting than a well written story.

                      1. 2

                        Indeed, it is like complaining chick flicks get chick viewers, which is absurd.

                        1. 7

                          I haven’t heard that particular complaint, but one I hear often is that it’s quite absurd to have a genre lineup that resembles something like “action,” “comedy,” “drama,” and “not for men,” as if “not for men” were its own genre (it’s obviously not literally called that, but you provided your own example above). Deciding to use a “not for men” genre immediately creates its counterpart, “for men,” which is every other genre.

                          You logically have two choices here:

                          1. Accept the dichotomy and make explicit the implicit labels: “action for men,” “comedy for men,” “drama for men,” and “not for men.” You’ll have to train your brain to see this everywhere, as the implicit labels are extremely implicit. Along with appeal to the targeted demographic comes license to exclude the other – after all, if your genre is “not for men” then you don’t care if your movie makes men uncomfortable (this is different than making it desirable for not-men). If your genre is “action for men,” you don’t care if your movie makes women feel uncomfortable. It’s not for them.
                          2. Reject the dichotomy, and distribute the “not for men” qualities into the core genres – “action for men” just becomes “action”. Along with this comes the lack of license to exclude. This has made some movie watchers/videogame players mad – even though there is still plenty of content around (and more being made every day), the consumers of the previously “for men” genres see this as dilution and loss. Some of the things they liked excluded people, and instead of trying to untangle the good from the bad (or learn to coexist with new expressions of things they liked before) they’ve decided to double down and defend everything.

                          Whichever decision you make will impact how you see the modern media landscape.

                      1. 15

                        I strongly disagree with the author’s stance, in part because I effectively implemented this in a previous team and it went poorly.

                        I was made team lead of a small subset of an infrastructure team. We had internal features we worked on (mostly efficiency and reliability improvements, sometimes major undertakings), as well as bugfixes from clients of our infrastructure. When I was made team lead, I inherited a twice-weekly “bug overview” meeting that served as a kind of standup/planning meeting for the team. I immediately declared it wasteful and unnecessary, because we could just work on the bugs “as they came in” (I even wrote a Chrome extension to watch the bug tracker for new issues).

                        What happened? Plenty of client bugs went neglected for weeks, with increasing anger from said clients. Some engineers worked all the time on feature work (ignoring clients), while some worked all the time on client work (making no progress on features and heading toward burnout). The team as a whole had no place or time to identify prioritization errors and have it be effective. After a few months I realized what had happened, reinstated the bug overview meeting and things started to recover (I’m simplifying and condensing a lot here, but reinstating the regular meeting did improve the situation greatly).

                        Psychologically, a standup provides a socially acceptable space to provide feedback on other’s priorities and receive feedback on your own. It can be really, really hard to stay focused on previously set goals, and I find some kind of regular planning meeting opens up opportunities for the team to help itself stay on track.

                        1. 2

                          A planning meeting shouldn’t be the same as stand-up, though? If you kill the meeting that puts the work in order then, yeah, I’m not surprised that things went off the rails. I imagine you could have killed the stand-up part and kept the prioritisation part, and things might have been fine.

                          Psychologically, a standup provides a socially acceptable space to provide feedback on other’s priorities and receive feedback on your own.

                          I don’t think this should be part of stand-up. I think this is part of planning, when you (should) have all the stakeholders in the room.

                        1. 1

                          I might be in the minority here, but I don’t mind whiteboard puzzles. I’m not saying they’re effective as a hiring tool (I’m also not not saying that), but I’m always surprised when people say they stress specifically about them over other interview methods. I’m genuinely curious what exactly people dislike (other than ‘it’s not representative of the job’, which I agree with). Is it the stress and time pressure? Or the reliance on past knowledge? Would it be possible to construct a good whiteboard interview for you, or is the format itself distasteful?

                          1. 4

                            I think for the majority it’s because a lot of their knowledge is stored on the internet with their working memory copy simply being how to quickly look up the documentation to get the right answer.

                            I think for the majority it’s because the internet has become an extension of their working memory and without it they flounder simply because they haven’t needed to commit to memory the details, or anything much more than were to find them when needed.

                            The best analogy I can come up with is mental arithmetic, it used to be that you could take someone to the white board and ask them to work out a long division question or complex multiplication and most would be able to do so with little to no stress. With the prevalence of calculators nobody bothers to remember how to do long division or factorisation of difficult multiplication because they know how to use a calculator that does it quicker (we are animals of path of least resistance after all.)

                            A white board interview where you’re describing abstract concepts would probably solve a lot of the worries, because that tends to be what most people remember, with the details filled in by a few searches of the documentation.

                            1. 4

                              A white board interview where you’re describing abstract concepts would probably solve a lot of the worries, because that tends to be what most people remember, with the details filled in by a few searches of the documentation.

                              This makes sense to me – I feel like if you handed someone a marker and said “explain {something from their resume} to me,” a whiteboard interview would be a lot less intimidating.

                              1. 2

                                I’d certainly expect people to be able to do a long multiplication on a whiteboard, though. It’s pretty standard stuff. If they couldn’t, I’d hope it was due to a mind blank under stress and not because they literally don’t understand how multiplying numbers works.

                                And I think that if you can’t do basic programming without the internet you’ll struggle to be productive. That’s not to say that you should just know everything, but far too many people I’ve seen can’t do any little basic bit of programming without googling the most basic things. I like that programming competitions, if nothing else, at least force you to learn to write the basic ‘glue’ code quickly without having to look up e.g. how to print something to two decimal places or how to read a float from standard input. Basic stuff you should just know. They also are an okay litmus test. I’ve never met anyone that did well in programming contests that was a bad programmer. But I’ve definitely met good programmers that didn’t do programming contests. It has a high false negative rate and a very low false positive rate, I expect.

                                1. 3

                                  I personally haven’t had to do long multiplication on paper in well over a decade and while I can describe three different methods in abstract I wouldn’t be able to do them without looking up simply because I have forgotten the details over the years of resolving to use a calculator.

                                  The same can be said for some with programming, maybe they use a framework that provides verbose abstractions but no longer remember how to do such things (e.g sessions, http, file handling) on “bare metal” without first looking it up.

                                  Having a decent memory isn’t a bad thing but as Einstein supposedly once said “Never memorize something that you can look up.”

                                  1. 5

                                    Einstein probably never said that. However he did say. (In response to not knowing the speed of sound as included in the Edison Test: New York Times (18 May 1921); )

                                    [I do not] carry such information in my mind since it is readily available in books. …The value of a college education is not the learning of many facts but the training of the mind to think.”

                                    Basically don’t labor over learning dumb facts. I also though think it’s wise if you find a free moment to understand how and why things work.

                                    1. 3

                                      That is a much better quote, it also encompasses what milesrout was saying in a separate thread.

                                      1. 2

                                        It’s also likely that Einstein never said “Never memorize something you can look up”, so it’s not really fair to call it a quote. If you had to create a pithy new phrase from his quote it might be something like “Facts are no substitution for reason and understanding.”

                                        1. 2

                                          That is the reason for why I wrote “Einstein supposedly once said”; I wasn’t trying to pass off something that may not be true as fact. However it is certainly something that a small amount of searching found to be a popular phrase attributed to Einstein and that is the reason why I quoted it.

                                          The New York Times reference you provided was much better not only in being easily traced back to the man himself but also because it better conveyed the point I was trying to make. Thank you for sharing it :)

                                          1. 2

                                            Yes, sorry for being pedantic. I just wanted to make sure I wasn’t being misunderstood there. I had assumed that you said it in good faith. Thank you for being patient.

                                    2. 2

                                      The ‘details’ are essentially that 2134 * 34 = 2134 * 30 + 2134 * 4. I really don’t think you’d have any trouble if you thought about it for a few seconds.

                                      The problem I’ve seen is that people don’t even think about something. They either know it and do it or they convince themselves they don’t know it and don’t try to work it out. That, the predilection to giving up, that is the danger sign, not that they don’t know it.

                                      The same can be said for some with programming, maybe they use a framework that provides verbose abstractions but no longer remember how to do such things (e.g sessions, http, file handling) on “bare metal” without first looking it up.

                                      I mean if you’re doing high level stuff you shouldn’t expect to know the details of writing low level code. If people are testing your algorithm knowledge at a Javascript webapp gig, then it’s just bad interviewing. But people testing your algorithm knowledge at a routing algorithm gig seems pretty fair.

                                      Having a decent memory isn’t a bad thing but as Einstein supposedly once said “Never memorize something that you can look up.”

                                      But if you asked Einstein some basic physics he wouldn’t look it up, he’d know it. Because having fully internalised the basic principles of physics is just part and parcel of understanding physics at the level he understood physics. Like, if you asked a mathematician the epsilon-delta definition of a limit, they’d be able to explain what it is, and what it meant, even if perhaps they couldn’t write it down formally left to right in one go if they hadn’t recently taught a course on analysis. Not because they’re geniuses that remember everything but because it’s just the most basic fundamental knowledge that everything else is based on.

                                      1. 5

                                        I think we are both on the same page, possibly I am bad at explaining what I am trying to say.

                                        people testing your algorithm knowledge at a routing algorithm gig seems pretty fair

                                        Agreed, the problem I think many see with white board interviews is that they are largely used to test knowledge that isn’t pertinent to the job at hand for example testing your algorithm knowledge at a job where you’re largely expected to write high level web apps where everything is wrapped in an closed source abstraction you’re going to need to learn on the job anyway.

                                        1. 1

                                          Exactly. They used to test how an individual candidate goes about problem solving, but nowadays they’re just a litmus test to see if you’ve memorized all the graph algorithms you might be asked to regurgitate.

                                        2. 3

                                          But if you asked Einstein some basic physics he wouldn’t look it up, he’d know it.

                                          All of my physics professors and PIs looked basic stuff up all the time. There’s a reason we were allowed to take two pages of equations into exams.

                                1. 13

                                  I’ve only recently calculated that the majority of emissions I generate comes from long-haul air travel. Most of this is personal travel, but occasionally business travel as well. I plan to strongly prioritize conferences in Europe in the future (allowing for rail), and will opt to see talks from remote conferences online instead.

                                  1. 5

                                    It is, for example, perfectly possible for pro-life and pro-choice advocates to collaborate on a software project. They just have to leave their opinions about abortion at the door, and this should not preclude them from freely sharing those opinions on social media without fear of disciplinary reprisal

                                    I wonder if this is true. Richard Stallman said, regarding an abortion joke in glibc:

                                    GNU is not a purely technical project, so the fact that this is not strictly and grimly technical is not a reason to remove this.

                                    I asked this:

                                    must one have the same political views as Stallman to be part of the GNU project? What if we simply believe in the four software freedoms, is that not enough? Should members who are against abortion be excluded?

                                    and he replied to every single post in the thread except mine, so I don’t know what the answer is.

                                    1. 5

                                      I wonder if this is true

                                      It happens all the time in the general workplace. The South has one of the most heated histories you’ll find in things like race and gender issues. We mostly get along anywhere from tolerance to being friends. My government class was mostly split 50/50 on abortion debate with most staying friends after within days. Reading from people pushing CoC’s for political reasons, you’d think that was impossible. Yet, we do it every day in any places where peoples’ differences are tolerated. So, they’re wrong about that part. That simple.

                                      The author’s concerns about discrimination are my concerns given I’ve watched almost every group in a dominant position down here reward members of their own group and discriminate against others. Non-whites or non-males were no exception. Their acts of racism and sexism just don’t make the news or waves on social media. Those that didn’t do this were rare, truly-inclusive folks that went out of their way to care about and understand people that were different. I love those people even if their beliefs or political moves piss me off at times. Many get along with or love me, too. I’ve learned a lot from them.

                                      The tech industry, esp in Silicon Valley, is just strange to me vs what I normally encounter in general workplace. They seem to think only young, white males are capable of anything while preaching meritocracy and saying/doing anything without consequences. Then, the other haters, err activists, opposing them seem to think all white males are overprivileged people to minimize while giving opportunities and social dominance to every other group. Well, many of them even bring in just select groups (esp white women) ignoring other groups. Plus, carefully controlling speech and action in all forums with assumption every human is too weak to co-exist with those that disagree. With these factions, it’s as if there’s nothing else possible aside from these extremes despite massive number of counterexamples mostly outside of tech but also some in it. That includes the millions of minority members that seem to have a different opinion about minority or diversity issues.

                                      Note: This is a tech site. I’m talking general trends. If you’re an exception, you know who you are. :)

                                      So, I keep talking about it to try to shake people out of this binary, extremist thinking on opposite ends. For now, I don’t know what else to do given the beliefs are deeply social and emotional. That traditional and social media keeps putting them in bubbles seeing only people they’ll like the most or piss them off the most isn’t helping. One of best things I ever learned to do is keep people who oppose or aggravate me on social media. I watch their reactions to every hot topic, reading what evidence they post. Very enlightening. Plus, keep bringing the counterpoints in nice-as-I-can way to folks on the other side targeted to their perspective and terms rather than mine. Think on theirs carefully. I don’t what else to do about the herd or extremist mentalities many are about.

                                      Btw rain1, I don’t know if you were back in time for the last thread on this but it was more interesting than most political ones. I experienced a jaw-dropping surprise or two there.

                                      1. 4

                                        One of best things I ever learned to do is keep people who oppose or aggravate me on social media.

                                        Be careful with this. Like cultists, an entire generation of pundits have developed that take advantage of psychological weaknesses we all possess. They use the “you have to listen to all sides!” argument to claim a right to your cognition, when doing so opens yourself to manipulation via framing or even simple repetition (and if these have emotional impact, like being aggravating, they’re more effective). Listening to many sides is in general very beneficial, so you have to constantly identify if the person is arguing in bad faith or not. This can be hard to do, and I won’t offer any strategies here because they tend to be extremely personal and subjective.

                                        Critical thinking doesn’t make you immune to this. At the risk of using an engineering analogy, a logically secure input parser is still susceptible to denial of service. So keep your eyes open and try to get input from a variety of sources, but make sure you understand their biases and whether they’re arguing in bad faith or not.

                                        1. 3

                                          “They use the “you have to listen to all sides!” argument to claim a right to your cognition, when doing so opens yourself to manipulation via framing or even simple repetition (and if these have emotional impact, like being aggravating, they’re more effective). “

                                          This is a weak argument. You can always be tricked by any side, especially your own since you trust them more. The result is you still have to listen to different people. Further, you should look at evidence they present more than what you speculate about their biases, bad faith, etc. If evidence looks wrong or especially badly-intentioned, then you might start ignoring that person or group a bit more. You might still glance at their info in case something useful comes out. Totally ignore them when noise ratio is too high. That way, we get to your last sentence without censoring those that disagree with us based on bad assumptions about their motives or whatever. That’s often just ad hominem for political gain disguised as something reasonable.

                                          Looking at the political stuff, the people on the left are often citing sources that are full of shit. The people on the right do that as well. I know each set of mainstream sources are intentionally biased trying to tell their audience what they want to hear to keep their advertising revenue up. For others, it might be book sales, numbers on social media, status/image, and so on. Then, there’s sources that are pretty honest with just human biases. They can get more dishonest if they get emotionally charged, though.

                                          The irony of your warning is that you probably use some of those sources that are definitely operating in bad faith to support your political beliefs. I do, too, but that fits the model I just described of assuming everyone has error or agendas sifting the wheat from the chaff. For instance, I’ve read a Huffington Post article followed by a Ben Shapiro video on a topic since I knew both would have numbers useful to me. Then, I had to check every claim since both are full of shit. The good news is the bullshit itself is often repetitive since they aim for talking points that will spread virally. As in, the claims you have to fact check go down over time until getting good info out of semi-reliable sources is fairly efficient or not as bad at least.

                                          1. 2

                                            For helping to filter out those acting in bad faith I found it helpful to sometimes ask yourself “what if they are right” and then research on the topic. Pulling up surveys, studies, essays, etc.

                                            That does make you able to recognize these arguments more easily while also increasing your literacy and giving you ammunition.

                                            Generally I think it’s most beneficial if people would ask themselves that more, esp. if they are in one of the political extremes. To try to imagine what the other side thinks and feels. Empathy and understanding are something the world lacks these days.

                                            (Also be careful to not throw political centrists under the bus by simply throwing out “you have to listen to all sides”, we’re usually quite nice people even if we’re not always on your side!)

                                            Of course, I also feel that the most important issue is that we learn to work together more. Plenty of people disagree politically on a number of issues and work together. That can be whether or not Fiber Internet should be subsidized or not up to much more controversial statements. I don’t think such disagreements are a reason not to work together. If they bring that sentiment to work and poison the team effort by splitting the team over it, then of course, stop working with them.

                                            1. 2

                                              be careful to not throw political centrists under the bus by simply throwing out “you have to listen to all sides”

                                              I’m saying listen to most sides, not all sides. Like the record in GEB that destroys the record player itself, our sense of fairness and aversion to hypocrisy can be exploited and destroyed with the right arguments. This happens in the real world, more often over time, and we should recognize it before we’re stuck in endless mental gymnastics trying to break out of political nihilism.

                                        2. 2

                                          Richard Stallman said, regarding an abortion joke in glibc

                                          IIRC he was strongly of the opinion that the joke was not about abortion, but about censorship.

                                          1. 1

                                            I am very positive this is true. Granted, the own Weltanschauung truly reflects in one’s coding style in most cases, however, both pro-life and pro-choice advocates can have e.g. a profound desire for simplicity in their designs regardless of their opinions.

                                            Things like this, in my opinion, are more rooted in self-discipline and habit, which is more or less not correlated with one’s opinion.

                                          1. 0

                                            In a slavery, the ultimate threat is the threat of violence. You can beat a disobedient slave. You can beat the gulagees or the prisoners in reeducation camps.

                                            What is going on here is that some people who have terrible starts at life, were given an opportunity to make their lives relatively better. But these opportunities are relatively worse from the position of a western developed worlders. So these westerners then complain about the from-their-view-poorer conditions.

                                            Do abuses exist, yes. But I know a teenager who works at a retail store who’s not realising his full leverage as given by the laws. His parents also let it slide, because they think it’s good for him to learn ‘how it is like in the real world’. So from a full-on lawyer perspective, one could say the guy is being abused.

                                            The workers have to work a low paying job with bad condition because her financial situation, the relative wealth of her birth country and other factors reduce her negotiative power. But despite any of that, she’s better off working in these poor conditions with low pay than she would be back at her village. She is better of being given this opportunity.

                                            The labour of developed countries back when the countries were developing had to endure such conditions too. And their leveraged that to give their children and themselves better lives in time. Every society has got to go through this process. If you try to impose enforced better pays and conditions, the employers will move to another country or another labour pool, and these poor workers will lose their chance to improve their lives. The surplus of poor people will always ensure that there’s some people ready to be ‘abused’ for $2 a day, because the alternative is even worse.

                                            1. 30

                                              I think your comment could be a valuable historic source in the future.
                                              It shows pretty well the kind of rationalization “western developed worlders” do of the oppression they foster and benefit from. Teenagers abused in retail stores learn “real world” just as girls that were abused in Nigeria.

                                              Just because criminals do it, it’s not something we should teach.

                                              In a slavery, the ultimate threat is the threat of violence.

                                              Some consider tortures as a form of violence. And starvation is a form of torture, you know?
                                              Just because it’s inflicted by a community instead of a deputed soldier, it does not means it’s less violent.

                                              She is better of being given this opportunity.

                                              You should really read more carefully.
                                              These people pay for this “opportunity”. They literaly take loans on their house to pay for it.
                                              And, it turns out, they pay to be enslaved. The product does not match the promises. They are tricked.

                                              Because you know, when private people have the power to remove your civil rights if you don’t do what they want, you are a slave. And if they can remove your civil rights when you get pregnant, you are a slave. And they can force you to pay for a job, you are a slave…

                                              Every society has got to go through this process. […]
                                              The surplus of poor people will always ensure that there’s some people ready to be ‘abused’ for $2 a day..

                                              Honestly I find this argument pretty disgusting.
                                              Exploting people weakness just because you can is not something that have a place in a civil world.

                                              As someone who claim to “fight for freedom”, you should really consider what kind of freedom you are supporting. The freedom of western consumers? The freedom of western IT companies? Who’s the freedom you care about?

                                              1. 1

                                                It shows pretty well the kind of rationalization “western developed worlders” do of the oppression they foster and benefit from.

                                                So how do you rationalise all the stuff you consume that were produce through this process?

                                                1. 4

                                                  Creating a demand is not inherently wrong. How companies choose to go about fulfilling the demand is where the concern is. One thing consumers do have is the power to choose which companies they spend their dollars with. Some companies are better than others.

                                                  1. 3

                                                    Why should I rationalise?

                                                    I actively minimize the blood footprint of my purchease. And I only buy what I really need. Often used.

                                                    Also I actively teach people to be “Ads Adverse”: the more people try to convince me to buy something the less I’m going to buy it. Culture, knowledge and critical thinking are the key to freedom.

                                                    Indeed each marketing campaign convey (at least) two message:

                                                    • one is specific to one product: you need this shit to be happy (whatever it means to you)
                                                    • one is general capitalist propaganda: you are the shit you own

                                                    Both are ridicously false! But propaganda’s goal is always to make the oppressed internalize the oppression so that they cannot challenge it effectively. As you can see in yourself, it’s pretty effective.

                                                    I do not rationalise the means of oppressions that oppress me, you and Malasian immigrants.
                                                    I study them. And I actively fight them through culture. I make them evident.

                                                    I do not think that the solutions to the bloody issues of Capitalism can be found in free market.
                                                    That’s groupthink. The solutions are in culture, knowledge, understanding.

                                                    Meanwhile I call people with their name, be it “murderer” at Uber and Tesla, “slavist” at Apple and so on…

                                                    1. 0

                                                      I actively minimize the blood footprint of my purchease.

                                                      Do you?

                                                      Because the very fact that you are capable of replying to me, shows that you have not minimised your blood footprint.

                                                      1. 1

                                                        I know it might seem impossible to people used to represent all values through the same unit, but in fact you can optimize several dimensions at once.

                                                        Also, in a complex system you have leverage, multipliers and so on to consider, so that you can have a zero (or even negative) sum over a dimension while having non-zero magnitudes all over the other dimensions.

                                                        But if all this math seems too complex for you, consider I have legally free access to several internet connected public and private computers that I did not buy and I do not own.
                                                        I let you as an exercise to guess how it is possible… :-)

                                                  2. 10

                                                    many employers also confiscate and hold workers’ passports in order to keep them from leaving an untenable situation

                                                    1. 7

                                                      Work makes freedom - as you point out.

                                                      1. 6

                                                        This might be the cleanest Godwin call-out I’ve ever seen. I tip my hat to you.

                                                      2. 6

                                                        The surplus of poor people will always ensure that there’s some people ready to be ‘abused’ for $2 a day

                                                        I know that I won’t convince you to change your worldview by typing into a text box on a website where you have put your very worldview into your username, but please consider the possibility that poverty is intentionally created and sustained to maintain a cheap labor market.

                                                        What would that look like? Who would benefit? What would they say to keep it going? Does that imaginary world match what you see in the real one?

                                                      1. 9

                                                        Of a similar vein, if you’re into these kinds of posts: http://worrydream.com/ABriefRantOnTheFutureOfInteractionDesign/. One of my favorite images shows how a tool fits a problem and a person.

                                                        1. 2

                                                          Haven’t read the post yet, but that video he links at the start of the post is so uninspired and vaguely dystopian. I can sum it up as “let’s put screens everywhere and make sure people spend even more time staring at them!” This would fit well into a Black Mirror episode. But I guess this kind of video can be a useful study of what we don’t want to happen because it makes it so obvious.

                                                          EDIT: After reading the post, I noticed that it’s from 2011. It’s interesting that so far we’ve pretty much gone down the path shown in the video, rather than what Bret was suggesting.

                                                        1. 3

                                                          I’m really excited about data classes!

                                                          1. 1

                                                            A colleague has written a great interactive introduction to a lot of DSP topics that might prove useful. You can navigate through it by hitting “next” at the bottom or using the menu at the top. The section on phasors is really fun.

                                                            1. 14

                                                              Usually, if you read up on the pre-story, the people beeing scolded have likely repeatedly and diliberatly ignored some rather clear and obvious guidelines for linux kernel development. I mean, what are you going to do if someone will insist on not understanding gentle nudging in the right direction? At one point you gotta escalate, …

                                                              1. 13

                                                                what are you going to do if someone will insist on not understanding gentle nudging in the right direction

                                                                Just not merge the patch?

                                                                1. 7

                                                                  That is a quite passive aggressive. I prefer hearing someones opinion, rather than getting the silient treatment.

                                                              1. 15

                                                                As a junior developer doing my best to learn as much as I can, both technically and in terms of engineering maturity, I’d love to hear what some of the veterans here have found useful in their own careers for getting the most out of their jobs, projects, and time.

                                                                Anything from specific techniques as in this post to general mindset and approach would be most welcome.

                                                                1. 33

                                                                  Several essentials have made a disproportionate benefit on my career. In no order:

                                                                  • find a job with lots of flexibility and challenging work
                                                                  • find a job where your coworkers continuously improve themselves as much (or more) than you
                                                                  • start writing a monthly blog of things you learn and have strong opinions on
                                                                  • learn to be political (it’ll help you stay with good challenging work). Being political isn’t slimy, it is wise. Be confident in this.
                                                                  • read programming books/blogs and develop a strong philosophy
                                                                  • start a habit of programming to learn for 15 minutes a day, every day
                                                                  • come to terms with the fact that you will see a diminishing return on new programing skills, and an increasing return on “doing the correct/fastest thing” skills. (e.g. knowing what to work on, knowing what corners to cut, knowing how to communicate with business people so you only solve their problems and not just chase their imagined solutions, etc). Lean into this, and practice this skill as often as you can.

                                                                  These have had an immense effect on my abilities. They’ve helped me navigate away from burnout and cultivated a strong intrinsic motivation that has lasted over ten years.

                                                                  1. 5

                                                                    Thank you for these suggestions!

                                                                    Would you mind expanding on the ‘be political’ point? Do you mean to be involved in the ‘organizational politics’ where you work? Or in terms of advocating for your own advancement, ensuring that you properly get credit for what you work on, etc?

                                                                    1. 13

                                                                      Being political is all about everything that happens outside the editor. Working with people, “managing up”, figuring out the “real requirements’, those are all political.

                                                                      Being political is always ensuring you do one-on-ones, because employees who do them are more likely to get higher raises. It’s understanding that marketing is often reality, and you are your only marketing department.

                                                                      This doesn’t mean put anyone else down, but be your best you, and make sure decision makers know it.

                                                                      1. 12

                                                                        Basically, politics means having visibility in the company and making sure you’re managing your reputation and image.

                                                                        A few more random bits:

                                                                    2. 1

                                                                      start a habit of programming to learn for 15 minutes a day, every day

                                                                      Can you give an example? So many days I sit down after work or before in front of my computer. I want to do something, but my mind is like, “What should I program right now?”

                                                                      As you can probably guess nothing gets programmed. Sigh. I’m hopeless.

                                                                      1. 1

                                                                        Having a plan before you sit down is crucial. If you sit and putter, you’ll not actually improve, you’ll do what’s easy.

                                                                        I love courses and books. I also love picking a topic to research and writing about it.

                                                                        Some of my favorite courses:

                                                                        1. 1

                                                                          I’ve actually started SICP and even bought the hard copy a couple weeks ago. I’ve read the first chapter and started the problems. I’m on 1.11 at the moment. I also started the Stanford 193P course as something a bit easier and “fun” to keep variety.

                                                                    3. 14

                                                                      One thing that I’ve applied in my career is that saying, “never be the smartest person in the room.” When things get too easy/routine, I try to switch roles. I’ve been lucky enough to work at a small company that grew very big, so I had the opportunity to work on a variety of things; backend services, desktop clients, mobile clients, embedded libraries. I was very scared every time I asked, because I felt like I was in over my head. I guess change is always a bit scary. But every time, it put some fun back into my job, and I learned a lot from working with people with entirely different skill sets and expertise.

                                                                      1. 11

                                                                        I don’t have much experience either but to me the best choice that I felt in the last year was stop worrying about how good a programmer I was and focus on how to enjoy life.

                                                                        We have one life don’t let anxieties come into play, even if you intellectually think working more should help you.

                                                                        1. 8

                                                                          This isn’t exactly what you’re asking for, but, something to consider. Someone who knows how to code reasonably well and something else are more valuable than someone who just codes. You become less interchangeable, and therefore less replaceable. There’s tons of work that people who purely code don’t want to do, but find very valuable. For me, that’s documentation. I got my current job because people love having docs, but hate writing docs. I’ve never found myself without multiple options every time I’ve ever looked for work. I know someone else who did this, but it was “be fluent In Japanese.” Japanese companies love people who are bilingual with English. It made his resume stand out.

                                                                          1. 1

                                                                            . I got my current job because people love having docs, but hate writing docs.

                                                                            Your greatest skill in my eyes is how you interact with people online as a community lead. You have a great style for it. Docs are certainly important, too. I’d have guessed they hired you for the first set of skills rather than docs, though. So, that’s a surprise for me. Did you use one to pivot into the other or what?

                                                                            1. 7

                                                                              Thanks. It’s been a long road; I used to be a pretty major asshole to be honest.

                                                                              My job description is 100% docs. The community stuff is just a thing I do. It’s not a part of my deliverables at all. I’ve just been commenting on the internet for a very long time; I had a five digit slashdot ID, etc etc. Writing comments on tech-oriented forums is just a part of who I am at this point.

                                                                              1. 2

                                                                                Wow. Double unexpected. Thanks for the details. :)

                                                                          2. 7

                                                                            Four things:

                                                                            1. People will remember you for your big projects (whether successful or not) as well as tiny projects that scratch an itch. Make room for the tiny fixes that are bothering everyone; the resulting lift in mood will energize the whole team. I once had a very senior engineer tell me my entire business trip to Paris was worth it because I made a one-line git fix to a CI system that was bothering the team out there. A cron job I wrote in an afternoon at an internship ended up dwarfing my ‘real’ project in terms of usefulness to the company and won me extra contract work after the internship ended.

                                                                            2. Pay attention to the people who are effective at ‘leaving their work at work.’ The people best able to handle the persistent, creeping stress of knowledge work are the ones who transform as soon as the workday is done. It’s helpful to see this in person, especially seeing a deeply frustrated person stand up and cheerfully go “okay! That’ll have to wait for tomorrow.” Trust that your subconscious will take care of any lingering hard problems, and learn to be okay leaving a work in progress to enjoy yourself.

                                                                            3. Having a variety of backgrounds is extremely useful for an engineering team. I studied electrical engineering in college and the resulting knowledge of probability and signal processing helped me in environments where the rest of the team had a more traditional CS background. This applies to backgrounds in fields outside engineering as well: art, history, literature, etc will give you different perspectives and abilities that you can use to your advantage. I once saw a presentation about using art critique principles to guide your code reviews. Inspiration can come from anywhere; the more viewpoints you have in your toolbelt the better.

                                                                            4. Learn about the concept of the ‘asshole filter’ (safe for work). In a nutshell, if you give people who violate your boundaries special treatment (e.g. a coworker who texts you on your vacation to fix a noncritical problem gets their problem fixed) then you are training people to violate your boundaries. You need to make sure that people who do things ‘the right way’ (in this case, waiting for when you get back or finding someone else to fix it) get priority, so that over time people you train people to respect you and your boundaries.

                                                                            1. 3

                                                                              I once saw a presentation about using art critique principles to guide your code reviews. Inspiration can come from anywhere; the more viewpoints you have in your toolbelt the better.

                                                                              The methodology from that talk is here: http://codecrit.com/methodology.html

                                                                              I would change “If the code doesn’t work, we shouldn’t be reviewing it”. There is a place for code review of not-done work, of the form “this is the direction I’m starting to go in…what do you think”. This can save a lot of wasted effort.

                                                                            2. 3

                                                                              The biggest mistake I see junior (and senior) developers make is key mashing. Slow down, understand a problem, untangle the dependent systems, and don’t just guess at what the problem is. Read the code, understand it. Read the code of the underlying systems that you’re interacting with, and understand it. Only then, make an attempt at fixing the bug.

                                                                              Stabs in the dark are easy. They may even work around problems. But clean, correct, and easy to understand fixes require understanding.

                                                                              1. 3

                                                                                Another thing that helps is the willingness to dig into something you’re obsessed with even if it is deemed not super important by everyone around you. eg. if you find a library / language / project you find fun and seem to get obsessed with, that’s great, keep going at it and don’t let the existential “should i be here” or other “is everyone around me doing this too / recommending this” questions slow you down. You’ll probably get on some interesting adventures.

                                                                                1. 3

                                                                                  Never pass up a chance to be social with your team/other coworkers. Those relationships you build can benefit you as much as your work output.

                                                                                  (This doesn’t mean you compromise your values in any way, of course. But the social element is vitally important!)

                                                                                1. 1

                                                                                  At my previous company, people were encouraged to write weekly snippets representing what they did. I found this pretty useful to know about what people were working on (I also used it to promote a political agenda by plotting my review latency histograms, encouraging people to review things faster). This was also essential when you had to do annual performance reviews, as you could look back to a yearly summary of what you had done.

                                                                                  At my current company, we use a slack bot to do daily “what did you do / what are you going to do” standups. It’s nice, but I miss the yearly roll-up view and the weekly frequency – you had more leeway to put in more information, like histograms or longer explanations of things.

                                                                                  1. 8

                                                                                    It seems like everything coming out of siggraph is terrifying now.

                                                                                    1. 4

                                                                                      They really skipped over the limitations though, I didn’t catch how long training takes and I would like to have seen some more examples of where is struggles, but I expect more of this is in the paper.

                                                                                    1. 1

                                                                                      I like the idea of a subscription to pay for maintenance of open source software (I would even pay for this as an individual), but the logistics of making this happen in a fair and sustainable way sound like a nightmare. Are there companies or organizations that already do this on a broad scale? In the past I’ve donated to Software in the Public Interest and the FreeBSD Foundation, and the Software Freedom Conservancy and the FSF are other well-known orgs, but it would be nice to pay one meta-organization to dole things out and track effectiveness.

                                                                                      1. 4

                                                                                        Music apps for iPhone (most are only written for iPad)

                                                                                        • Nanoloop is a music sequencer originally written for the Gameboy but works well on iOS/Android.
                                                                                        • Elastic Drums is a drum machine / groovebox with a pretty intuitive interface.

                                                                                        German

                                                                                        • PONS German-English Dictionary Advanced is expensive, but it’s a fully offline dictionary. Good in situations when you don’t have signal.
                                                                                        • German Grammar Spy spaced-repetition German article trainer. The words are sorted by frequency, so you learn the most common words first. I prefer this over normal vocabulary trainers because you can go through it very quickly.
                                                                                        • German Verb Conjugator no-nonsense offline conjugation lookup of all German verbs. There is a separate paid version without ads.

                                                                                        Self-tracking

                                                                                        • Reporter is a good self-logging app with random sampling.
                                                                                        • Productive well-written habit builder.

                                                                                        Transit

                                                                                        • Transit immediately tells you the arrival times of nearby transit options, and does it better than Citymapper.
                                                                                        • Citymapper is usually better than Google Maps and Transit for route planning.
                                                                                        1. 5

                                                                                          Is there a single Fuchsia user yet? When does that happen? Is this targeted at IOT? (I’ve heard that thrown around as a reason for its existence) or is this a take on what computers could be if you stripped away all the legacy?

                                                                                          1. 17

                                                                                            or is this a take on what computers could be if you stripped away all the legacy?

                                                                                            I think that’s the technical ambition.
                                                                                            A worth ambition, I would add, since I pursuit it too (if in a completely different direction).

                                                                                            But the political reason is pretty obvious: to build a GPL-free system that can get rid of Linus & friends.
                                                                                            Under Google’s own control.

                                                                                            1. 2

                                                                                              I’m a pretty heavy GPL advocate, but this at least is open source.

                                                                                              1. 6

                                                                                                Sadly this doesn’t mean much.

                                                                                                Beyond my own experience with open source operating systems developed by Google employees, I’ve seen in the past that a liberal license means nothing when it comes to the power of such large companies.

                                                                                                They have plenty of ways to discourage developers from using the freedoms that the license provides.

                                                                                                The careful wording in the PATENTS file is probably one of these.

                                                                                                Another could be unusual build infrastructure or huge build times (as in the case of Chromium).

                                                                                                Indeed I do not remember any abandoned project from such companies that was later taken from a community (like in the case of open office, for example), but I’m happy to be corrected in this regard.

                                                                                                1. 4

                                                                                                  I take your point regarding the reality that all such agreements rely on parties, particularly the more powerful ones, acting in good faith, and stories like the one you link about HarveyOS certainly should discourage contributing to non-GPLed (or similarly Freely licensed) projects. Or, one may engage with them that way by presuming that your contributions will be appropriated and unremarked. The ability to simply choose to fork the project initially and never give back, though, is something that somewhat mitigates that in the case of BSD, even as it goes against the FSF pro-sharing ethos.

                                                                                                  I’m not going to get into the patent release; I acknowledge your point but don’t think using that vector is likely. Same, I guess, with the technical discouragements like the build time in Chromium, because that’s extremely legit as a critique of the consequential impacts of that software. I do not think there’s an abstract philosophical defense against any of the points you raise, in the context of an FSF philosophy.

                                                                                                  But as long as we’re getting consequentialist here, there are reasons to believe that the interests of Google and the People are aligned on this project. I think their ambition is to have a Zircon-based OS running on devices from the scale of phones and watches on up to a datacenter-sized supercomputer, seamlessly participating in distributed computation, and the only way to achieve that is to make it as ubiquitous as possible. In order to do that, it needs to be developer-friendly, because as an operating system, it needs to appeal to people like us (technical users, developers, etc.), whereas something like Chromium doesn’t. Regarding my thesis about their ambition, from https://fuchsia.googlesource.com/docs/+/master/the-book/life_of_an_open.md (emphasis added here):

                                                                                                  Once the message has been transmitted from the client’s side of the channel, it lives in the server’s side of the channel, waiting to be read. The server is identified by “whoever holds the handle to the other end of the channel” – it may live in the same (or a different) process as the client, use the same (or a different) runtime than the client, and be written in the same (or a different language) than the client. By using an agreed-upon wire-format, the interprocess dependencies are bottlenecked at the thin communication layer that occurs over channels.

                                                                                                  I have seen good operating systems be BSD-licensed (for example, *BSD). I’m pretty stoked about this project.

                                                                                                  1. 8

                                                                                                    Well, from a technical point of view, I’m pretty sure it will be a great piece of software.
                                                                                                    And given how primitive are the mainstream operating systems right now, any piece of research is welcome for me.

                                                                                                    But I do not think that “the interests of Google and the People are aligned on this project”.
                                                                                                    I trust the Fuchsia developers’ skills, but Google is a huge corporation: its interests evolve independently from any ethical consideration, and its open source software is always a strategical marketing tool.

                                                                                                    Take Chromium, for example: it’s a great software that pushed the web forward (and JavaScript abuse with it, but this is another story), but its main purpose was to defeat Microsoft.
                                                                                                    I was naively fooled to think that the creation of Google Chrome Frame was a sort of philanthropic effort to helps those people who were stuck to IE. It was not.
                                                                                                    Indeed IE still sucks and many people are still forced to use it, but Google abandoned GCF when they won the war they cared about.

                                                                                                    While I still think that Microsoft purposely tried to slowdown the web for its own interests, Google was not better, just smarter: Google was able to dress its marketing strategies as philanthropic gifts, for years.

                                                                                                    Now they are doing the same with Fuchsia.

                                                                                                    If they will success, they will spread an os that is just “formerly” open source, but they will lead the development both technically and politically. And you will see a lot of effort from other companies too to make this happen. Just like such companies invest in LLVM, another great piece of software that is designed to defeat the most important piece of code controlled by the Free Software Foundation: GCC.

                                                                                                    As of today, indeed, I don’t think big companies are scared by the “virality” of the GPL.

                                                                                                    They are much, much more scared by the message it carries: programming is a powerful political act. Probably one of the most powerful.

                                                                                                    Had this realization to mix with the consciousness of how primitive is our field, they would completely loose control of their programmers (that they already try to keep under strict control with various methods).

                                                                                                    So just like Microsoft did not really understand what was happening with Chrome, now everybody looks at Fuchsia just for its technical design.

                                                                                                    But don’t get fooled, the enemy now is the true hacker’s culture that people like Richard Stallman, Linus Torvalds and Theo de Raadt, despite their differences (or maybe exactly for their differences), represent.

                                                                                                    1. 3

                                                                                                      I can’t argue with you, and even wrote similarly last year: https://blog.joeardent.net/2017/01/say-no-to-corporate-friendly-licenses/

                                                                                                      1. 1

                                                                                                        Nice read.

                                                                                                        We live in a world where a group of eight people have control of more economic means than the poorest four billion people, and the power disparity between our corporate masters and regular humans is unimaginably vast. There’s very little that you or I can do, but we do have one ace up our sleeves: we write software, and software increases our leverage. So don’t give that leverage to the leviathans trying to commoditize you.

                                                                                                        I really think that we, as hackers, should deeply reflect on the power that we have.

                                                                                                        And on the responsibility that comes with it.

                                                                                                    2. 2

                                                                                                      I’ve been interested in distributed, capability-based systems for a while, since EROS/CoyotOS in the early 2000s, and Zircon/Fuschia seem like the best shot at embodying the spirit of those systems, as in, eg, http://www.capros.org/overview.html

                                                                                                    3. 1

                                                                                                      How do huge build times restrict developers’ freedoms? Does Gentoo suffer the same fate?

                                                                                                      1. 2

                                                                                                        Well, in 2015 I was asked by one of our customers (a large multinational bank) to evaluate the fork Google Chrome Frame when Google retired its support.
                                                                                                        They used it over IE8 for their intranet (a pretty secure environment, AFAICT) and just wanted someone to call in case of functional bugs for a couple of years.
                                                                                                        The budget they were ready to pay for this request was pretty high, and the technical skill of my team were (and are) pretty amazing.

                                                                                                        If I remember correctly, it took 3 days to get the build complete on my desktop.

                                                                                                        Managers were already pretty scared by the risks (that for the first time in their lives, they were over-estimating), so when I said this, they incredibly decided to refuse such opportunity.

                                                                                                        Explaining that we just needed another server for the continuous build, was not enough.

                                                                                                        This despite the Chromium license.

                                                                                                        1. 2

                                                                                                          It sucks that you lost a customer and I don’t want to get into the details of your build setup, but maybe the long build times are just inherent to a large C++ application? I understand your argument that a company with deep pockets can afford to work on more complex software faster, but was compiling Chromium that much slower than a comparable non-profit project like Firefox?

                                                                                                          1. 1

                                                                                                            Also, I was implicitly (sorry) replying to your comparison with Gentoo.

                                                                                                            While maybe the Gentoo team have a continuous build setup comparable to that of Google, few people need to fork Gentoo because they have been locked in.
                                                                                                            And even those who do, would not build it frequently as a whole.

                                                                                                            Forking a single complex application is a completely different matter.

                                                                                                            1. 0

                                                                                                              It sucks that you lost a customer

                                                                                                              Well… it’s still one of our best customers!
                                                                                                              But we lost a pretty interesting work (both economically and technically).

                                                                                                              I don’t want to get into the details of your build setup

                                                                                                              Frankly I do not remember much. It was the first and last time I had to build Google Chrome Frame.
                                                                                                              But I remember it was not an easy task: I remember an unusual number of WTF (why the hell they did it so?)

                                                                                                              I understand your argument that a company with deep pockets can afford to work on more complex software faster, but was compiling Chromium that much slower than a comparable non-profit project like Firefox?

                                                                                                              Honestly, I didn’t try.
                                                                                                              But as far as I can read, there is still a huge factor, between Firefox and Chrome.

                                                                                                              The point however is that people should realize that Open Source from big companies is just marketing.

                                                                                                              At best, they do not really care about external developers (as opposite to Free Software).

                                                                                                              Sometimes they just look for minions that work for free for them.

                                                                                                              At worst, they are fooling developers to give up their freedom (and power).
                                                                                                              And they are pretty good at this: I’ve talked with many smart developers that were not aware of how much they were working against their own long term interests.

                                                                                                              Note that the problem is not the license and while I value collaboration over competition, alternatives are always a good thing. The problem is who controls the projects for real.

                                                                                                              1. 2

                                                                                                                I am familiar with the high level of WTF for building Chromium (and AOSP too, right?).

                                                                                                                Do you think it has anything to do with this? https://lobste.rs/s/mbufwv/some_software_cannot_be_used_at_google

                                                                                                                make is GPL. So is autoconf. Etc?

                                                                                                                1. 1

                                                                                                                  Maybe. Frankly I cannot say.

                                                                                                                  I build my OS with a few disposable Go scripts. I will replace Go with a simpler general purpose language asap, but I will not use GNU Make or Autoconf (nor cmake or worse shits) because I want to see how far you can follow a minimalist approach.

                                                                                                                  However building Jeanne, from source to the first drawterm connection, requires just a handful of commands documented in the README.

                                                                                                                  And Jehanne is pure research.

                                                                                                                  But I think that if I were going to write a Free Software browser, I would use the most battle tested and well known tools, exactly to minimize WTFs.

                                                                                                                  In practice, it depends on what you want to do.

                                                                                                                  If your goal is to create a distributed system that replace current computing techniques from the ground up, you probably do not care much with compatibility: your gift to the world is the brave innovation that breaks every conventions.

                                                                                                                  On the other hand, if you want to create a Free Software for the current world you should focus on that and maximize for developer’s friendliness.

                                                                                                                  But what if you want to spread a new browser to break a monopoly while keeping the full control of that software?

                                                                                                                  Open source to the rescue!

                                                                                                  2. 8

                                                                                                    I think, like many of Google’s other “extra” projects, it’s mainly a hedge. It makes sure they can’t be boxed in in the future if something unfavorable happens with Linux, just like Android was created mainly to ensure they wouldn’t ever be at the mercy of other mobile OS makers choosing to switch away from the Google ecosystem. Like Android, if it turns out to be a pretty good OS that becomes massively popular, that’s a bonus for them. If it turns out to be a disaster, they can abandon it, it’s pocket change for them.

                                                                                                    1. 4

                                                                                                      My guess is that Google found that both ChromeOS and Android aren’t enough for business users, and are going all in on developing an alternative to Windows and macOS. Instead of .NET/C#, or Cocoa/Obj-C, you have Flutter/dart.

                                                                                                      I’d expect a series of notebooks, eventually, that are similar, hardware wise to Chromebook Pixel, running Fuschia, that can be members of the “Google Apps domain controller” but have a traditional set of applications that don’t just run in a browser.

                                                                                                      1. 4

                                                                                                        If you look on YouTube, you’ll see people actually running the graphical/desktop Fuchsia, either in VMs or on Google hardware. A lot of stuff is broken, but it gives you an idea of what the graphical environment will eventually look like.

                                                                                                        1. 1

                                                                                                          The plan to strip away all the legacy from unix was apparently numbered nine, which fell off with its parent company.

                                                                                                          It’s good that google is carrying it over with a bucket of bright paint. Namespace is great. FIDL is really just two letter more than fd. I really hope google will carry it through. No one want a plan b.

                                                                                                          Once Fuchsia achieves acme, I will be happy to run it in qemu.

                                                                                                        1. 3
                                                                                                          1. 3

                                                                                                            I’d be curious to know if there is a color scheme with a continuous mapping from light to dark.