1. 15

    Troll seems like it fits with the idea of a post being inflammatory in tone.

    1. 17

      There’s a subtle difference between being mean and being a troll, I’d suggest–I’ve got a little experience with both, many many years ago, in my misspent youth; I’d certainly never engage in either today! ;)

      If a comment or post is “trollish”, then its primary purpose is to antagonize or bait other posters. As we all recognize this, it also tends to mean that a post flagged as “trollish” will be dismissed out of hand. We all assume that even if good points are being made that is incidental to the purpose of the post and hence they can be ignored. Typically, ignoring troll posts is the best thing to do, because if the troll isn’t provoking a response they lose interest and go elsewhere, or decide to engage in useful conversation.

      If a comment or post is “mean”, though, it may be posted and argued quite honestly and genuinely, but be disagreeable in tone. It can be considered a valid point, it can be considered well-argued, but it may ruffle feathers. The difference between it and a troll comment is that we can expect to engage the author in a reasonable discussion, perhaps even suggesting a different way of wording things.

      Again, a subtle difference, but it means all the world for discourse.

      1. 1

        I think there’s an enormous difference. Trolling is posting something in bad faith in order to garner responses; it can be inflammatory, for example using racial or sexual slurs to attract condemnation, but it doesn’t have to be. You can troll by posting a deliberately incorrect answer to a technical question in the hopes that people will rush to correct you, for example. (Trolling in this way is often a more successful tactic than simply asking the question, although I don’t do it because I feel it’s unethical.) Meanwhile, you can be inflammatory in tone without trolling — the easiest way is simply to just say inflammatory things you sincerely mean, but even if you’re just looking for an excuse to bully someone, it isn’t trolling if you aren’t trying to get a response out of them. Many bullies, I know from sad experience, are just seeking to silence their victims, not watch their “amusing” reactions.

        With that, I will return to my silence here.

      2. 7

        Should we just rename Troll to be more generic?

        1. 9

          Flame maybe? That’s already mostly what I used it for, though fortunately not too often. “Troll” is a notoriously vague term, but we don’t really have trolling in the classic sense of deliberately bad-faith posting. So in this context I already think of it as meaning something like jerkish/flamey.

          1. 9

            “Nonproductive”

            1. 9

              I like unproductive.

            2. 4

              I’d vote for a more generic “breech of site etiquette / code of conduct”, if it would come with a similarly-named section on the about page :-)

              1. 3

                I trust our judgement when moderating more than any code.

                1. 1

                  The written code isn’t so much for the voter as for the receiver of the votes. It’s particularly useful for new community members so they can figure out what is acceptable behaviour here.

                  1. 1

                    Then you’ll get people complaining that they didn’t violate the code. And like any documentation it will get out of date. Better to encourage people to lurk for a while before posting.

              2. 2

                Actually, yes, if that’s on the table I’ve wished for a while that it were something I felt was applicable to posts like that. I know it’s intentionally chosen to not be a catch-all, but I don’t believe I’ve ever used it at all. “Personal attack”?

                1. 1

                  “ungood”

                  1. 4

                    “badthink”?

                    1. 4

                      prohibited speech

                      1. 1

                        Big Brother is watching. Always watching.

              1. 4

                Great article. Having spent time with Go, I am comfortable saying that, just like Java and Python, it is a mediocre language with many flaws that will take over the world; people who are aware of these flaws will be derided as academics who nit pick, and are unaware that “all languages are equivalent”.

                1. 1

                  I am curious, what are some flaws of Python? I code in Python and I would love to understand its flaws.

                  1. 2

                    Nearly all the incompatible changes in Python 3 are to fix flaws in Python 2. There are some others, though.

                    You can invoke x[-1], or worse, x[:-1], by an accidental bug in your address arithmetic.

                    You can write your Python code in any supported character encoding, not just UTF-8. Partly as a consequence, you can get a compile error by putting non-ASCII characters in a comment.

                    CPython runs about 100× slower than C. This is both more and less of a problem than a few years ago: more of a problem because Moore’s Law has ended, so it’s harder to justify trading off development time for execution time, and less of a problem because the gold standard is now GLSL or CUDA or something, not C, and CPython code might be in just as good a position as C code for that. (However, you can also use V8 or LuaJIT now.)

                    Typically when you get a type error from invoking a library function with parameters of the wrong type, instead of getting an error message saying something like “you can’t invoke bisect.bisect(‘a list, 'a) with types (string, string list)”, the error message has a few stack trace levels of code down inside the library, and then the resulting error message may or may not have any obvious connection to the actual error in your source code. This is especially bad with libraries like Pandas whose functions can be called with any of various combinations of types, trying each one in sequence until it finds one that works — the error message typically refers just to the last one it tried, which may not be the one you intended.

                    1. 1

                      I wrote this up several years ago - https://news.ycombinator.com/item?id=3580590

                      Today I could elucidate on each point in nuanced depth and add more points.

                  1. 87

                    Don’t continue reading if you’re a pussy, 9-year old boy or afraid of little bit “strong” writing.

                    This is like standing at a podium as a huge banner unfurls behind you saying “I AM A JOKE” and a pantless marching band comes out on stage playing a off-key version of Yackety Sax.

                    I definitely do not give a single solitary shit what the author thinks after that.

                    1. 27

                      There is very little quite so tiresome as the “I’m going to give it to you straight, and by straight I mean with lots of cuss words” sort of truth telling. It so rarely actually has any truths to tell.

                      1. 6

                        Skimming the article, the author seemed to have some good points with solid examples, particularly the bit about slice manipulation.

                        But the writing was so intolerable I quit reading.

                      2. 15

                        It looks like he’s removed that line now. But the tone remains that way throughout… Public discourse has standards that are required if you expect to be engaged.

                        1. 6

                          Trolling and terrible writing aside, I’d be far more interested in the opinions of people who have been using the language for more than a whole 4 months, and who have actually used it in production.

                          None of those seem particularly bad to me. In fact, the variable shadowing seems like people getting what they deserve for shadowing a variable in an inner scope like that ;-)

                          On the other hand, maybe years of C++ has numbed me to it.

                          1. 3

                            I’ve been using Go for years, since before 1.0 was released. In side projects (that I count on and use every day, at home and at work). In academic research. And now in production. Several of the things the author mentions are benefits of the language. For example, I love go generate. Others might be reasonably considered warts or footguns, but they are warts that simply haven’t caused many (if any at all) problems for me personally.

                          2. 3

                            So, you have no opinion on the technical complaints presented in the article?

                            1. 32

                              If somebody announces “Hi, I’m trolling!” I think it’s a reasonable tradeoff to decide you’re not interested in reading the rest of the post to determine if that’s true or not.

                              I probably could have put up with around half the intro, but at some point I grow tired of reading why I’m not going to like what comes next.

                              1. 4

                                That’s typically where the scroll keys come in handy. :)

                                I’ve noticed (over the last year or two) that people seem to be increasingly reluctant to try and find the good with the bad when it comes to technology posts, often to the point of (as with your GP) proudly proclaiming their impatience. At least the author here had the decency to be up-front, even though the edginess was sorta tiring.

                                1. 7

                                  Ah, so I don’t ordinarily complain about such things. I’m thankful the author has been so considerate as to tell me not to waste my time. :)

                                  I just don’t have any opinion about the rest, since I didn’t read it, which I only mention since there seemed to be a thread going.

                                  1. 2

                                    Personally, I’m fine with anything in an article besides unwarranted swearing. I don’t enjoy reading it and have a hard time blocking it out.

                                    1. 1

                                      I’ve noticed (over the last year or two) that people seem to be increasingly reluctant to try and find the good with the bad when it comes to technology posts

                                      My time is too precious to waste it reading poorly written content. If the ideas have merit they’ll be written up again by better authors.

                                      I feel like poor language indicates lazy thought, and lazy thinkers often don’t have as deep and interesting insights as they think they do ;)

                                    2. 1

                                      While that is true, if you do that, you should not leave a comment about how you didn’t read the article and therefore have nothing interesting to say about it.

                                      1. -3

                                        If somebody announces “Hi, I’m trolling!” I think it’s a reasonable tradeoff to decide you’re not interested in reading the rest of the post…

                                        Meanwhile, OpenBSD continues to produce “serious” presentations in Comic Sans, which doesn’t at all scream “Hi, I’m trolling!”

                                        Pot, Kettle, it’s all the same in this kitchen. Now excuse me as my karma burns away for daring to point out the above hypocrisy.

                                        1. 8

                                          No, your karma will burn away for the tired old “I’ll lose karma for this”. It adds nothing to the discussion. Please don’t do it.

                                          1. 6

                                            Shrug. I don’t typically use comic sans. Anyway, I think complaints about comic sans say more about the reader than the presenter, where as calling the reader a pussy says more about the author.

                                            1. 0

                                              where as calling the reader a pussy says more about the author.

                                              Nit, he didn’t call the reader a pussy.

                                            2. 1

                                              OpenBSD definitely gets justifiable criticism for that, and the pot being black doesn’t make the kettle not black.

                                              (IMO, while the Comic Sans thing is stupid and unprofessional, the bigger issue is that they typically deliver these things in a complicated binary format for which decoders have already had serious vulnerabilities, which sort of flies in the face of their entire raison d'être of worrying about security first and foremost.)

                                              1. 2

                                                Their presentations are either presented as PDFs, which already integrate with screen readers & tools like pdf2text, or are presented as webpages with images - and those presentations have plain text or HTML slides as well:

                                                (and c'mon, if you (not you specifically but y'all) can’t tell the difference between light ribbing directed at people who believe in form over function and starting your paper with GTFO PUSSIES then, uh.)

                                                1. 2

                                                  Whenever I’ve seen them linked it’s been a page full'o jpegs, and I’ve certainly never bothered investigating further. Good that that’s not the only format they’re available in; bad that it’s the only one I’ve seen, and still stupid and unprofessional that they format it like a middle schooler in the 90s.

                                                  And yes, I don’t think the two are comparable. To take the pot-and-kettle metaphor way too far, OpenBSD is at worst lightly scorched here. Not perfect, but at least mostly not actively insulting their audience.

                                          2. 15

                                            Why the fuck would I wade through the rest of that shit just to find out what the author thinks?

                                            Opinions about why Go is a poorly designed language are not so valuable or rare that I feel obliged to pick the peanuts out of the poop here.

                                            1. 3

                                              Precisely. It’s not like you’re obligated to read every word everywhere, even on a subject you might be interested in.

                                              1. 2

                                                “Peanuts out of the poop.” Thanks, that’s my new favorite phrase.

                                            2. 2

                                              That’s pretty much a classic Tone Argument… not saying it’s great writing, but maybe look through the writing to the arguments more?

                                              1. 9

                                                I’m pretty tone agnostic, actually, so I probably wouldn’t notice or care, except when the author goes out of their way to tell me how bad the tone is. If you know your tone is so bad that you have to warn people about it, but choose not to fix the tone, well… I think you have chosen poorly. It seems to reflect a desire to be more shocking than informative.

                                                1. 9

                                                  It’s definitely not a tone argument. Me saying your tone is shitty is only a tone argument if I’m also saying that makes you wrong, in the same way that ad hominems aren’t actually just insults.

                                                  1. 3

                                                    I don’t know if that’s strictly true. The typical example of a tone argument is an angry feminist being told “if you were less angry, people would be more receptive to your argument” (as a euphemism for “please make your point in a format I can more easily ignore”) with no reference to its truth value.

                                                    Regardless, this author is (a) not underprivileged relative to the people criticizing his tone, and (b) not justifiably angry anyway, so I don’t see a problem here.

                                                    1. 1

                                                      You’re saying that the tone he is using is sufficient to invalidate what he is saying. I’m pretty comfortable calling that a Tone Argument.

                                                      1. 3

                                                        You’re saying that the tone he is using is sufficient to invalidate what he is saying

                                                        Pretty sure what the parent was saying is that the tone the author is using, for him as a reader, is sufficient to ignore what the author is saying, without making any claims as to whether the author’s points about Go are correct or not.

                                                        “This paper is so caked in stinky shit I refuse to read it” is different than “this paper is so caked in stinky shit that whatever is written on it must be wrong”.

                                                      2. 1

                                                        Me saying your tone is shitty is only a tone argument if I’m also saying that makes you wrong

                                                        Eh … isn’t that exactly what you are doing? You don’t like him writing like you usually do, and use that to dismiss everything he has to say.

                                                        1. 1

                                                          Do I use gendered slurs? No. No, I don’t.

                                                          1. 1

                                                            Dick, pussy and asshole are all slurs. Gender doesn’t come into it (and it’s interesting that you would consider genitalia to be gendered).

                                                            1. 0

                                                              Are you trying to imply that if he used an inclusive she/he/they/xir/zhe/… you would have had no trouble reading the article?

                                                      3. 2

                                                        I don’t disagree with your point, or desire to point out your wrongness here. I do wish to share that I found it entertaining that you don’t like his tone, but use one like it for most of your own discussion. Again, I’m not criticizing (this is a different medium and you have different goals, for starters of why it doesn’t matter), I just found it causal of some chuckling.

                                                        1. 3

                                                          I don’t use gendered slurs, nor do I posture that cursing is some sort of bad-boy bullshit. If you think the author lost me because of his “strong” writing then you’re not paying attention.

                                                      1. 1

                                                        I tried to use this feature to add a #formalmethods tag to https://lobste.rs/s/gjydaj/the_limits_of_correctness, but it won’t let me, because there’s still no #formalmethods tag, and it won’t let me suggest a tag that doesn’t exist yet.

                                                        1. 1

                                                          Relatedly, I tried to add #dsp or #signal-processing or #image-processing to https://lobste.rs/s/udjfu4, but none of those exist either.

                                                          1. 5

                                                            I can’t tell if you’re being intentionally obtuse. There was never any mention of being able to create tags that don’t exist.

                                                            1. 1

                                                              Don’t mind this guy. I guess it’s impossible to talk to him without insulting him in some regard. Hey, kragen, this is the internet, damn it! :D

                                                              1. 1

                                                                I just offered you a couple of feature requests for the software running your web site, and at first you ignored me, and then you answered by insulting me, calling me “obtuse”. This is not the first time I’ve seen you respond to suggestions for improvement with insults.

                                                                This makes me sad. I wish you would not treat people like that. This is not the kind of interaction I am looking for when I come here. If it is the kind of interaction you want to promote, I guess I can’t stop you. Is it?

                                                                1. 3

                                                                  I was also unable to determine if this was a feature request or a misunderstanding of the current state.

                                                          1. 3

                                                            This should be tagged #dsp.

                                                            Deconvolution is a really interesting area, and there’s an immense amount of academic work trying to apply basically every machine-learning and AI trick in the book to the problem. This blog post is a very accessible introduction!

                                                            1. 2

                                                              Coincidentally, thinking of this article, I went to look at some page weights yesterday. Almost everything I thought to look at (Twitter, YouTube, I forget) was about 2MB for the initial load. Outliers on the low end were HN (7k front page, 37k a comment page) and Wikipedia (half a meg for Life). On the high end I had Amazon (5MB for a page about a deep-cycle lead-acid battery) and either Twitter or YouTube once they were in use: about 12MB a minute for high-res YouTube video and maybe 2MB a minute for Twitter timeline updates.

                                                              How much good could we do if we were using that bandwidth to eagerly replicate valuable data that needs to be archived, in order to prevent links from breaking?

                                                              1. 6

                                                                Interesting thought: KIC 8462852 is 1481 light-years away. Suppose what we see is, in fact, a bit of a Dyson sphere built by an incipient Kardashev Type II civilization, and we have been observing their solar panel floating in front of their sun. At the time that the events we are observing happened, they could perhaps turn a giant telescope on Earth. What would they see?

                                                                At the time we are observing, the most recent signal they had received from us would be 2962 years ago, about 900 BCE. The Greek Dark Age following the Bronze Age Collapse were starting to come to an end (somebody might still have remembered how to write in Linear B, but the knowledge was dying out), Jeroboam or perhaps David was king in Israel, China under the Zhou Dynasty was developing the Great Seal Script from the oracle-bone script (the Warring States period had not yet started), smelting of iron began, Assyria was a great power, and Zoroaster was born.

                                                                If we were to respond to our discovery of their nascent Dyson sphere by flashing a signal to them, hoping that they would hear it, they would receive it 2962 years after the sphere reached the state we are observing today. That is, their Kardashev Type 2 moment would be as far in the past for them as the Assyrians, King David, the Western Zhou Dynasty, and Linear B are for us. What does a civilization look like three millennia after reaching Kardashev Type 2?

                                                                We might not have to wait 1481 years to meet them, though. Suppose that, if they are not subject to resource constraints, their energy usage grows like ours: roughly a factor of 10 per century. The Milky Way’s 200 billion stars, then, would be harnessed only some 11 or 12 centuries into their future from when they reach Kardashev Type 2 — but most of those stars are fifty thousand light-years away, so failing some kind of superluminal travel, the transition from Type II to Type III will inevitably take at least tens of millennia, not the mere millennium our own growth rate would suggest.

                                                                A Kardashev Type II civilization would have no difficulty launching near-light-speed starwisps to make contact with nearby stars and begin to harness their energy. So if there are citizens of KIC 8462852, perhaps we will meet them soon, within a century or two; roughly estimating, I think there are perhaps a few million stars closer to them than our own.

                                                                You might wonder whether a hypothetical Type II Civilization at KIC 8462852 could detect the Olmec, Zhou, and Assyrian civilizations from a vantage point 1481 miles away. Using only the means of detection we already know about, light would probably be their best chance, specifically ultraviolet at about 300 nanometers — nothing longer can make it out of our atmosphere. The Rayleigh criterion says that it’s pretty hard to see things that are closer together than about 1.22λ/d radians, where λ is the wavelength and d is the diameter of your telescope’s aperture. If you can construct an interferometer several astronomical units across — let’s say 10 AUs across, about the size of the orbit of Jupiter — then you can resolve things down to about 2.4 × 10⁻¹⁹ radians apart. At a distance of 1481 light years, that’s about 3.4 meters.

                                                                So yes, KIC 8462852 could have maps of Bronze Age Earth almost as good as what you can buy from IKONOS satellites today, even before they ventured outside their own solar system. They could have observed the flourishing of the cities of Mesopotamia, the progress of the Bronze Age Collapse, and the gradual degradation of the Great Pyramid at Giza. Every house built, every crop planted, every field cultivated, could figure in their databases in greater resolution than you can find modern crop plantings in the free 15-meter-resolution Landsat 8 data on Earth Explorer. No doubt if they observed these phenomena, they would find them of great interest.

                                                                So it seems likely that we will meet them within decades or centuries — unless they don’t exist.

                                                                1. 4

                                                                  I’m not aware of any non-Java JVM languages prior to the CLR,

                                                                  Kawa Scheme history says:

                                                                  One option we considered was compiling Scheme into Java bytecodes and executing them by a Java engine. The disadvantage would be that such a Scheme system would not co-exist with Guile (on the other hand, we had run into various technical and non-technical problems with Guile that led us to conclude that Guile would after all not be strategic to Cygnus). The advantage of a Java solution was leveraging off the tools and development being done in the Java “space”, plus that Java was more likely to be strategic long-term.

                                                                  The customer agreed to using Java, and I started active development June 1996. As a base, I used the Kawa Scheme interpreter written by R. Alexander Milowski. He needed an object-oriented Scheme interpreter to implement DSSSL [DSSSL], a Scheme-like environment for expressing style, formatting, and other processing of SGML [SGML] documents. DSSSL is an subset of “pure” Scheme with some extensions. Kawa 0.2 was a simple interpreter which was far from complete. It provided a useful starting point, but almost all of the original code has by now been re-written.

                                                                  Kawa 1.0 was released to our customer and “the Net” September 1996. Development has continued since then, at a less intense pace! The long-term goal is an object-oriented environment that harmoniously integrates Scheme, Java, XQuery, and other languages.

                                                                  The History of Tcl says:

                                                                  I joined Sun in May of 1994…The additional resources provided by Sun allowed us to make major improvements to Tcl and Tk…Jacob Levy and Laurent Demailly built a Tcl plugin, so that Tcl scripts can be evaluated in a Web browser, and we created Jacl and TclBlend, which allow Tcl and Java to work closely together.…During these years Tcl usage continued to explode. By the end of 1997 there were hundreds of thousands of Tcl developers.

                                                                  So we have Kawa in 1996, Jacl somewhere between 1994 and 1997, and the CLR in 2000.

                                                                  I feel like it’s often the case that developers on Microsoft platforms have no idea what’s going on in the outside world, which I guess is probably why they so often waste their time building things that turn out to be irrelevant. This aspect of the post reinforces that stereotype in my mind.

                                                                  On the other hand, the post also introduced me to a bunch of ideas I wasn’t familiar with; CQRS isn’t just CQS, and “event sourcing” is related to object prevalence, but maybe isn’t quite the same (I’m not sure yet) but in any case has clearly been highly developed in the .NET world and is worth some study.

                                                                  1. 2

                                                                    And JPython (now Jython) started in the late 90s.

                                                                    1. 1

                                                                      Right! Thanks! I should have thought of that, since I actually use Jython daily.

                                                                    2. 2

                                                                      Did you know about those before or did you look them up? I had no idea they existed either.

                                                                      1. 3

                                                                        I remember people wanting something better than Java on the JVM almost from the word “go”. And yet, here we are.

                                                                        1. 2

                                                                          Jacl was ahead of its time. I would expect *nix devs to know or guess there was something on the JVM in that space before .net, even if they couldn’t name a specific example.

                                                                          1. 1

                                                                            I knew about those before. I saw people trying out Kawa in 1998 or so. A friend of mine tried to do a thesis on compiling Perl to JVM bytecode around that time, too.

                                                                            1. 2

                                                                              Oh, that’s cool. I just don’t think “knows about jacl” is a good bayesian predictor of windows dev vs unix dev. :)

                                                                              1. 1

                                                                                Well, as the article says, Windows programmers tend to be Windows-programmers, while Unix programmers tend to be non-hyphenated programmers, so “knows about X” for a wide variety of Xes is probably a good Bayesian predictor of that :)

                                                                        1. 2

                                                                          These are gorgeous, and great candidates for #smallisbeautiful.

                                                                          1. 11

                                                                            Towers of Hanoi seems eminently studyable: the kind of interview question where if you’ve memorized the standard answer, or just the trick (“solve Towers of Hanoi with recursion reducing the size of the stack of discs”), you’ll ace the question, but if you have to figure it out from scratch, it may take you an arbitrarily long time, even if you’re super smart. Worse, it’s a problem which never comes up in practice, unless the temple in Kashi Vishwanath actually existed at some point.

                                                                            For these reasons I think it’s probably a bad interview question.

                                                                            1. 2

                                                                              Was ‘towers’ actually an interview question? Or was it just something the OP went deeper into after mentioning recursion in simple interview questions?

                                                                              1. 1

                                                                                That’s what I thought of it, too.

                                                                              2. 1

                                                                                I feel this way about dynamic programming questions in general. Know the trick and/or study the ten or so archetypical questions, breeze through the interview. But there’s little chance you’ll derive the optimized solution from first principles. In either case the signal the interviewer get from the interview is pretty much worthless.

                                                                                1. 1

                                                                                  I want to point out that Towers of Hanoi is not normally solved via dynamic programming.

                                                                              1. 10

                                                                                A good effort, but I don’t find many of these to be counterintuitive the way the popular JavaScript one is. Could just be my familiarity with Python, though.

                                                                                1. 2

                                                                                  Well, the False ** False == True stuff did surprise me a bit, because I didn’t know that arithmetic functions worked on bools, and the Mixing numerical types part, but other than that it’s pretty obvious behaviors.

                                                                                  1. 3

                                                                                    True and False mean 1 and 0, respectively. They were added to the language relatively late, after C-style integers-as-booleans had been established and was conventional. And by “mean”, I mean “are literally aliases for”, e.g.

                                                                                    >>> True * 10
                                                                                    10
                                                                                    

                                                                                    Of course, that’s still worthy of a wat. Even more wat is that this is something they didn’t fix while breaking things for Python 3.

                                                                                    1. 10

                                                                                      They aren’t literally aliases, no. The bools are different objects with different behavior from their similar integers; for example, they convert to strings differently:

                                                                                      >>> (str(True), str(1))
                                                                                      ('True', '1')
                                                                                      

                                                                                      They just convert to those integers for arithmetic.

                                                                                      1. 2

                                                                                        It’s true that bools are not literally aliases of int 1 and 0, but it’s very close, and they don’t convert to them. They sort of literally are them.

                                                                                        >>> True == 1 and True != 2  # True really is just "1"
                                                                                        True
                                                                                        >>> ['a', 'b', 'c'][True]  # just 1..
                                                                                        'b'
                                                                                        >>> True is 1  # but still short of an alias
                                                                                        False
                                                                                        >>> True is True and 1 is 1  # python ints and bools are singletons
                                                                                        True
                                                                                        >>> True.numerator  # wat
                                                                                        1
                                                                                        >>> isinstance(True, bool)  # of course, but
                                                                                        True
                                                                                        >>> isinstance(True, int)  # AHA!
                                                                                        True
                                                                                        
                                                                                        1. 4

                                                                                          Yes, but that’s not literally are them. :)

                                                                                          Also, Python ints aren’t singletons; it’s just that some of them are cached:

                                                                                          >>> 10000 + 10000 is 20000
                                                                                          False
                                                                                          
                                                                                  2. 2

                                                                                    @journeysquid, a lot of them I could see being crazy looking if you were new to programming. After doing this for several years, though, most of these seem pretty logical to me.

                                                                                  1. 8

                                                                                    Or use cut.

                                                                                    # Only display 80 columns:
                                                                                    grep whatever myfile  |  cut -c 1-80
                                                                                    
                                                                                    1. 9

                                                                                      Ignoring the 2edgy schtick below, there is a good point to be made about learning the tools we have.

                                                                                      I watched a pretty good developer write ~50-75 lines of C# to iterate through all files in a directory, open only those ending in .XML, and change <foo>bar</foo> to <foo>baz</foo>. This took him about 15 minutes, between reading the manual (was String.Replace needle, haystack or haystack, needle…), testing it, etc. He was stunned when I showed him that the Cygwin shell on his Windows box let him do this in literally one line.

                                                                                      I also remember being schooled by an old UNIX-head who, after seeing my hand-rolled Ruby based data transformer, proceeded to bang out one that was faster, more robust, and probably a tenth of the code with judicious use of paste, cut, tr and sed.

                                                                                      There’s nothing wrong with reimplementing a tool for the purposes of learning, for sure - but I think lots of people could benefit from digging in to the tools we’ve got at hand and learning them well before writing something new.

                                                                                      1. 3

                                                                                        I went through a period of using the traditional Unix tools for as much as possible, and while I still have a soft spot for them, I’ve found myself not really using them much anymore for new projects, for a few reasons:

                                                                                        1. The base set of standard and quasi-standard tools has some really awkward omissions. Something like Google’s crush-tools can fill some of the holes, but the base Unix set doesn’t really come “batteries included”.

                                                                                        2. Too much data copying through pipes can sometimes cause poor performance (though it depends a lot on what you’re doing). You can sometimes spend all your time just pushing terabytes of data through pipes. This is exacerbated if you end up having to make diamond-shape flows in your pipeline with tee and paste/join to get the desired semantics, or else have to insert sort and reverse in various places to munge data in the way a subsequent call wants. Especially common if you don’t use something like crush-tools and insist in sticking to base POSIX functionality, but it ends up sometimes necessary even with the addition of niceties like funiq.

                                                                                        3. Base performance is often not great, unless you’re comparing to something really slow. I’ve even found Perl to be faster than the awk/sed/tr combination for many things, and Perl isn’t really a speed king. Also, performance varies hugely between implementations and platforms, which adds another annoyance if you run stuff on more than one platform: your stuff can speed up or slow down by 10x because you moved from GNU/Linux to FreeBSD or vice versa. This is all especially bad if you want Unicode support. If you don’t, the LC_ALL=C hack can often make things more reasonable.

                                                                                        4. Entirely subjective, but once you get past one-liners, I find the scripts and pipeline chains more difficult to read and maintain than a program where you get actual data structures. I have to have comments everywhere reminding myself that at a particular point in the pipeline, the data is sorted numerically by column 3, and by the way what’s in columns 1, 2, and 4 here anyway? When we paste some things that had to be teed for separate processing, are we sure that the two sides of the paste are sorted the same way so we’re not making Frankenstein records? Etc.

                                                                                        Those are all of course less of a worry if you’re doing small-scale, one-off stuff though.

                                                                                        1. 2

                                                                                          Indeed. That said, I believe using Cygwin on Windows to do regexp replace is no less an “anti-pattern” than using C#. Modern Windows ships with a robust shell (PowerShell) that can do such things easily. Additionally, for a good C# developer it gives access to the power of .net they already know and (maybe) love.

                                                                                          Installing a beast of a package to emulate an environment you are more comfortable with feels little better than using C#, and is suffering from the same problem of “not learning the right tool for the job {on the platform}”. For a long time I fought learning PowerShell because I am an old grumpy graybeard, but in the end I realized how ridiculous I was being – that would be like refusing to learn paste, cut, tr and sed on Linux. Being willfully ignorant or the tools your platform provides is silliness. So, I uninstalled my crutches on Windows and learned PowerShell – and now on a random Windows box – I have console tools I can use – no installations needed.

                                                                                          foreach ($file in (gci . *.xml -r)) { (gc $file.PSPath) | foreach { $_ -replace “<foo>bar</foo>”, “<foo>baz</foo>” } | sc $file.PSPath }

                                                                                          1. 1

                                                                                            Brilliant!

                                                                                            I’ve dodged Windows work for a while, but when I finally have to bite that bullet I’m happy to see that there’s a wonderfully expressive set of console tools there.

                                                                                          2. 2

                                                                                            “Digging in to the tools we’ve got at hand” is literally a never-ending task, and you’d never build anything if you stopped to do that before writing something new.

                                                                                            I’m all for people getting familiar with the /usr/bin of their particular distribution, but let’s remember the significant variance of implementations of those “standard” tools between distributions… many developers like to idealize just how good/reliable/standard the unix toolset is.

                                                                                            The thing I like about building things in shells / command-lines is that there’s absolutely nothing wrong with building a handy utility like the OP’s. And we needn’t dismiss it as a “learning project” - it’s working software - kudos to the author.

                                                                                          3. -10

                                                                                            I was just about to write it. I can’t +1 your comment more. ^^ To completely replace “sll”, use:

                                                                                            cut -c 1-1024

                                                                                            Are people really this retarded not to come up with just using the tools provided by the system? Where have we gone? …

                                                                                            EDIT: I think this is just a troll. Let’s just move on. :P

                                                                                            1. 11

                                                                                              kb is right that your tone is abusive and dismissive, even though your comment does contain a useful, if redundant with jlarocco’s comment, implementation of sll. Your comments will be more welcome in the future if you leave out the personal abuse and name-calling (“Are people really this retarded”, “dirty bunch”, “Cultural Marxist”, “SJW’s”) and indirect personal abuse by implication (“Where have we gone?”, “Crying like a sissy”, “the glibc-devs…are scared of simple…interfaces”) and dismissal of people’s learning process as “just a troll”.

                                                                                              Please don’t write such comments here any more. Instead, write better comments that don’t include personal abuse.

                                                                                              1. 8

                                                                                                Good day FRIGN.

                                                                                                I’m glad to see /u/sin invited you to lobste.rs. I’ve gotten a lot of value out of suckless.org, and I appreciate being in the same community as a member of that site. Given how productive I’ve found suckless.org to be, I’m surprised by how unproductive you recent comments are here.

                                                                                                I’ve had the experience of searching for a piece of software, only to find some projects that sucks so bad they are fully expressed as a configuration switch somewhere else in my stack. Why would someone waste so much time writing useless garbage like that? Well, even I write useless garbage, and doing so was an incredible learning experience. On par with what I’ve learned browsing suckless.

                                                                                                You and I are both well aware that all software sucks, and all hardware sucks. It’s not what we’re here to debate. Please make this site better for your participation by improving the quality of your comments, as I’d love if you would continue to contribute to this site with us.

                                                                                                1. 6

                                                                                                  Further, please don’t use the word “retarded”, it’s offensive to many people, including me. Your tone and the words you choose are not fostering a welcome community or advancing the discussion.

                                                                                                  1. -10

                                                                                                    Live with it.

                                                                                                  2. 5

                                                                                                    Hey, no, it’s not a troll. Just recognized a problem and wrote a solution for it. I added a section to the README where you can add your own implementation: https://github.com/kevinburke/sll#other-ways-to-implement-this

                                                                                                    Don’t forget to call it “pointless” in your PR

                                                                                                1. 24

                                                                                                  Wait. “He might squish you without ever even noticing.” is “advocating for physical intimidation and violence”? I thought the problem was Linus was a dick, but the problem is he made a joke?

                                                                                                  I guess I shouldn’t trust this article either (though it does have the benefit of actually quoting and linking sources) but I can’t quite bring myself to research it further.

                                                                                                  (For the record, I don’t think “sjw” is a productive term. This would come across as more balanced without the labeling.)

                                                                                                  1. 25

                                                                                                    As others have noted, this is a one-sided cherry pick of dozens of conversations over a long time. It does link, further down, to another of Sarah’s posts - http://marc.info/?l=linux-kernel&m=137391145411685&w=2 - where she links to examples of Linus being abrasive in general. I don’t think this is over any single incident. The mailing list archives are public, of course, if people really want to individually dig through them…

                                                                                                    1. 9

                                                                                                      Something I’ve learned after observing a few incidents is that it’s counter productive to omit details to avoid drama. Yes, people will nitpick and say “not that bad”. But allowing the “other” side to identify and frame the incident means they get to say “not bad at all”.

                                                                                                      1. 8

                                                                                                        That’s a useful insight. It’s so frustrating, also, to be dragged into the trenches to bitterly dispute the smallest things, over and over, and know that for every day it drags on, a certain percentage of additional people are going to decide they’re angry at you forever. It feels like this wasn’t always how the world worked, but that was probably youthful naivete…

                                                                                                        But that sounds correct, that trying to avoid conflict is counterproductive if there’s someone who’s determined to pursue it.

                                                                                                        1. 10

                                                                                                          I don’t mean to suggest ongoing engagement. Consider:

                                                                                                          Alice says something bad happened in vague terms. Bob counters “here’s what really happened” with verifiable details. Bob is more credible.

                                                                                                          Alice says something bad happened, but provides a fair bit of detail. Bob counters “you said this happened ‘early last year’ but it was actually July and that’s the second half”. This is the kind of petty disagreement I’ve seen a lot, and which I’m sure frustrates you. But this doesn’t require Alice to explain. From the outside, it’s apparent if Bob had a good argument, he wouldn’t focus on such small details. He is, if anything, adding credibility to Alice’s account.

                                                                                                          1. 5

                                                                                                            This wasn’t always how the world worked, and it still isn’t how most of the world works. We can decide what kinds of communities we want to create and participate in.

                                                                                                      2. 34

                                                                                                        For the record, I don’t think “sjw” is a productive term.

                                                                                                        I’ll go much further than that: I’ll happily ignore anyone who uses it non-ironically, as they are either arguing in bad faith or hopelessly ignorant of social issues.

                                                                                                        1. 8

                                                                                                          Are you claiming that the cluster of positions doesn’t exist? Or that the term is a poor label for it? Or just that anyone using the term is likely to disagree with you?

                                                                                                          1. 17

                                                                                                            Like many exonyms it’s used to label the “other” and implies some mix of disagreement and deliberate misunderstanding.

                                                                                                            1. 7

                                                                                                              The term was originally an inside one, no?

                                                                                                              Any term for a group is othering. I don’t see how SJW is qualitatively different from socialist, emo, fundamentalist, yuppie, quaker, millenial, or any number of terms we seem happy with.

                                                                                                              ((And all the proposed alternatives I’ve seen are too far from neutral. My dad objected to being called “Roman Catholic” - as far as he was concerned he was just “Christian” and his church was just “the Church”. But Protestants quite rightly refused to go along with that.))

                                                                                                              1. 5

                                                                                                                No, I wasn’t there to see but I’ve been told it was never an inside term. Attempts to claim it do exist (“social justice rogue”, “social justice healer”), which if anything I take as confirmation nobody identified with it until it was imposed.

                                                                                                                1. 2

                                                                                                                  “Fundamentalist” was originally an endonym; “Quaker”, “yuppie” originally exonyms. I’m not sure about “socialist”, “emo”, or “millennial” (I suspect @lmm just invented “millenial”.) I don’t know where “SJW” came from for sure, but certainly the people I saw use it first were using it pejoratively.

                                                                                                                  I don’t think endonyms can plausibly be said to be inherently othering, although it depends on circumstances. I still wouldn’t dare to use “nigger”, and I’m still wary of “queer”.

                                                                                                                  1. 5

                                                                                                                    “Millenial” is an exonym that has become understood by the group it references because of how many headlines it’s appeared in, I’m sorry to report. It’s really explicitly an exonym, because those articles are written very much for an audience who identifies as not-millenial, and wants to hear about how the kids these days are on the wrong lawns and so on.

                                                                                                                    1. 2

                                                                                                                      “millenial” was a typo yeah. I blame my phone.

                                                                                                                      They were just a bunch of group labels that came to mind; most of them I have no idea myself whether endo- or exo-. It doesn’t seem to make much difference though, at least as far as I can see. (Indeed I can’t tell which you’re saying “nigger” is).

                                                                                                                      1. 2

                                                                                                                        I thought maybe you meant people who drove the Mazda car.

                                                                                                                        1. 2

                                                                                                                          Oh - I belatedly realized there was a spelling issue. :)

                                                                                                                          I’d say that exonyms are almost always for the purpose of othering, but that whether it’s harmful to use the term is a separate question that depends on the power dynamic. If I spend a long time writing complaints about “multi-billionaires”, I don’t think it could be argued that I’m hurting anyone but myself.

                                                                                                                          1. 1

                                                                                                                            Oh, I failed to answer your question. “Nigger” originated as an exonym (obviously) for African people and is now used almost exclusively by African-Americans, though not exactly endonymically, plus the occasional bigoted white person who uses it pejoratively.

                                                                                                                      2. 3

                                                                                                                        Oh, maybe. I usually see “SJW and proud of it” as taunting or trying to reclaim it. Perhaps it works as an ingroup label, but less so when outsiders try to apply it.

                                                                                                                        If I needed a pejorative, I’d probably go with “cry baby” or perhaps “busybody”, something that attaches more to actions than political alignment. If I need a positive label, I’m not sure what I’d use. Perhaps “people”. I guess it depends on what I’m trying to say about them, or why they need to be identified.

                                                                                                                    2. 4

                                                                                                                      It depends on what you think people mean by it.

                                                                                                                      In my experience, people who attempt to justify it will give one of two definitions: it’s either “people who are too strongly in support of social justice” (which is IMO a contradiction in terms) or “people whose pursuit of social justice is in bad faith or in fact works against it” (which is an exceedingly small group of people).

                                                                                                                      Regardless of how they try to define it, the way it’s actually used is almost always “anyone with more leftist tendencies than me”, irrespective of the point of reference (in my experience, typically right-wing at least as far as feminism and anti-racism go). Whether the group of people the stated definition applies to actually exists is beside the point, because the set of people who may be labeled “SJW” is the overwhelming majority of people everywhere. Thus in terms of criticism of the term itself, I guess I would say it’s completely meaningless, and the person using it is revealing far more about themselves than whoever they’re trying to label.

                                                                                                                      1. 6

                                                                                                                        Any attempt to draw a line on the political spectrum is vulnerable to the same criticism. There’s some truth to “anyone to the left of me is a socialist, anyone to the right of me is a fascist”. Or indeed to “we’re all Keynesians now”. But that doesn’t make the terms meaningless.

                                                                                                                        I guess I just haven’t seen any slipperiness of the term in practice. Even if there’s no formal definition, I think everyone means the same thing when they say “SJW”. I haven’t seen people getting confused and talking past each other. Nor have I seen anyone saying “I’m not an SJW, those guys are the SJWs” - I’ve seen people who objected to the term, or even claimed it was meaningless, but they always seemed to understand it perfectly.

                                                                                                                        1. 6

                                                                                                                          There’s no attempt by anybody to make “SJW” into a “line on the political spectrum”. I’ve seen it applied to people all over the political spectrum, including some fairly hardcore conservatives who happened to make the mistake of expressing an insufficiently unsympathetic opinion. (As an example, m00t was declared an SJW when he kicked Gamergate off of 4chan because they were flooding it with material he considered off-topic or against the rules.)

                                                                                                                          And I know exactly what people mean when they say “SJW” (namely, “person expressing even slightly more sympathy or empathy than I do”). I don’t mean “meaningless” as in “poorly-defined”, rather as in “not useful”. In actual definition, it might as well be a synonym for “person”, which hardly needs more synonyms. The person using it has done little more than place themselves on the political spectrum (to the right of whoever they’re attempting to label) while making a very blatantly unjustified attempt to discredit their opponent.

                                                                                                                          1. 7

                                                                                                                            Yeah, I mean, fundamentally, the biggest issue with the term is that it’s saying “you have the view you have just expressed” as if that’s a way of dismissing that view by proving it unimportant or something. :)

                                                                                                                            1. 2

                                                                                                                              That is… much conciser than anything I’ve written so far, thanks. =)

                                                                                                                              My point is that by making this non-statement, people have only said anything about themselves, and it’s nothing that indicates they should be paid any attention.

                                                                                                                              1. 2

                                                                                                                                No problem, haha, I’ve given it some thought. :) And yes, I agree.

                                                                                                                            2. 4

                                                                                                                              Spectrum is a simplification, sure. Not everyone on the economic right is religious. Not every anarchist is on the left, or on the right. Localism draws from all over the political spectrum. Still these are positions with meaning.

                                                                                                                              I don’t know why you’re classifying moot as a hardcore conservative (well, I can guess maybe his views on gun legislation?). What I’ve read of his has been pretty nuanced, Free speech isn’t a left-right thing, at least traditionally - the culture 4chan is most reminiscent of, at least for me, is that of a proto-Internet system belonging to Whole Earth, hardly a hardcore conservative group.

                                                                                                                              And his actions regarding Gamergate were an enormous departure from the preceding nine years of 4chan - to an outsider, banning a subject probably doesn’t sound like much, but it had literally never happened before, and the absence of rules like that was in many ways a defining characteristic of 4chan. Heck, moot explicitly compared Gamergate to Project Chanology - which was never even close to being banned. Banning Gamergate discussion was probably his biggest public political act; it’s absolutely fair to infer that he feels pretty strongly about it, and likely has similar views on other issues to other anti-Gamergate folk. Which is to say, SJWs.

                                                                                                                              Again, “conservative” or “socialist” is equally well just “person to my right or left that I want to discredit”, or indeed “you have the view that you have just expressed”.

                                                                                                                    3. 16

                                                                                                                      Here’s a thing which is probably clearer: Linus did at some points call for people to be retroactively aborted, that means - wishing for their death. Obviously, he will never be able to get his wish (or even actually have a real desire), or hire someone to at least make sure that error is “corrected”.

                                                                                                                      Still, wishing someones elses death is a spitting insult across almost all cultures. It cuts to the very core of a personality (its existence and protection from harm). This is the nuke of insults. Wishing someone physical harm is at least the artillery. To anyone who has ever experienced physical harm, doubly so. It’s a well documented strategy of intimidation to never actually follow through any threats. Threats already work well without that.

                                                                                                                      The great thing about insults is that you can play the “but it’s just a joke” card as often as you want and leave insecurity at the other side. In a circle of friends, that works somewhat, in a public forum, it doesn’t. There is a reason why diplomats take every insult for face value: it’s the only way to provide clarity and stop the joking-game. If Linus wants to make a joke to another maintainer, he can still resort to the backchannel where these things can be clarified easier if needed.

                                                                                                                      1. 1

                                                                                                                        Was he being literal, or just hyperbolic, theatrical, and angry? I suspect the latter. It certainly doesn’t sound like a joke - more like an over-the-top expression of frustration. People may reasonably disagree with this as an expression of culture, but it seems like enough of a consensus has formed that this is the culture of Linux kernel development, for better or worse.

                                                                                                                        1. 3

                                                                                                                          Does that make a difference? It causes the same damage no matter whether he meant to or not.

                                                                                                                          1. 2

                                                                                                                            If someone is upset by it, they should probably seek clarification from the person who said the thing that they were upset by. If it wasn’t personal or literal, how could someone be bothered by it? Especially an experienced LK contributor who knows how rough-and-tumble that culture gets?

                                                                                                                            (That being said, I’m not part of the LK culture so I’m not going to claim the right to prescribe how things should go there. That’s for the group members to decide, based on their status and weight within the group.)

                                                                                                                            1. 3

                                                                                                                              It’s really not about individuals being offended or not; it’s about the effect it has. Especially when it’s the founder of a community who speaks like this, it sends a strong message about what behavior is tolerated in that community.

                                                                                                                              I do agree that people outside that community don’t get to decide what happens in it. But nobody’s trying to do that - people are leaving, and apparently starting their own efforts which they intend to run differently.

                                                                                                                              1. [Comment removed by author]

                                                                                                                                1. 2

                                                                                                                                  Let me be clearer: Offense is the wrong metric. Who is offended and how much, has nothing to do with what is wrong here.

                                                                                                                                  I don’t think I expressed any view that was even an argument at all, let alone on anyone’s behalf - my own or anyone else’s.

                                                                                                                                  I’m baffled by this question at several levels.

                                                                                                                        2. -11

                                                                                                                          Pro-Choice advocates will tell you a fetus is not a human. Thus he didn’t wish their death. It’s more like he wished they’d never existed.

                                                                                                                      1. 2

                                                                                                                        I love these sorts of papers: reasonably short explanations of interesting algorithms. There are lots of these papers from the 60s and 70s. I’ve found they became more long-winded later on. (Maybe I’m suffering from too much nostalgia. I’ve no idea.)

                                                                                                                        The reason I love them is that they are great programming exercises, especially when you want to try using a different language. They tend to be sufficiently complex so that the exercise it not trivial, yet not too large as to warrant having to learn extensive APIs.

                                                                                                                        1. 3

                                                                                                                          rpg’s 2012 reflections on the paradigm shift in programming language papers ,as reflected in Bracha & Cook’s choice of what to focus on and what to elide in their 1990 mixins paper, is probably relevant to that. After about 1985 or 1990, I suspect that the kinds of papers you like to read became unpublishable; rpg says:

                                                                                                                          In the 1990s it seemed to me that scientists in the programming community pulled back the welcome mat from engineers. I noticed that the kinds of papers that could be published then were different from when I was publishing at a good clip in the 1980s. By the mid-1990s it was clear that a paper like Moon’s from 1986 [describing the Flavors OO system CLOS was based on] would never be published at OOPSLA or any other programming language conference.

                                                                                                                          It would be nice to have a functioning world of hackademia where this kind of thing can get published again, even if not in traditional paper form, in order to get engineers to put in the work needed to produce really understandable descriptions of their inventions. What would that look like? Like CodeCon? Usenix? GitHub? Some kind of combination?

                                                                                                                          1. 1

                                                                                                                            I don’t have an answer, but it’s a good question.

                                                                                                                        1. 22

                                                                                                                          I’d be interested in working on a fork of Linux where developers treat each other like human beings.

                                                                                                                          1. 10

                                                                                                                            Not being glib here, but you could always take a look at one of the BSD’s. It seems that for whatever reason (median age? enterprise influence? licensing ethos? smaller size?) the various communities seem a bit more civil. I say seem because it could just be my own perception here.

                                                                                                                            1. 9

                                                                                                                              The BSD communities are less in the limelight. They have similar problems, too. See for example here or here. Both these tweets were reactions to Sarah’s post & mjg’s fork.

                                                                                                                              1. 6

                                                                                                                                A “tweet” is by nature pretty one sided. “Threatening lawyers” is generally fairly serious though! Will certainly be interesting to read more about it if it ever comes to light.

                                                                                                                                edit: Thanks for the links – I would probably have never run across them otherwise.

                                                                                                                                1. 9

                                                                                                                                  Randi Lee Harper is the girl who cried wolf. She has a history of joining groups, vocally advocating for them, and when something doesn’t go her way, she makes the biggest stink that she can across the internet. I had sympathy for her the first time.

                                                                                                                                  Times #2 and #3 I did not.

                                                                                                                                  1. 13

                                                                                                                                    There’s so much disinformation that I’m not prepared to condemn her. I mean, yes, the story of contemporary civilization, and of online arguments in particular, is “this is disputed so bitterly that it’s impossible to decide, so we might as well believe the people we like”. But understanding that pattern doesn’t defeat it, which is why it’s had so much success in every corner of politics and online life.

                                                                                                                                    It sounds like you’ve been following what she says and does closely, in which case you may actually be in a position to have an opinion. I haven’t and am not; I don’t think it’s worth the spoons in this particular case.

                                                                                                                                    1. 8

                                                                                                                                      Feel free not to read this if you think it will cost you too many spoons. It contains descriptions of online bullying.

                                                                                                                                      I found out about her autoblockbot when I was added to the “sjwautoblocklist” because I followed too many “SJWs”. This is of course correct, since I am an SJW, born and raised.

                                                                                                                                      My experience with her was that I very politely suggested that maybe autoblocking people based on who they listen to might have some corrosive effects on online discourse, so maybe we should explore other criteria, and that my understanding was her autoblocking software worked by blocking people based on who they listen to, although I was happy to be corrected if I had misunderstood. She responded by flaming me; the note about how I was happy to be corrected if I had misunderstood yielded an accusation of not bothering to read and understand before criticizing, but no actual corrections. As far as I know, my understanding was exactly correct at the time. Then she sicced her followers on me, and Twitter was unusable for me for several days; every day brought new accusations of all manner of uncouth behavior upon me, based, as far as I can tell, upon nothing at all.

                                                                                                                                      And make no mistake: this was not “you are doing something objectionable” criticism I was receiving, right or wrong; this was “you are a repulsive person” toxic abuse.

                                                                                                                                      I would not be willing to be involved in any project where the opinions of people like Randi are treated with respect, because my experience has shown me that their opinion can go from zero to witch-hunt in a matter of minutes, in retaliation for the mildest of criticism. Nobody can be safe in a place like that. It creates a Game-of-Thrones-like environment where your friends could turn on you at any moment.

                                                                                                                                      Even posting this here now, I was afraid because I don’t know what kind of reaction it’s going to provoke. Am I going to get flamed for it? Will Irene, whose opinion I value, decide that I’m propagating “disinformation”? Are people going to read it and stop talking to me? Will I ever know? But I feel that it’s worth the risk.

                                                                                                                                      Hopefully this episode will make me think twice in the future before harshly criticizing people based on my fallible interpretation of their behavior, which is something I’ve been guilty of myself many times in the past.

                                                                                                                                      1. 1

                                                                                                                                        I need spoons…for my eyes…because of the use of random bolding in your post. :)

                                                                                                                                        Sorry about that other nonsense though–hope things get better!

                                                                                                                                        What’s the sjwautoblocklist? I wasn’t aware of a blocklist against SJWs…the noise has typically been from the opposite direction.

                                                                                                                                        1. 1

                                                                                                                                          It was a fork of Harper’s code with a different seed list. It was banned from GitHub fairly rapidly.

                                                                                                                                          I didn’t mean to damage your eyes! My best wishes for a speedy recovery.

                                                                                                                                      2. 1

                                                                                                                                        Spoons…as in the “daily supply of spoons” theory?

                                                                                                                                        1. 7

                                                                                                                                          Yes, as in spoons theory. It’s an accurate description of many people’s experience, especially those of us with serious mental health conditions. I find it to be an amazingly helpful vocabulary that abbreviates what would otherwise be a lengthy explanation about the real need to balance the costs of emotionally intense activities. Especially because it’s now widely enough used that people can discover what I mean if they haven’t heard it before, which wasn’t always the case. :)

                                                                                                                                          1. 1

                                                                                                                                            The only thing I dislike about that theory is that it seems to imply that you’ll never get more spoons.

                                                                                                                                            We should all try to get more spoons. :)

                                                                                                                                            1. 4
                                                                                                                                              1. 3

                                                                                                                                                As an autist, I deal with both spoons and having to reticulate splines: Splines Theory: A Spoons Metaphor for Autism. But yes, everybody’s brain works differently and it does make sense to talk about these different kinds of mental and emotional resources. :)

                                                                                                                                              2. 2

                                                                                                                                                You get a new allotment of spoons after you sleep, but the problem is that you can end up with spoon debt and then sleeping does not completely recharge you.

                                                                                                                                                Living with someone with a disability, she considers spoon theory a good description of what happens to her.

                                                                                                                                        2. 5

                                                                                                                                          If it’s true that FreeBSD has 0.5% female participation below the 2% average for other free projects, this doesn’t sound like crying wolf to me.

                                                                                                                                          1. 1

                                                                                                                                            Do we have any sources for those numbers?

                                                                                                                                            1. 3

                                                                                                                                              source

                                                                                                                                              Have a go at counting: https://www.freebsd.org/doc/en/articles/contributors/staff-committers.html

                                                                                                                                              I know some people hate it at a source, but actually, the geek feminism wiki is full of links to sources and quotes 3%: http://geekfeminism.wikia.com/wiki/FLOSS

                                                                                                                                              Also note that while there is a tremendous upswing, the Linux community is lagging behind.

                                                                                                                                      3. 5

                                                                                                                                        OpenBSD was forked from NetBSD because of a disagreement within the community. Theo De Raadt, the OpenBSD dictator for life, is famous for his controversial and sometimes aggressive and anti-social comments. His Wikipedia page has “Known for: …, his personality, …” in the sidebar.

                                                                                                                                        Despite their conflicts with a handful of the hunderds of developers they interact with, they have both managed to steer an open source project towards progress and success for decades, and have built a community around those projects.

                                                                                                                                        I’m not sure you’ll find a big, long-lived project that hasn’t had these kind of conflicts in its history.

                                                                                                                                        1. 6

                                                                                                                                          Ruby is very well known for having a considerate, thoughtful and friendly leadership.

                                                                                                                                          The argument that it wouldn’t be possible to steer a project of that size without that personality stands on very poor footing - it only works by picking the right examples and ignoring all others.

                                                                                                                                          1. 13

                                                                                                                                            And yet if you asked me “community most likely to give presentations featuring pictures of pornstars”, ruby would top the list. But I suppose at least they’re nice about?

                                                                                                                                            1. 5

                                                                                                                                              I think that was Rails, wasn’t it? Granted, the two are pretty closely grouped in the larger software community and Rails is famously bad, so I think it’s pretty fair for Ruby to catch some splash damage from the flak that Rails gets. Nevertheless, it’s better to keep our criticisms on point and precise where possible.

                                                                                                                                              1. 3

                                                                                                                                                When we’re talking projects, I don’t think the splash damage is warranted. When we’re talking community, I’m on your page.

                                                                                                                                                Still: where’s the Linux projects teaching network for marginalized spanning 160 chapters and raising enough from community members to pay ~20 full time positions for a summer? Where are the Linux people trying to get new things running, like mentoring every speaker at a conference?

                                                                                                                                                Oh, right. That’s @outreachy - which is in a tough spot now, sadly.

                                                                                                                                              2. 3

                                                                                                                                                1) we’re talking projects, this person wasn’t part of the Ruby project at any point

                                                                                                                                                2) this will stick around forever, will it? I don’t want to down-talk the incident (or any other), but currently, the Ruby community doesn’t seem better or worse then any other in that regard.

                                                                                                                                                3) the fact that Ruby is one of the rare communities where the number of 40% non-white-male attendance (not speakers) can be reached falls a bit under the table

                                                                                                                                                1. 4

                                                                                                                                                  All fair. My comment was about perception, not reality, and community, not leadership. Maybe that was too far afield? (And a bit of a cheap shot.) I guess the question (which I don’t know the answer to) is “can I become a contributing ruby developer without engaging with these people?” Or, rephrased, how much difference does it make whether it’s coming from “leadership” or others?

                                                                                                                                                  1. 5

                                                                                                                                                    Or, rephrased, how much difference does it make whether it’s coming from “leadership” or others?

                                                                                                                                                    In my experience, a lot. That’s a tough pill to swallow once you advance to those positions, but sadly (or luckily?), it changes the frame of reference people perceive you in. If you appreciate that, it can be a very powerful motivator.

                                                                                                                                                    People in “higher” places can convince people or drive them away very easily, sadly.

                                                                                                                                                2. 3

                                                                                                                                                  You’re thinking of Rails, which is founded by the famously narcissistic David Heinemeier Hansson. That’s most of the Ruby community at this point, but not the leadership.

                                                                                                                                        1. 9

                                                                                                                                          Specifically, they’re considered unsafe because the authors' experience computing a freestart SHA-1 collision on Kraken (not me, a cluster named Kraken) led them to a cost estimate of US$173k to compute a real SHA-1 collision, which is cheap enough that e.g. the intelligence services of Iran, China, Russia, USA, or el Chapo Guzmán could probably compute one.

                                                                                                                                          This comes as a big surprise to me because I wasn’t expecting this for several more years.

                                                                                                                                          1. 2

                                                                                                                                            Substantially cheaper if you own a cluster already and don’t need to rent the time from Amazon.

                                                                                                                                            1. 1

                                                                                                                                              I’m not sure the difference is substantial. Maybe a factor of two or three, or maybe sub-unity. People build their own clusters for lots of reasons and with a wide variety of levels of effectiveness, and some actually existing clusters are actually more expensive to run than renting the time from Amazon.

                                                                                                                                            2. 2

                                                                                                                                              led them to a cost estimate of US$173k to compute a real SHA-1 collision

                                                                                                                                              I believe their estimate is actually $75k-120k. $173k is Bruce Schneier’s standing estimate, mentioned on that page for contrast.

                                                                                                                                              1. 3

                                                                                                                                                Critically that was Schneiers estimate for cost in 2018. iirc he was predicting around 750k today.

                                                                                                                                                That’s an order of magnitude less…

                                                                                                                                                1. 1

                                                                                                                                                  Oh, thank you for the correction!

                                                                                                                                              1. 1

                                                                                                                                                On reading further, he wrote Yosys (the Verilog synthesis tool) because nothing else out there, including Icarus Verilog, came close to what he needed. The Yosys manual says,

                                                                                                                                                Due to the author’s preference for Verilog over VHDL it was decided early on to go for Verilog instead of VHDL 2. So the existing FOSS Verilog synthesis tools were evaluated (see App. ??). The results of this evaluation are utterly devastating. Therefore a completely new Verilog synthesis tool was implemented and is recommended as basis for custom synthesis tools. This is the tool that is discussed in this document.

                                                                                                                                                Unfortunately I don’t know what App. ?? is. Nothing promising appears in the table of contents or bibliography. It seems to have been the deleted Appendix E. There’s a hint early on, though:

                                                                                                                                                Many FOSS tools that claim to be able to process Verilog in fact only support basic structural verilog and simple expressions.

                                                                                                                                                The Icarus Verilog FAQ has a more complete entry about this:

                                                                                                                                                Way back in the olden days, Icarus Verilog did indeed support synthesis, but that support has faded away. The last workable synthesis support was in versions 0.8. Starting in versions 0.9 to the current date, synthesis has been more or less dropped. It turns out that there is more than enough work to do catching up with the latest Verilog, SystemVerilog, Veriog-A/MS and VHDL to keep the current developers busy for the rest of our days. Combine that with a lack of real interest in workable synthesis in Icarus Verilog, and that FPGA vendors typically provide free synthesis tools, and the incentives are just not there.

                                                                                                                                                For an actively maintained open source Verilog synthesis tool, see yosys.

                                                                                                                                                Yosys itself looks very impressive indeed. An aside in appendix D:

                                                                                                                                                It might be worth noting, that SAT solvers are not particularly efficient at factorizing large numbers. But if a small factorization problem occurs as part of a larger circuit problem, the Yosys SAT solver is perfectly capable of solving it.

                                                                                                                                                1. 22

                                                                                                                                                  The whole message: http://marc.info/?l=linux-kernel&m=137390362508794&w=2

                                                                                                                                                  Using humor to advocate for a poor managerial style can still be advocating for that style. Humor gives the speaker a deniable position by later being able to claim they were “just joking around”. This humor is easy to see as consent–or at least implication–that this particular managerial style won’t be policed.

                                                                                                                                                  Sarah is correct. That behavior is unprofessional. Obviously.

                                                                                                                                                  1. 14

                                                                                                                                                    While what you say about managerial styles is true in the abstract, it isn’t applicable in this particular case. When Linus says, “The guy is a freakish giant. He should scare you. He might squish you without ever even noticing,” he is not deniably advocating that kernel contributors should “violence”, as Sarah said. We can infer this from the fact that there are no known cases in the last 24 years of one kernel contributor being physically crushed by another, nor of Linus physically crushing anybody, so this is not a management style that is currently in use in the project, nor one that Linus has experience with or an inclination for. Rather, Linus is making fun of Greg’s unusually tall body, using humor and countersignaling to decrease everyone’s level of discomfort with Linus and Ingo substantively criticizing Greg’s conduct, and also symbolically reasserting his dominance over Greg. (You’ll note that Greg didn’t respond by making fun of Linus.)

                                                                                                                                                    When Linus says, “You may need to learn to shout at people,” he is not deniably advocating that kernel contributors should use “physical intimidation”, as Sarah said. We can infer this from the fact that the subject at hand is people emailing patches to Greg from around the planet, which he normally answers by email, just like Linus and Ingo. It is deeply implausible that Linus might mean that Greg should respond to a patch by buying plane tickets, showing up at somebody’s office, and literally shouting at them in order to physically intimidate them. Rather, Linus and Ingo are advocating that Greg should be more critical of patches submitted to him, metaphorically “shouting” by responding to them more frequently with critical emails.

                                                                                                                                                    I recognize that you may be skeptical of the above analysis, but if so, I think you should take my word for it that you lack some basic skills necessary to understand what is happening in this mail thread. Continuing to argue that Sarah was right on these points will reduce your credibility in general. In fact, your best available move by far is to claim that you didn’t mean that Sarah was correct, perhaps because you were joking or because you weren’t talking about the obviously false claims of hers I picked apart in the above paragraphs.

                                                                                                                                                    Perhaps we should leave professional behavior to the clergy, judges, prostitutes, physicians, professors — actual professionals, whose role as often as not has been to institutionalize and defend forms of oppression — and instead try to behave like ideal hackers, recognizing the spark of brilliance in any work of ingenuity that comes before us, even if the author triggers some stereotype you are afflicted with — whether it’s women, or Indian people, or Chinese people, or autistic people, or insane people, or transgender people, or whatever, that you’re biased against. It’s not just laudable altruism; it’s the only way to not look like the idiot Postgres committer who argued against Meredith Patterson’s proposed contribution on the basis that she was a woman and therefore couldn’t possibly do it.

                                                                                                                                                    1. 9

                                                                                                                                                      I’d like to back you up here. I was chatting with someone who worked in a particular division of Microsoft quite some years ago - late 90s, I think - and he described the management style in a neighboring division as “fear and intimidation”. The specific example he gave is of a high-level executive who literally picked up his (large, CRT) monitor and threw it in rage at the wall to make his point. The executive did not get reprimanded for this. That is a physical intimidation move.

                                                                                                                                                      A management culture which intertwines with physical intimidation makes actionable threats (and plausibly carries them out on occasion). A management style such as Torvalds focuses on bluster, which is more impressive in the barking than the biting (although I find his legendary emails unpleasant myself and don’t care for bluster), and bluster is so well understood to be practically harmless that there is case law around it (although I can’t find it myself with a minute of Googling).

                                                                                                                                                      1. 3

                                                                                                                                                        Humor is ambiguous. If someone feels singled out, threatened, or hurt by the behavior of authority figures, can we blame them for calling out the behavior? Or leaving the community outright? How many smart hackers get turned away from the community because the effort needed to participate is too great because of natural human emotional responses?

                                                                                                                                                        My point was not to highlight the intent of Linus' actions, merely another way of understanding the damage it can cause. And I think that damage is obvious.

                                                                                                                                                        1. 4

                                                                                                                                                          Gina Linkins talk at ApacheCon 2015 How to Thoroughly Insult and Offend People in Open Source (video) highlights some of the research that shows the damage that poor behaviour can have on a community.

                                                                                                                                                        2. -6

                                                                                                                                                          No record of actual crushing perhaps, but certainly of violence. Remember ReiserFS?

                                                                                                                                                          1. 13

                                                                                                                                                            Yeah. It’s scary how there were no consequences for that, and the guy continues to happily code within the kernel community.

                                                                                                                                                            No, wait. I’m lying. He’s rotting in jail, and even if he weren’t, he’d be an outcast. It’s almost like the kernel community doesn’t condone actual violence.

                                                                                                                                                            1. 8

                                                                                                                                                              I don’t mean to imply that Linux kernel contributors have never engaged in violence, just that there is no evidence that they have done so as a strategy for managing contributions to the kernel. Hans Reiser is perhaps the most extreme example of this: since he planned and executed the cold-blooded murder of Nina Reiser, he was clearly able and willing to use physical violence in general, but I have never heard a suggestion that he ever used physical violence to manage kernel contributions. And he had the opportunity! He had physically co-located kernel contributors who worked for him as employees!

                                                                                                                                                        1. 1

                                                                                                                                                          In reading more about this project (I just heard of it!), I realize that I didn’t give Mathias Lasser proper credit for his part of Project IceStorm.

                                                                                                                                                          Also! The FPGAs themselves are super cheap. Like US$1.53 at retail, although I think that one may not be supported by IceStorm yet. And the IceStorm and Arachne-pnr tools are super fast, with the subsecond compile times on this toy example that you would expect from decent software, while the Lattice tools are much slower. And IceStorm has successfully compiled a CPU and programmed it onto an FPGA, which you could consider either a proof of maturity of the software, or a waste of a perfectly good FPGA. Maybe this means the long-promised FPGA future of wonder can finally come to pass!

                                                                                                                                                          1. 1

                                                                                                                                                            In 2008, I used gas to build a copy of the 31-byte DOS demo Klappquadrat using Debian (or maybe Ubuntu, I forget). That page and the related one about the 16-byte fr-016 may have useful information about how to get started doing this kind of thing, including how to use QEMU to debug.