1. [Comment removed by author]

    1. 23

      In point of fact, she does share that she has bipolar depression, which is a mental illness (though disorder is a more appropriate term).

      Or maybe you meant it in a derogatory way, which, I’ll admit, would give the post more of a purpose. However, that’d also be a pretty shitty and mean-spirited, destructive thing to say.

      Please clarify.

      1. [Comment removed by author]

        1. 8

          Ehmke seems obsessed… It’s not healthy.

          That’s not your call to make though, right? What is and isn’t helpful or healthy for her life? And even if it were, this thread certainly isn’t the place to talk about it. The article is clearly about Githhub having made promises and then breaking them.

          Think about it this way: how many of Github’s actions would a recruiter told the author when she initially reached out, had she known?

          Which is to say, if how Github acted were Github policy, then of course a recruiter would talk about it. It is the company policy of how they treat employees and Github should be proud of it, especially given how proud they are of their values.

          Is it’s Github’s policy to be strict and unhelpful accommodating any mental health needs of their employees, including when family members die? Is their policy, “sorry, need you at your best regardless of your mental health provider’s advice, so you definitely need to go home.”

          So really this article is about how Github acted, in light of how they lead the author to believe they would act, and how it runs contrary to their professed goals of inclusivity.

          Which is all to say, why are so many people focusing on the often irrelevant supposed faults of the author, instead of the actual content and arguments she is providing? Especially for such a clearly structured and functional post. Say what you want about her points, they are clearly made and have well presented evidence and anecdote.

          1. 6

            the article is about a lot of things. the inability to have perspective on a situation and petty retaliation for small grievances seem the prominent ones to me as well, unfortunately.

            I’ve seen my fair share of office politics, and it sounds like at the very least her manager could use some 360° review, but providing this kind of feedback publicly and after leaving a company is so obviously not the time nor the place to do so that I’m really unclear on what her motivations are aside from vengefully smearing a company.

            certainly she doesn’t think this will cause any kind of change internally? if she does, that seems a bit unrealistic and grandiose. had she left of her own accord while sending sent this to a sympathetic person in HR she would have had a significantly greater impact and significantly less attention.

            1. [Comment removed by author]

              1. 6


                “So I lost a bunch of money posting that story. I had to turn down the severance offer because it contained a hush clause.”

                1. 2

                  not that much, and you don’t get it if you quit. most SWE make enough that it’s really not in their interests to take a month’s salary unless they have nothing but nice things to say about their time employed somewhere.

                  personally, I think the best exit one can make out of a shitty situation that they don’t want to see through getting fixed is to document it and quit w/o signing anything.

              2. [Comment removed by author]

                1. 9

                  This is what I’m betting: this gender identity politics stuff was all Ehmke talked about while they were at Github.

                  …That’s why she was hired.

                  1. 3

                    The core question seems to be, “Do a person’s personal views regarding certain minority groups always result in interpersonal issues?” If so, all people who are not fully tolerant must be fired (at least according to militant supporters of this ideology—see here for an example); and if they are not fired, some projects might risk alienating minority contributors, depending on the personal views of their existing contributors. If this is not true, however, then all existing projects go on smoothly regardless of their contributors’ views about each others’ member groups.

                  2. 3

                    That’s not your call to make though, right?

                    What does that even mean?

                    If somebody was injecting heroin into his bloodstream, am I allowed to comment that it is unhealthy? Or is it not “my call to make’?

                    You can not divorce the fact that Caroline xirself has always pushed identity politics and been extremely toxic to every person that doesn’t kowtow to schmer ideological agenda from the fact that now paxer is complaining about supposed ‘injustice’ that occurred during xomer time at github, and the fact that it is likely that it is not injustice at all, but that the people at github didn’t want to completely kowtow to all of xober demands.

                    1. 6

                      Whether or not someone is an asshole, it’s rude to deliberately misgender them. Caroline apparently prefers “she/her” pronouns, and you know this. So why are you using the wrong pronouns?

                      If your problem is with her actions, then her gender doesn’t matter. So why not be polite? But the pronouns in your comment make it read to me like your problem is in fact with her gender identity. And if that’s the case, then you’re doing a good job of making her case for codes of conduct, so that folks don’t have to deal with being randomly attacked for who they are.

            1. [Comment removed by author]

              1. 4

                You don’t even need to kill everything in the namespace manually. Starting a process in a new PID namespace means that process acts like init in that namespace; killing it automatically kills everything in the namespace. You can use unshare(2) as a wrapper to run a process in a new PID namespace, to avoid writing new code.

                (I am in the middle of implementing a version of this at $DAYJOB to isolate tests from each other)

                1. 1

                  However it would be nice to send SIGTERM first. Can such an “init” send signals to processes with different UID?

                  Other than that it should be enough for most cases.

                2. 1

                  Unix has had it a lot longer than since kernel 3.8: They’re called process groups.

                  1. 1

                    You said it yourself: setpgid. It can be called by descendant process and it’s no longer in parent’s process group. For session there is setsid.

                    As stated earlier: if you have a bit more complicated script you will have processes that:

                    • double fork
                    • setpgid
                    • setsid
                    • ignore signals that can be ignored

                    Then the only robust way to kill them all by unprivileged ancestor process seem to be pid namespaces on Linux.

                    1. 1

                      Sorry, I really misunderstand what you’re trying to do then.

                      Why exactly do you want to kill -9 a process that you did not start and don’t know what it’s doing?

                      1. 1

                        I want to leave clean state after I finish. No background processes left-behind. I might have not started a certain process directly, but it is a descendant of my process. It would not be there if not for my process so in a way I did start it.

                        I want to ask it politely first with SIGTERM and give it a bit time. But when it will not listen in reasonable time I want to have an option to SIGKILL it.

                        System services should probably be spawned by a daemon that was started earlier by the init. Then whatever I’m doing can’t harm the system. If descendant of my process starts a system service it probably should not be touchable by my process (but it depends).

                        1. 1

                          I’ve been using unix for over 30 years; I’ve managed mail clusters handling 100mm emails a month, and ad servers handling 10bn impressions a day. I’ve never wanted this.

                          I’d really suggest trying to figure out why you think you want it – what problem you’re actually trying to solve. A program that tries to create its' own process group either has a bug (that something like fghack or another hotpatch can fix) or has a good reason (in which case, are you sure you want to kill it?)

                1. 3

                  A couple of related code search tools include https://github.com/ggreer/the_silver_searcher and https://code.google.com/p/codesearch/.

                  Last time I looked, ag didn’t have proper support for gitignores (except on my fork, which is a bit slower and now out-of-date). But it’s does have a lot of other neat features, and it is fast. On reflection, I have no idea why ag’s strstr would be faster than the one in the C standard library, which at least on glibc uses SSE instructions. So that strikes me as weird.

                  Codesearch is almost always fastest, because it preindexes your source code. But I’m a bit wary of using it, because I worry that I’ll miss some code that I added since the last indexing. It doesn’t support backreferences, although I only use those once in a blue moon. Also, it’s a bit stupid – searching for “memory link” in the Linux kernel takes almost a second even though the phrase only appears once; that’s because both words are very common and it uses a trigram index instead of a FREE index.

                  What I really want is the best of all worlds: codesearch-style preindexing, with the varied options that ag and ack have (particularly search-by-language), and automatic reindexing on code changes.

                  One day, I’ll probably write it.

                  1. 2

                    I don’t know if you’d checked out the search engine I’m wroting for 500lines but it is meant to support that kind of use case — eventually. I don’t know what FREE indexes are, though! Maybe I should learn about them.

                    1. 1

                      One of the things I toyed with a few months ago in ack was the idea of having an index of digraphs for each directory that would get rebuilt on the fly. Premise is that 99% of the time when you’re acking you’re acking unchanged files in a code base. If I ack the word “sales” and I know that only two files in the directory contain “sa” anywhere in them, then I only need to search those two files. Also, it would index first and last line number in the file, so that if you know that the last place digraph “sa” shows up is on line 7 of foo.c, then ack can stop searching at line 7.

                      But then other side projects that pay money took priority. :-/