1. 4

    I said this on HN, but I’ll repeat it here: I don’t think built-in complex data parsing is smart. Leave dates, email addresses, urls, colors, and latitude and longitude (!) to the devs, or maybe move it to a plugin. But including it opens you up to endlessly having to fix something that is orthogonal to your goal: a structured, plain-text notation language.

    Also, don’t validate email addresses or urls with regex, please. Most of these examples on Wikipedia don’t work with your regex, and a fair number of the invalid ones do. Just check for a @ and move on if you must.

    1. 4

      Quoting the creator on Hacker News:

      What you’re seeing there is actually validation :), the lat/lng type is not magically inferred but instead explicitly requested by the code - if it were not valid it would generate a user-friendly, localized error message. Also the underlying document hierarchy that holds the data is validated. So on the contrary it is actually hard not to validate content in eno.

      I think this actually strikes a nice balance between “smart” and “dumb”. I agree wholeheartedly about the e-mail address regex, though.

      1. 2

        Yeah, I’m glad it’s not magical, but it still feels weird to have them encoded in the current “core” parsers. How is converting a normal string of numbers to a dictionary different than calling “parse_lat_long”? Sure, you get the error message, but there are also instances when you don’t need 6 points of precision which invalidates the whole function. Just make it easily extensible and let users define their own.

        1. 2

          Yeah, I agree.

          1. 2

            Your point got through loud and clear and I will consider it closely, as all are :) thanks again for bringing it up!

            Just in case you haven’t seen it already, here’s my response on HN that at least should explain why I put in non-thoroughly engineered type loaders (even though I myself highly regard thoroughness) https://news.ycombinator.com/item?id=17777113

      1. 1

        This is good. I don’t think interspersing the slides quite works, as it made it hard to read without frequent interruptions, but the content is very solid.

        1. 1

          That’s really cool. It’s always fun to see folks extend js’s syntax like this.

          1. 19

            I generally agree: YAML is not always the best format (it’s also not my most hated format, though, it is the only one with a convenient notation of larger string blocks and the 9 versions, while an annoying number, do make sense). I wouldn’t use it for configuration or as a transmission format, but it has a good track record for data documents like data files for single page apps.

            I find two arguments a bit weird though: the length of the spec.

            For 24000 words, the YAML spec comes with: a motivation section, a comparison section, an index and a list of standard schemata. YAML ain’t a small language, it also doesn’t want to be. The comparison to the JSON spec is weird. JSON’s spec is famous for being short to the point where it is misinterpreted. While a lot of things were subsequently fixed, for example a lot of the initial parsers disagreed what the root element of a JSON document was (it’s an object, a fact that the description on json.org still doesn’t document). Most famously, 1 is a valid JSON document for PHP. Also, the other comparison, TOML, dropped the ball on quite some things.

            The length of a document isn’t really an argument.

            Second, they complain about the behaviour that you can accidentally build object instantiation attacks in YAML. This isn’t a YAML feature. YAML has tags, and those tags have been used by library authors to build a convenience feature that automatically deserialises them into an object. The same attacks have been observed with all the other formats. Rails XML parser had the same issue, just the tagging format was different. The problem there was the lack of knowledge of the danger of accepting arbitrary class names from the outside on the side of library authors, not the format authors.

            In my opinion, the tagging features of YAML are an under-appreciated part of the language, actually making it a contender to XML much more then the other formats. Also, YAML adds things that not many formats have: it actually has the concept of a reference.

            There’s mistakes in the language (e.g. making no a keyword, which leads to weird bugs, like the norwegian (no) translation of padrino introducing the language key “false” instead). But in general, I think this rant puts emphasis on weird minutiae instead of having a thorough look at YAML. I would love to see a YAML that forbids the odd parts of YAML and makes it an easier language to use.

            1. 3

              I would love to see a YAML that forbids the odd parts of YAML and makes it an easier language to use.

              Have you seen StrictYAML? It might be overly cautious in what it cuts out, but it is a very nice reduction of YAML.

              EDIT: Foolish me, posting this before reading the article which shouts out StrictYAML at the end.

            1. 8

              If humans are going to be reading, supporting, and re-writing code, I don’t see why we’d want to eschew one’s strongest language, say, English, in favor of one that reads like hieroglyphics.

              Look at what humans already do in domains that require precision, as programming does. “reads like hieroglyphics” is a fair description of a lot of mathematical notation, yet mathematicians have long preferred symbology to English - if you think programmers shouldn’t then you should be able to explain why mathematicians do. Lawyers write “English” but in a famously stilted style, full of clunky standardized constructions, to the point that it’s sometimes considered a distinct dialect (“legalese”) and one could reasonably ask whether a variant that used a symbol-based language would be more readable. And of course it bears remembering that the most popular human first language is notated not with alphabetics but with ideograms where distinct concepts generally have their own distinct symbols.

              Even within programming, humans who are explaining an algorithm to other humans tend not to use English but rather a mix of “pseudocode” (sometimes likened to Python) and mathematical notation.

              Erlang is notorious for being ‘ugly,’ but I wonder what that’s all about. Truly. I like to think most my Erlang code is composed of English sentences, lumped together into paragraphs, and contained in solitary modules. It’s familiar, unsurprising, and quite beautiful when one’s naming is in top form.

              Really? Most languages allow sensible plain English names for concepts. The part of Erlang that’s notoriously ugly - and the part that makes it read very unlike English - is its unusual punctuation style. If the author really finds Erlang English-like to read, I can only assume this is because they’re much more familiar with Erlang than other languages, rather than the language being objectively more English-like than, say, Python or Java.

              1. 12

                Erlang’s punctuation style is more like English than most C-likes out there. Let’s take this statement:

                I will need a few items on my trip: if it’s sunny, sunscreen, water, and a hat; if it’s rainy, an umbrella, and a raincoat; if it’s windy, a kite, and a shirt.

                In a C-style language (here, go) it might look something like

                switch weather.Now() {
                case weather.Sunny:
                    sunscreen()
                    water()
                    hat()
                case weather.Rainy:
                    umbrella()
                    raincoat()
                case weather.Windy:
                    kite()
                    shirt()
                }
                

                In Erlang it could just be:

                case weather() of
                     sunny -> sunscreen(), water(), hat();
                     rainy -> umbrella(), raincoat();
                     windy -> kite(), shirt()
                end.
                

                You even get to keep the , for enumeration/sequences, ; for alternative clauses, and . for full stops!

                1. 2

                  That example is a little misleading. In C and C++ it could be written like this, which arguably reads more like English than either Erlang or Go:

                  if ( weather() == Sunny ) {
                      sunscreen(), water(), hat();
                  }
                  else if ( weather() == Rainy ) {
                      umbrella(), raincoat();
                  }
                  else if ( weather() == Windy ) {
                      kite(), shirt();
                  }
                  
                  1. 1

                    all you need is the full stop (.) instead of {} and then you have all the tokens of Erlang!

                2. 6

                  Mathematicians use a seamless hybrid of prose and formula:

                  For every v ∈ V, there exists w ∈ V such that v + w = 0.

                  Similarly in code, some parts are more like formulae, some are more like prose, and some are more like tables or figures… and it’s interesting to consider separate syntaxes for these different types of definitions.

                  Have a look at the Inform 7 manual’s section on equations, for an example. Here is a (formal, compiling, working) definition of what should happen when the player types push cannonball (I’ve used bullet lists in Markdown to get indentation without monospace):

                  • Equation - Newton’s Second Law

                    • F=ma
                  • where F is a force, m is a mass, a is an acceleration.

                  • Equation - Principle of Conservation of Energy

                    • mgh = mv^2/2
                  • where m is a mass, h is a length, v is a velocity, and g is the acceleration due to gravity.

                  • Equation - Galilean Equation for a Falling Body

                    • v = gt
                  • where g is the acceleration due to gravity, v is a velocity, and t is an elapsed time.

                  • Instead of pushing the cannon ball:

                    • let the falling body be the cannon ball;
                    • let m be the mass of the falling body;
                    • let h be 1.2m;
                    • let F be given by Newton’s Second Law where a is the acceleration due to gravity;
                    • let v be given by the Principle of Conservation of Energy;
                    • let t be given by the Galilean Equation for a Falling Body;
                    • say “You push [the falling body] off the bench, at a height of [h], and, subject to a downward force of [F], it falls. [t to the nearest 0.01s] later, this mass of [m] hits the floor at [v].”;
                    • now the falling body is in the location.

                  (Yes, the Inform 7 compiler will solve equations for you. Why aren’t normal programming languages capable of this kind of high school math? Are we living in some kind of weird bubble?)

                  1. 2

                    Why aren’t normal programming languages capable of this kind of high school math?

                    They are. Inform 7 uses English words as syntax, but otherwise is a normal programming language. Why do you think this can’t be solved in, say, Python?

                    1. 5

                      Of course it can be solved in any general purpose programming language, but none of them feature dimensional analysis or algebraic equation solving out of the box in a convenient and natural way… yet Inform 7 does, oddly.

                      I find this interesting because that stuff would seem to be the most obvious use case for computing machines from, like, a 1930s perspective.

                      1. 1

                        Ah, my apologies for completely misunderstanding what you said.

                        I completely agree. Python (and maybe Basic?) are close, but even then they fall dramatically short of “language as code” as Inform 7 does. I wonder what keeps Inform 7 from becoming a more general purpose programming language?

                  2. 4

                    Also, English isn’t everyone’s strongest language. As natural languages go, it’s pretty complex and inconsistent. If you want your code to be understood by people who are more familiar and comfortable with other natural languages, then your own familiarity with English isn’t necessarily such an advantage in writing code.

                    1. 2

                      Was going to say something along these lines. These discussions tend to be extremely anglocentric.

                      Additionally, many of us work with distributed teams, where there’s no one “strongest language” anyway.

                  1. 5

                    I’m writing a tutorial for test-writing. I recently started contributing to an open-source card game, and while they have a testing suite, they’re missing even basic functionality tests for over half the card-pool, so I’ve taken it upon myself to both implement a bunch of tests and help inform the other devs of the wonders of testing.

                    The most fun part is it’s all in Clojure which I don’t know super well, so it’s been a whirlwind adventure of learning.

                    1. 12

                      eliminating all heap allocations

                      Rust isn’t heap allocating anything.

                      1. 11

                        And C isn’t either.

                        I haven’t had the time to dig into the codegen, but I posted it to /r/rust; we’ll see what they say :)

                        EDIT:

                        Looks to me like the use of signed integers is inhibiting some optimizations.

                        https://www.reddit.com/r/rust/comments/7m99wo/outperforming_rust_with_functional_programming/drsbori/

                        1. 6

                          I doubt that, this are unmodified results (on my machine):

                          test bench_collatz_106239 ... bench:         467 ns/iter (+/- 18)
                          test bench_collatz_10971  ... bench:         367 ns/iter (+/- 12)
                          test bench_collatz_2223   ... bench:         229 ns/iter (+/- 7)
                          

                          And here is after replacing i64 with u64:

                          test bench_collatz_106239 ... bench:         509 ns/iter (+/- 4)
                          test bench_collatz_10971  ... bench:         388 ns/iter (+/- 3)
                          test bench_collatz_2223   ... bench:         267 ns/iter (+/- 10)
                          
                          1. 12

                            Yeah, there’s a bunch of different speculation going on in that thread.

                            Regardless, sometimes Rust will not be literally the fastest possible thing. That’s okay, as long as it’s close. I find these little examples interesting, regardless of who “wins”.

                            1. 11

                              I really like how the Rust community is approaching this as “how can we do better?”

                      1. 2

                        my browser probably implements this to be O(shiznit(n)) for a large enough n

                        Love this. Definitely my feeling when talking about Big O performance bounds. Folks rely a little too much on it as a method of determining performance, instead of actually running tests.

                        1. 3

                          Author here,

                          thanks i feel the same :)

                          Most discussions in my everyday life about code/algorithms/datastructures tend to favor Big-O arguments over actual running cost in real world scenarios. Which can lead to tricky and embarrassing situations.

                        1. 8

                          Probably the biggest difference has been that I haven’t moved to create a downvote reason for hostile comments

                          I still want this to happen. I see it as a positive step in helping to community moderate certain kinds of interactions, tho I don’t think the comment you deleted falls under such an umbrella.

                          1. 3

                            Just use try! instead of try. It returns nil only if receiver is nil, otherwise it raises NoMethodError.

                            “Law of Demeter” is a strange cult which I’ve seen followed only by rubyists. How introducing Payment#client_address reduces coupling? This is just virtual flattening of tree-like or graph-like data structures. Should I define method for each property for each sub-object of Payment? Payment and Client are data classes, they shouldn’t be even viewed from OOP viewpoint.

                            I once worked on project where everyone tried to enforce “Law of Demeter” on traversing json in Javascript (more precisely, Coffeescript, and backend was in Ruby).

                            1. 4

                              If you only want to handle real nil you can use &. – no ActiveSupport needed!

                              1. 2

                                How introducing Payment#client_address reduces coupling?

                                He used the phrase “structural coupling”, which doesn’t immediately mean anything to me, but I can hazard a guess.

                                A function that operate on thing.client_address is more broadly usable than a function that operates on payment.client.address, since you may also have a function that operates on contract.client.headquarters.address or similar. This is a general problem that one encounters when you have outbound foreign keys, and becomes more pronounced when refactoring introduces additional indirections. In Clojure, which has namespaced keys, I’ve found it extremely useful to flatten structures when processing events or other somewhat implicitly defined heterogenous collections of entities.

                                Consider:

                                {:artist/name "Artist"
                                 :track/name "Track"
                                 :album/name "Album"}
                                

                                Is that an Artist object? A Track object? Or an Album object? You can use functions that operate on any of the three!

                                Compare to:

                                {:track {:name "Track"
                                         :album {:name "Album"
                                                 :artist {:name "Artist"}}}}
                                

                                That’s obviously a Track object. If I have a function for formatting a track/artist name pair, I could have used it directly with the flattened structure. However, here, I have to traverse the Album edge. If I later extend my data-model to support multiple artists per album (adding an :artist key to a Track object), I’d have to change my code.

                                1. 1

                                  The “Law of Demeter” is also heavily pushed by Bob Martin and his vision of TDD-based Java development. I want to say I’m a fan, but like so many things it’s all about the right tool or methodology for the right job, and the LoD isn’t always the best for speed or clarity.

                                1. 2

                                  And this is why lacking package namespacing is such a bad idea: https://crates.io/crates/http

                                  (Told you so, I guess.)

                                  1. 16

                                    And this is why lacking package namespacing is such a bad idea: https://crates.io/crates/http

                                    If you take a look, seanmonstar - one of the authors of http - is a co-owner and the http crate will be published there.

                                    Not using namespacing is entirely intentional. The other option would be to have a fragmentation of multiple packages called http, all with different prefixes. Especially the http crate is meant to be a center-piece of the ecosystem and wouldn’t live any better in a namespace then somewhere else.

                                    We’ve been there: Github had a namespaced gem host for a longer time and it lead to fragmentation within the ecosystem very quickly (“which fork of $x are we currently using”?). There are many large ecosystems without namespacing out there (gems, npm) and it is rarely a problem.

                                    But that discussion has been had - multiple times - and the only thing we could do is rehashing.

                                    (Told you so, I guess.)

                                    Let me be as blunt as you are: Your guess is wrong. And smug.

                                    1. 4

                                      Not using namespacing is entirely intentional. The other option would be to have a fragmentation of multiple packages called http, all with different prefixes. Especially the http crate is meant to be a center-piece of the ecosystem and wouldn’t live any better in a namespace then somewhere else.

                                      Is there a suggested approach for private crates? For example for companies.

                                      1. 7

                                        It’s not hard to run your own crate host (currently, that’s a bit of manual work or feasible, but making that better is wanted).

                                        crates.io is fully public and not a commercial service.

                                        Also, cargo understands git dependencies and can put multiple crates in a repository, which is what I usually use.

                                        1. 1

                                          It’s not hard to run your own crate host (currently, that’s a bit of manual work or feasible, but making that better is wanted).

                                          Would that custom crate host work as a proxy to crates.io? Or just another host? I’m thinking that it’s useful to have access to crates.io but host some crates on custom host…

                                          Also, cargo understands git dependencies and can put multiple crates in a repository, which is what I usually use.

                                          Just like npm dependencies can use git URLs? Great! That solves a lot of cases for me.

                                          Thanks!

                                          1. 7

                                            Would that custom crate host work as a proxy to crates.io? Or just another host? I’m thinking that it’s useful to have access to crates.io but host some crates on custom host…

                                            Mostly, cargo retrieves a flat-file manifest, then does the resolution locally and then hits our download host. So proxying doesn’t make that much sense, unless you want to publish to crates.io, too. I would run a mirror if I had to.

                                            The process of setting up a mirror is explained in detail here: http://www.integer32.com/2016/10/08/bare-minimum-crates-io-mirror-plus-one.html

                                            1. 1

                                              That’s exactly what I needed, thanks.

                                              1. 6

                                                I should also mention that in general, we’re working towards making this easy, it just takes time to design, like anything else. See https://github.com/rust-lang/rfcs/pull/2006 for example.

                                                1. 3

                                                  Excellent, I’m glad that this is considered. The process transparency with Rust’s RFCs is really impressive.

                                      2. 6

                                        If you take a look, seanmonstar - one of the authors of http - is a co-owner and the http crate will be published there.

                                        I’m kind of surprised that you assume that I haven’t checked this. I did, and the fact Rust team got lucky this time changes absolutely zero about the fundamental issue.

                                        • Crates.io prides itself with >10.000 “crates in stock”.
                                        • Most English speakers have a vocabulary size of 15.000 to 20.000 words.

                                        This means that practically every “obvious” noun that one can think of has already been claimed by someone.

                                        What happens the next time the Rust team wants to use some “nice” name?

                                        Will Rust devs ask nicely? What happens when the person who claimed the name is not reachable anymore, or doesn’t want to relinquish the name? Will the Rust team just commandeer that person’s crate?

                                        fragmentation within the ecosystem […] (“which fork of $x are we currently using”?)

                                        That pain is completely manageable compared to the pain of having to change every single file in a project just to swap out one version of a library with some fork of it (for instance to check whether some bug has really been fixed).

                                        There are many large ecosystems without namespacing out there (gems, npm) and it is rarely a problem.

                                        npm introduced namespaces in 2015.

                                        Let me be as blunt as you are: Your guess is wrong. And smug.

                                        I think it’s only a matter of time until Rust comes around. I’m happy to remind you when it happens.

                                        1. 7

                                          | I think it’s only a matter of time until Rust comes around. I’m happy to remind you when it happens.

                                          The possibility you might be right in the future doesn’t make you less smug right now.

                                          1. 0

                                            So as soon as I’m proven right, it’s not considered smug anymore? Following that reasoning, I’d like to settle my smugness debt with prior cases of me making a prediction and being right. :-)

                                            1. [Comment removed by author]

                                              1. 1

                                                No, I’m just kidding. Jesus.

                                          2. 6

                                            What happens the next time the Rust team wants to use some “nice” name?

                                            We play by the same rules as everyone else.

                                            That pain is completely manageable compared to the pain of having to change every single file in a project just to swap out one version of a library with some fork of it (for instance to check whether some bug has really been fixed).

                                            You don’t need to do this, you use an override or [replace], it’s one/two line(s) in Cargo.toml.

                                            1. 2

                                              Or an “extern crate foo as bar” in {mod,lib}.rs. Either technique is strictly more flexible than relying on a forked version of a library retaining the same name under a different namespace.

                                              1. 1

                                                So there is already some half-baked namespacing mechanism, it’s just that everyone has to roll their own when required?

                                                1. 4

                                                  I don’t think of it as having anything to do with namespacing, personally.

                                              2. 5

                                                I did, and the fact Rust team got lucky this time changes absolutely zero about the fundamental issue.

                                                Great job on the timing of the “I told you so”.

                                                What happens the next time the Rust team wants to use some “nice” name?

                                                If they can’t, they can’t. Meh. The Rust team doesn’t get special privileges here. Like everyone else, they have to come up with a new crate name each time. It’s not hard.

                                                If someone goes and squats a million crates there’s a chance the team may undo that, but in general if a crate is taken it’s taken.

                                                It’s not really considered a major problem, and really namespacing doesn’t solve that problem much either. It solves it to the extent that Rust gets a namespace for “official” stuff, but not really for anyone else.

                                                Most English speakers have a vocabulary size of 15.000 to 20.000 words.

                                                Your math assumes single word crates; most crates are two words.

                                                Doing a quick grep, only half the crates (almost exactly half actually) use only alphanumeric characters in their names (Rust crates use - or _ often for multiword crates). On top of that there are plenty of two word crates with the names mushed together.

                                                When a crate name can be more than just a single noun, you still have plenty of possibilities.

                                                the pain of having to change every single file in a project just to swap out one version of a library with some fork of it

                                                [replace] and [patch] exist. http://doc.crates.io/manifest.html#the-patch-section

                                                1. 2

                                                  Rust crates use - or _ often for multiword crates

                                                  I do wish Cargo had disallowed one or the other before the 1.0 ship set sail. The community seems to have standardized on - as a separator in the package name that goes in Cargo.toml and _ for the actual crate name, but it’s not universal.

                                                  I suppose it wouldn’t be too late to transparently make - and _ equivalent as far as Cargo/Crates.io are concerned, if there are no actual instances of published crates whose names would clash given a global replacement one way or the other.

                                                  1. 1

                                                    I thought there was an issue open for this, but cannot find it.

                                                    I agree wholeheartedly.

                                                    1. 1

                                                      I suppose it wouldn’t be too late to transparently make - and _ equivalent as far as Cargo/Crates.io are concerned,

                                                      So:

                                                      • Crates.io considers them to be the same when uploading crates
                                                      • Rustc will always see crate names with hyphens converted to underscores

                                                      (So there are no clashing crate names)

                                                      However, I think you still have to get the crate name correct when describing it as a dependency in Cargo.toml.

                                                      This is probably a straightforward fix in Cargo itself, with no backwards compatibility risk. I’d be willing to help push this through (or mentor folks who want to work on an rfc for this)

                                                    2. 1

                                                      If someone goes and squats a million crates there’s a chance the team may undo that, but in general if a crate is taken it’s taken.

                                                      I know that “a million” is just hyperbole, but it’s already the case that people have claimed dozens of very common names for seemingly no other purpose than “owning” them.

                                                      1. 1

                                                        Which is fine. Let them have fun.

                                                  2. 2

                                                    Github had a namespaced gem host for a longer time and it lead to fragmentation within the ecosystem very quickly (“which fork of $x are we currently using”?).

                                                    This is just a variation of “Which X are we currently using?” You’ve traded namespaces + common names for no namespaces + creative names. By going with creative names and no namespaces, you’ve made discoverability harder without a lot of benefit.

                                                    1. 4

                                                      Since this was reverted, it has become more common again to contribute back. The problem was that everyone ran their own fix with their own bugfix.

                                                1. 1

                                                  This usage of the else keyword seems like an occasional useful but of semantic sugar, but dang, could they have at least chosen a different keyword? The word “else” makes absolutely no sense here! Fully exhausting a for loop doesn’t seem like an “else,” that seems like the normal usage of a for loop. In my opinion, it should have been called something like “then” to make it clear that it’s a continuation. Before I read this article, I assumed that the else keyword after a for loop would only execute if the loop never ran.

                                                  1. 3

                                                    The most common use case is searching for a particular value using the for loop. If found, a break is then executed and the else block is skipped. If no value is found, the else block is executed. This makes “else” make a little more sense as the keyword.

                                                    1. 3

                                                      Think of for/else like an if statement where the condition is evaluated multiple times. It’s basically just a more expressive version of:

                                                      if any(c for c in conditions):
                                                          # at least one condition is True
                                                      else:
                                                          # no condition is True
                                                      

                                                      In your mind, just replace for with if and it makes a sort of sense.

                                                      1. 2

                                                        I can’t seem to find a link, but I vaguely remember Guido remarking that he wishes he’d named it “nobreak”, which makes a lot more sense for me.

                                                        1. 1

                                                          Python is unfortunately heavy with syntax. Expressing for/else in a language like Haskell, Ocaml, and I assume Rust, is something more likely (and easily) done in a library.

                                                        1. 6

                                                          Today I learned that downvoting a comment requires you to pick a category. I guess I’ve never tried to do that here before.

                                                          The comment provided as an example is the first comment I tried to downvote here on Lobste.rs…

                                                          And indeed, none of the available categories fit.

                                                          If there was a ‘destructive’ category, I’d pick that one. Meanwhile, I’ll use ‘troll’, which is clearly not correct. AFAIK.

                                                          [EDIT: uh-oh, it looks as if I’ve committed a “me-too”!]

                                                          1. 5

                                                            I only learned that downvotes require a category today as well. And I was pleasantly surprised both because I realized that I haven’t needed to downvote a comment here before, and because I really like that lobste.rs requires a reason for a downvote. I feel like your comment had value beyond just a me-too, so you’re fine :)

                                                            1. 5

                                                              Interestingly, gave me an opportunity to upvote that comment. Don’t know why someone’s personal feelings, which is what they are describing there should be less valid because of the color of their skin. I thought that was what we were all striving for.

                                                              1. 4

                                                                People reading that comment who missed the thread might not know it was very context-sensitive. Remember that the context (OP) is specific people pushing a specific set of political views on everyone asking that all disagreement be censored. They say they benefit minorities but wont allow them to have a say if they have different beliefs. Coraline et al are uncompromising in that the options are (a) agree with them pushing same things or (b) shut up and leave every public space they take over.

                                                                With that backdrop, I read the various Github articles and the OP. She constantly talked about extreme negative reactions she got as if it’s incidental to being a minority. She was a minority, did some work, and piles of hate emerged. She never mentions when doing so that she aggresively evangelizes, insults, and coerces FOSS projects usually with a pile of likeminded people behind her. I kept bringing that behavior up since I think her showing up at people’s doorsteps insulting them and telling them to do her bidding in their projects might be why people dont like her. That pisses all types of people off here in the Mid-South, including minorities. Consistently. I imagine some in other areas, too.

                                                                Anyway, in the thread you linked, my main comment on that article was judged by site as follows:

                                                                +73 yes -4 incorrect -1 off-topic -8 troll

                                                                It means the main post got overwhelming support esp considering how few upvotes I normally get. The others were peripheral supporting it as part of a larger debate. Anyone trying to judge the linked one should probably look at OP and first comment to get context:

                                                                https://lobste.rs/s/js3pbv/antisocial_coding_my_year_at_github#c_h8znxo

                                                                Im just a political moderate calling out hypocrisy/deceit of an article’s source (i.e. source integrity) and protecting right to dissent as usual. I do it on all topics. Even my favorites on occasion. On political ones, people tend to have strong emotional reactions that clouds judgment or just evokes strong reactions. Im not saying whose right or wrong so much as disagreement they take personally, get disgusted/angry, and will hit any button to make that person or post disappear.

                                                                I think I warned of that in either linked thread or Community Standards discussion. Both then and now, people started calling out others that should disappear with often opposite views of what should be allowed. There was no consensus except against comments that are blatantly harmful where there is a consensus by most peeple that it’s abusive. The same thing I see play out in person every day. So, I oppose comment deletions or bans in political situations without consensus so long as people keep it civil and about specific claims with supporting evidence. And if one side can speak, the other parties better be able to as well.

                                                                And a minimum of politics on Lobsters period! Keep it focused on tech and such. Somone had to post something by a decietful activist on politics pushing a mix of truth and propaganda. And that hit my mental button of calling them out staying as civil and factual as I could despite knowing with every word I might be censored for it. Might. The upvotes from my first comment were reason I kept taking the risk of more argument given there was a surge of dissent that needed to be represented. Not just me. I always help the underdogs. :)

                                                                Note: That was long as we were just talking about but I wanted context and intent clear given it’s about whether to filter or ban me. I also hold no grudges against anyone who did. It’s their deeply-held, personal beliefs about what’s right and wrong. People will do what you believe is necessary there.

                                                                Note 2: Lunch break is over. Darn. I was hoping for tech over politics. Ill do what’s necessary, though, since I value and respect this community. Gotta defend dissent as it’s critical.

                                                                1. 3

                                                                  While I disagree with your positions on the topic of the OP, that’s not really what I wanted to bring attention to in this thread. And, as you correctly point out, the longer post you had there does contribute to the discussion. This is why I specifically linked only to that one comment, because that is the only one I feel is not contributing, constructive, or otherwise meaningful as a part of the larger thread. Under no circumstances do I think any of what happened in that thread is cause for banning or deletion; on that, we are in complete agreement. What I wanted to highlight in this topic is that we should have a way of discouraging comments that are solely inflammatory without carrying other value, and I believe that particular one was of that kind. I did not downvote your other posts despite disagreeing with them, because (as also mentioned elsewhere in this thread), I do not think disagreement should be a reason for downvoting. We can have a whole different discussion about how politics and tech mix, but that does not belong in this thread.

                                                                  1. 3

                                                                    This is why I specifically linked only to that one comment, because that is the only one I feel is not contributing, constructive, or otherwise meaningful as a part of the larger thread. Under no circumstances do I think any of what happened in that thread is cause for banning or deletion; on that, we are in complete agreement.

                                                                    Well, my respect just went up for you quite a bit. Very reasonable position far as critiques go. The selected comment was lower info than the other one and maybe even unnecessary. Likely because it was part of a back and forth on politics where comment quality on all sides (including my own) tend to get lower as it goes on. One of reasons I don’t like political discussions in low-noise sites like Lobsters. They also can have less info since more of the specific points and context is already defined where the replies start just implying that stuff with less info content in general. That one was some combination of those.

                                                                    In any case, I appreciate you clarifying your position. I at least get why you’d want to see less of that kind of comment than the main one.

                                                                    1. 4

                                                                      I’m glad we’ve found common ground. As I’ve said elsewhere (this thread is getting pretty large), I don’t want to see downvotes used as a way to signal disagreement, nor do I want them to be used to “punish” a particular user or otherwise label the user as bad. Downvotes to me are a way of signaling that a particular comment is unwanted, along with the reason why, nothing more, nothing less.

                                                                      1. 1

                                                                        I’m fine with that as long as there’s a consensus across majority of community’s users. That’s really all I ask with these sorts of things even though I’m biased toward free speech or low censorship. Your proposal isn’t a big risk to that esp given it’s mostly a tech-focused forum.

                                                                  2. [Comment removed by author]

                                                                    1. 11

                                                                      If you never mentioned your religion, I would have never found out what kind of person you are. Why would I want to talk tech with you?

                                                                      See how stupid that sounds?

                                                                      1. 4

                                                                        What’s needed is an expanded signup form with ten or so position statements (“programming in php is ethical”) that one chooses to agree or disagree with. Then all the comments made by anyone who agrees with a statement I strongly disagree with are automatically hidden. Works for okcupid, why not lobsters?

                                                                        1. 1

                                                                          You’re joking, but I would like, and would make heavy use of that feature.

                                                                        2. 0

                                                                          So you’re saying that if I find out someone here wants to ship the minorities back to where they came from, I should want to talk tech with them as much as I would my kindly religious coworker?

                                                                          1. 14

                                                                            You are free to not do whatever you don’t feel comfortable with, but if neither of you brings up minorities because you’re talking about technology, why would that even be relevant? Are you worried about being associated with such a person or do you think their ideas about minorities are going to creep into their ideas about tech?

                                                                            1. 11

                                                                              I believe the concern is that people holding those views ,and as a result the views themselves will be percieved as welcome in the broader technical community, or in our case specifically in the Lobste.rs community. The result of this will be that minorities will in turn feel unwelcome in the community, and they have every right to feel that way.

                                                                              If you own a restaurant and host a nice dinner for a Jewish family celebration while there’s a Nazi convention at the next table, there’s no amount of politeness, courtesy, good intentions or kindness that you can bring to bear that will make them feel welcome.

                                                                              Do we have the explicit racist behavior on Lobste.rs that’s equivalent to a Nazi convention? No. But I’ve seen comments on here defending racists, using SJW as a perjorative, using the incorrect gender pronoun for a trans person (in a way that makes it hard to believe it was not purposeful) and a variety of other behaviors that would signal to someone in a minority group that they wouldn’t be welcomed here. Most of these posts did not recieve many downvotes, and when they do, it’s often enough that there’s an outpouring of discussion about what downvotes are for.

                                                                              The point of this is that it’s the decision of the person entering a community as to what will make them feel unwelcome. As the hosts, we decide what behavior is acceptable in our community. No matter what we decide, someone will feel unwelcome. So it falls on us to decide how to make trade-offs about who feels unwelcome and why.

                                                                              Personally, I think it’s not unreasonable for a minority to look at the Lobste.rs community and say “I see a lot of people there defending racists/sexists/transphobics and their views, and I don’t feel welcome as a result.” On the flip side I think it’s less reasonable to say “I don’t feel welcome at lobsters because I came to the defense of a guy who said slavery was a good idea and I got downvoted a bunch.” Even if you soften it to “I played devils advocate to argue the case for a guy who thought slavery was swell and got downvoted” I think the first position is more reasonable.

                                                                              Given that we can only welcome one of those groups in that situation, I’m inclined to welcome the folks with the more reasonable view. I think it would be nice to give the community better tools to make that decision. I think downvotes for “hostility” and “unconstructive” could both work, with a few caveats:

                                                                              “Hostility” would be intellectual hostility, not emotinal tenor. It’s pefectly possible to politely and calmly argue that women are inferior to men, or that that’s an acceptable view that has a place in modern discourse, but I’d argume both of those positions are hostile toward women.

                                                                              “Unconstructive” is broader in scope and the hope would be that it reduces hostile viewpoints as a side effect, as well as cutting down on the number of pointless technical rants, which I also don’t feel add much to the discussion. I suspect it’s hard to be politely hostile toward a group and simultaneously provide actual constructive criticism. I find it hard to imagine some of the more SJW-hostile folks proposing suggestions that would make both trans/minority folks and the hetero/caucasian men they see as under attack feel more welcome, but I would certainly like to hear about it them if it happens.

                                                                              In either case, I think we’ll have to recognize that these judgements are subjective, and that there’s no way to avoid being subjective if we want to consciously set a tone for our community. I’d also suggest that losing ephemeral internet points is not the end of the world. It’s a very mild form of social reprimand and a fairly gentle tool in the larger scheme of things, and isn’t mutually exclusive with open discussion. I understand being cautions in the application of downvotes, but perhaps we have erred too much on the side of caution in the past.

                                                                              1. 8

                                                                                I think the easiest way to address the concern that the first thing people see when they come here is “hate” (for lack of a better word) is to post more and better comments. You’re fighting a difficult battle, in no small part because there’s little agreement about what constitutes hate. But banning the haters is not the only way to reduce the likelihood a newcomer will see something they don’t like. One can hope they don’t stop at the first comment they read, so work to ensure the next ten comments they read after that are all worthwhile.

                                                                                There does seem to be a phenomenon where people will have accounts for months, not post any comments, then one day announce “I’ve had it with this site; I can’t believe somebody in this community wrote that.” If you’re so concerned about what the community is, try being the community. (Not directed at any particular individual.)

                                                                                1. 8

                                                                                  I understand the appeal of the “fight content with content” approach, and I think encouraging folks who are friendly and welcoming, and being the community you want is important. We shouldn’t lose sight of that.

                                                                                  That said, the issue I have with this approach is that it ignores outside constraints on community members, and cedes the discussion to whoever has more free time and energy. Or in the presence of malicious behavior, whoever puts the most effort into gaming the system. This is a general problem with community moderation, and it seems like people with more hostile views often are willing to devote more effort to spreading their views than more reasonable individuals. I have a number of hypothetical ideas about why that may be which may or may not be correct, but it does seem to be a consistent pattern across many of the communities I’ve participated in, and others have made the observation as well.

                                                                                  Speaking for myself, I try to participate and be a friendly and welcoming voice as much as I can, but I don’t have time to rebut every mean-spirited comment, or even comment all that often. I’ve got two small children to raise, three-and-a-halfish teams of folks at work to manage, a couple of side projects as well as the very rare occasional social engaement. I literally don’t have the time and energy to put in that some people do, and I don’t think that “whoever has the most time on their hands in aggregate wins” (that sounds snarky - not intended, sorry.) is a good strategy for building a welcoming community. My view is that communities have to make conscious decisions about what they want to be, otherwise the unknown trade-offs we make by not deciding will end up biting us, much they way they would if we were to abdicate making explicit decisions in engineering information systems.

                                                                                  Additionally, I’ve found that trying to speak up against hostile viewpoints and/or people who defend those views often leads into some pretty gnarly rehtorial weeds that end up being particularly time-consuming. Perhaps I could be better about disengaging when the conversation feels fruitless, but at some point that further discussion is no longer useful and it might just be best to let the community literally “vote on it”.

                                                                                  I also want to reiterate that I’m not suggeting that anyone should be banned, but that we create a category of downvote for the sorts of behavior we decide want to discourage, so that we can express our collective opinion without always having to engage in extensive (and at times fruitless) discussion in order to make headway toward whatever we decide we ant our community to look like.

                                                                                  Apologies if this comment is a bit redundant/rambling. I’m running on small amounts of sleep because children, and I’m a bit too tired to proofread. Think it’s time to call it a night.

                                                                                  1. 3

                                                                                    There does seem to be a phenomenon where people will have accounts for months, not post any comments, then one day announce “I’ve had it with this site; I can’t believe somebody in this community wrote that.” If you’re so concerned about what the community is, try being the community. (Not directed at any particular individual.)

                                                                                    I saw this happen in some of the community discussions. It came off to me a bit like the people in FOSS projects using them, not contributing, and then demand the developers are bad people for not doing (feature/fix here) in (time here). Whether that’s valid comparison or not, I just rolled my eyes thinking “yeah, you’d be a big loss…”

                                                                                2. 4

                                                                                  To be clear, I’m for it staying off the site as much as possible. Most of Lobsters and the better parts of HN are a mental break from all that crap for me. I’d rather it not even show up. Also, @Irene made a great point in the last discussion that keeping the articles focused on tech or non-political things in general avoids all this crap as a pleasant, side effect since there’s fewer opportunities for it to show up. I’d rather not even see it on front page. There’s other places where they can talk to folks about it. I’d even support banning such discussions on all sides as off-topic since it’s rare good comes out of them. Or at least the flamewar-level, personal stuff where we can still talk, say, NSA surveillance tech and legal implications. Or copyright/patent law w/ people’s opinions coming in. Those things haven’t been so bad.

                                                                                  And what led to this thread? People butting heads or getting irritated by a thread about politics. That figures…

                                                                                  1. 3

                                                                                    I focused a lot on the issues of social inclusiveness in this sub-thread, partly because of the parent comments, and also because it’s an issue that’s important to me.

                                                                                    On reflection, I think it’s worth tying it back into the larger conversation. To that end, I want to say that even if we were to only ever discuss technology, I think having an explicit downvote category for nonconstructive / hostile comments would benefit us. I think many of the points I’ve made about the exclusion of specific groups of people also apply in the context of being a welcoming community in general, and improving the general quality of discussion.

                                                                                    1. 3

                                                                                      I think we may have seen that keeping it off the site is not really possible in practice, as there’s a strong desire to address these kinds of questions in the community.

                                                                                      Additionaly, I think that simply by saying that topics of equality and fairness in the tech industry are off limits, we’ll end up excluding some folks that we might be better off hearing from. Perhaps I’m wrong there, but I’d prefer we reach consensus through a more organic process than a blanket moderator-imposed ban on that sort of discussion.

                                                                                      1. 3

                                                                                        I see where you’re going with that. It just hasn’t worked well in practice so far with more problems reported than benefits from what I can tell. There’s all kinds of sites and even private messaging to help people on politics. The unique thing about Lobsters for me was it was very focused on tech, little BS in general, few comments, and they had more signal on average. If I told someone about it, I found @friendlysock’s description in “What Lobsters Is” to reflect the better content:

                                                                                        https://lobste.rs/s/oackyq/lobsters_community_standards/comments/sybvqw#c_sybvqw

                                                                                        I say leave it for that sort of thing which is how it grew into what it was. The political stuff adds to noise but doesn’t seem to help hardly anyone unless they’re just not searching for information elsewhere. I mean, just Googling a bunch of things would probably get them more information. They’d need to, too, if subject really mattered for them. So, let’s leave it offsite.

                                                                                        Of course, I’m just pushing my preference. You’re pushing yours. I’m for whatever jcs decides or if a vote what the consensus is. I’ll just probably ignore them more often. ;)

                                                                                        1. 1

                                                                                          The unique thing about Lobsters for me was it was very focused on tech, little BS in general, few comments, and they had more signal on average.

                                                                                          This is what attracted me as well to the site. There are some good people in here, and I want to hear what they have to say, but after being here for a while I’ve came to the conclusion that it’s full of the same old SJW/PC-rhetoric like on HN and other sites.

                                                                                          Some people like to discuss tech, but there’s a strong militia that intervenes when they think you discuss tech the wrong way. Meaningless words like “snark” and “condescending”, and harmful concepts like “this is not constructive” are uttered as justification.

                                                                                          In effect I have stopped discussing anything.

                                                                                          I must say this is somewhat unexpected to me. Since there are relatively many OpenBSD developers here, and this website was created by an OpenBSD developer I expected (and desired) the atmosphere and discourse here to match the atmosphere on OpenBSD mailing lists, but it’s pretty much the antithesis of that.

                                                                                          1. 10

                                                                                            To me, the use of SJW or “PC rhetoric” as pejoratives is offensive and never adds anything positive to a discussion. Those labels are an attempt to dress up ad-hominem attacks - attacks that boil down to “your ideas are invalid because you suck” - as something else.

                                                                                            1. 6

                                                                                              If we’re going to be using pejorative right-wing terms like “SJW”, we could mix it up with some pejorative left-wing terms too. You don’t see someone’s viewpoints denounced as “petty-bourgeois” often enough around here!

                                                                                            2. 4

                                                                                              after being here for a while I’ve came to the conclusion that it’s full of the same old SJW/PC-rhetoric like on HN and other sites.

                                                                                              I’ve only been here a week or two and yeah, I agree that there’s too much anti-SJW/PC rhetoric. The comment thread about Coraline at Github was a garbage fire that needed a strong moderator to step in and say “cut that crap out” but no, they instead got upvoted and now use those upvotes as defensive armour in this thread.

                                                                                              1. 1

                                                                                                As an outsider, it appears to me that the OpenBSD community has a strong, filtering process on who will get in there and some way of indicating what’s expected. Whereas, Lobsters is more open-ended plus did the mass signup. There’s so many more kinds of people and interests here that you’re going to see really different behavior.

                                                                                                It’s interesting how well the site handles the meta-threads, though. I’ve been impressed or even proud of those Lobsters engaging constructively and carefully in this thread. I don’t see it happen that way in a lot of forums. There’s more fighting and mud slinging in those than anything.

                                                                                        2. 4

                                                                                          There are plenty of non-technical reasons for not wanting to talk shop with someone. Perhaps they have terrible personal hygiene and you can’t be in their presence without gagging. Or maybe at some company event they got drunk and made a pass at your wife and you can’t be in their presence without thinking about it. Or, more relevant to this conversation, they might agitate for politics that have a visceral negative effect on your life. It seems obvious to me that someone might find these scenarios deeply unpleasant and would seek to avoid them, and in such a case it would not be hypocritical for them to be fine with talking to someone who is religious.

                                                                                          1. 2

                                                                                            Or maybe at some company event they got drunk and made a pass at your wife and you can’t be in their presence without thinking about it

                                                                                            What a weird example to use. Surely if it bothers you this much (FYI people probably make a pass at your wife every week, 100% sober), just go talk to that person.

                                                                                            I do agree with the rest of your post though. It’s hard to have a discussion about anything if you know the person is advocating against you.

                                                                                            1. 2

                                                                                              It was an example of something that would bother some people, not an anecdote from my personal life.

                                                                                            2. -1

                                                                                              Or maybe at some company event they got drunk and made a pass at your wife and you can’t be in their presence without thinking about it.

                                                                                              Jesus. What insecurity. So what if someone made a pass at your wife?

                                                                                        3. 1

                                                                                          I know people have very strong opinions on this subject, and it’s one that is particularly amenable to gut reaction type responses, but surely this could be phrased in a less condescending way?

                                                                                        4. 6

                                                                                          You still don’t know what kind of person I am. The commenting guidelines of Hacker News and Lobsters don’t allow me to show you what kind of person I am. How I say or do things, esp in high-stakes situations, defines me more than what words you read. The people I work with, especially the black folks, have a lot of respect for me and enjoy my company. Almost everyone fist bumps me or (women) big smile or hugs me even though I’m not popular per se. Infamous, too, for reasons I’ll say in a minute but I’ll avoid doing what bothers them when asked. Online in a low-noise forum, I’m just blunt, try to be informative, help people out, and call out BS with counter-arguments usually with citations. All I can do that matches what subset of my nature is allowed on such forums. I slip up and be more combative or low-info at times usually of high stress, low sleep, or just personal failure in self-control. Usually, though, I’m data driven and civil enough.

                                                                                          As you see in this thread and there, I won’t hide when called out. I put myself out there at great risk since I believe in being honest and standing up for your beliefs even when it hurts. So, you want a personal profile? In person, I’m a “nerd” that was ostracized & beat up in kindergarten since I could count without my fingers (a “freak”), that went to black school by 2nd grade, experienced constant discrimination + physical attacks due to skin color (including with concrete! it works, too!), ostracized by white rednecks since I was an intellectual non-hater vs football guru w/ “right” friends, ostracized by white liberals in some places since I was a devout Christian who loved or held to account everyone instead of targeting one group (white males = The Devil), an UU/agnostic later after a lot of reading of Old Testament too much to believe divine inspiration for its evils, a civil rights activist, help people locally (esp society’s outcasts or young workers), a pseudo-union rep defending employees from corrupt/abusive management (including against minorities) for years staying in management’s cross-hairs, gave research/advice on INFOSEC away for no money for years (do that here), and risked my life numerous times to protect strangers that I knew were good people w/ nobody else to help them with no reward expected or given (maybe just sincere appreciation). Plus, unlike imagined “offenses,” watching people suffer from real things makes me feel sick and enraged. I’d probably be richer or popular if I didn’t care.

                                                                                          The result of all this, much of which I didn’t ask for, is I have a blunt style w/ plain dress to filter superficial people, a twisted sense of humor that PTSD victims often develop for managing stress, quick to counterpoint any echo chamber where many people aren’t represented (like I lived in for years), avoid most unnecessary fights, don’t back down in necessary ones (perceive as necessary), and I’m great at “checking” with solid, improvised references thanks to years of self-defense at black school in many on one attacks where weakness = maybe beatdown. At work, I mostly just listen to people’s thoughts/gripes, inform them on interesting stuff, or especially make them laugh. I do the heavy lifting plus most unpopular tasks. Exhausted by the time I get home with sleeping problems on top of it. I think I do OK since most people that came from where I’m from (esp whites in black schools) are racists that mostly look after themselves. A mean, practical bunch. They get much worse in hostile environments with low sleep. I do still constantly listen to feedback from everyone to try to improve myself.

                                                                                          Now, did you guess any of this based on my Hacker News comments outside maybe race since I’ve brought up white guy in black school/company/city issues before? Or did you see me in a few threads represent some dissenting views personally or as devil’s advocate doing same against an echo chamber where you then projected all kinds of terrible judgments on my life as a whole? And while we’re at evaluating each other’s goodness, how many times have you risked imprisonment or stared at death trying to help strangers born in unfortunate circumstances that just needed a boost in life? I’m guessing you didn’t or rarely did based on your response to what little I say on moderated sites. Armchair quarterbacking or low-risk charity is the default of most people since it’s the safest and easiest to do. I’ll still overall reserving judgment in case you similarly sacrifice regularly at risk for others and simply slipped over-projecting.

                                                                                          Note: I’m not even mad in case anyone is wondering. This thread happening after a holiday week and long day at work is just a little more draining… maybe annoying. This one comment just has my focused attention since it opened with a personal attack. Although not easy, years of practice at de-escalation lets me keep it at “lets talk” instead of “lets fight”… most of the time… I’m happy to share what kind of shit produces a walking contradiction like myself with people who may see morality as too binary. Long, tough, complicated life I spent most of helping others with me being in bad circumstances for it esp after Great Recession with lots of layoffs. I’m still recovering from that and bad job I landed but still keep helping folks survive and learn with what resources I have. I learned a lot back from many, too, esp at work, on HN, and on Lobsters. Much appreciation to all for your contributions. I give back what I can.

                                                                                      2. 1

                                                                                        alynpost’s suggestion meets my needs and I withdraw my support for a new category.

                                                                                        1. [Comment removed by author]

                                                                                          1. 15

                                                                                            In that thread @nickpsecurity shared a lot of views I deeply, deeply disagree with. I also shared those views eight years ago. People aren’t all-good or all-bad, and our beliefs aren’t simple or static. Are those arguments stemmed in malice? Ignorance? Circumstance or experiences? I don’t know, but I do know that nick has made many contributions to our community in computing history, formal verification, and software engineering. He’s been nothing but respectful and insightful when I’ve talked with him.

                                                                                            Does that mean it’s okay to be hostile and malicious? Definitely not. Does that mean it’s okay to be ignorant or come from a different context? To me, at least, it is. And while I don’t know whether he’s being malicious or ignorant or hurt or what, I’m willing to give him the benefit of the doubt. I’m willing to give everybody the benefit of the doubt.

                                                                                            We can’t hold everybody up to every standard. God knows I’d fail that, and I suspect everybody else here would, too. Being human is hard, and being a good human is infinitely harder.

                                                                                            1. 8

                                                                                              To me, that reinforces the fact that having an appropriate downvote label is the right thing. That way, we could downvote that particular comment with a clear reason, without otherwise penalizing or alienating them. In theory, this could even serve as constructive feedback, though I admit that’s a stretch.

                                                                                              1. 8

                                                                                                100% agree. I am in favor of a rude/snark/hostile/abuse tag as a means of shaping what we want our community to be. I’m not in favor of banning a person for saying something rude now and then (unless there’s clearly malicious intent and/or they are unwilling to stop being rude).

                                                                                              2. 2

                                                                                                Off topic: have you written anything about you eight years ago vs you today? I’m curious.

                                                                                              3. 13

                                                                                                If someone writes a shitty comment but you don’t see it, does it exist? In every thread about downvotes and mean people, there’s a similar comment that somebody is surprised at all the bad things going on. Maybe if we stop collecting and highlighting all the bad things fewer people will be exposed to them? It seems contradictory that people who don’t want to read bad comments are so eager to click on links to bad comments. Maybe you were right the first time, when you didn’t read the thread.

                                                                                                1. 2

                                                                                                  I’m hesitant to support a ban here, as they clearly have contributed a bunch to the site too (4486 karma at time of writing). The particular comment linked, and some other sentiments expressed in that thread, are ones that I disagree strongly with on a personal level, but it’s unclear whether that alone is grounds for banning someone.

                                                                                                  1. 8

                                                                                                    Disagreeing should not ever be, much less for the invite tree.

                                                                                                    Off-topic can be taken elsewhere.

                                                                                                    Why is this such a problem? Just have someone slap “Here be dragons” on it and hide the thread.

                                                                                                    There is no way to win online.

                                                                                                    1. 4

                                                                                                      Sorry, my comment may have been poorly worded. I was trying to convey that I don’t think disagreeing should be grounds for banning, but my years of living in England may have caused unnecessary understatement.

                                                                                                    2. 2

                                                                                                      What about his karma per story/comment? Is it low or something?

                                                                                                      Let’s compare him to his direct peers.

                                                                                                      5574, averaging 8.48 per story/comment 
                                                                                                      5232, averaging 3.90 per story/comment 
                                                                                                      5191, averaging 2.82 per story/comment 
                                                                                                      4882, averaging 2.86 per story/comment (moderator)
                                                                                                      4762, averaging 5.44 per story/comment 
                                                                                                      4488, averaging 2.45 per story/comment <==
                                                                                                      4165, averaging 6.35 per story/comment 
                                                                                                      3863, averaging 4.19 per story/comment 
                                                                                                      3585, averaging 3.55 per story/comment 
                                                                                                      3098, averaging 3.03 per story/comment 
                                                                                                      

                                                                                                      No, this isn’t data that speaks for itself. I don’t have a conclusion.

                                                                                                      1. [Comment removed by author]

                                                                                                        1. 4

                                                                                                          I’m not willing to generalize “they made a comment I found unnecessarily inflammatory” to “the contributions of this user are tainted and should be purged from the site”. I don’t think you should either, but that’s your prerogative. If a user has repeated offensive behavior, then banning becomes something that can be discussed, but I don’t think there’s evidence of this (at least not that I’ve seen thus far). And suggesting that a ban is an appropriate reaction without extended examples to back that up seems unnecessarily provocative in and of itself.

                                                                                                          1. 1

                                                                                                            Well put.

                                                                                                            I’d be thrilled if lobsters turned out to be a place where “the culture war” was more of a heated discussion.

                                                                                                            1. 2

                                                                                                              I wouldn’t. I already have every other forum to wage the culture war. If this is going to be a place where it’s waged, I’d like it if all culture war links and discussions were regulated to a specific thread that could be easily ignored or hidden.

                                                                                                              1. 1

                                                                                                                I genuinely fear the fragmentation into two camps who refuse to talk will (in years to come) cause a civil war.

                                                                                                                Civil discussion with people whose Overton windows barely intersect ours might yet stop it.

                                                                                                                1. 1

                                                                                                                  You seem to be under the misapprehension that I (and potentially others like me) don’t wish to engage at all in politics or in what we’re calling the “culture war”, because we’re scared or weak or obstinate or have any other set of emotional characteristics that make debate hard.

                                                                                                                  That’s not the case for me at all. I spend nearly all day every day in it, on the internet and in my personal life. I have plenty of avenues to converse with folks who agree and who disagree with me. Speaking hyperbole about a desire to stay focused on a certain subject leading to civil war is frankly hilarious. Politics are important but they are not the most important, and they don’t need to be involved in every single conversation.

                                                                                                                  1. 2

                                                                                                                    You seem to be under the misapprehension that I (and potentially others like me) don’t wish to engage at all in politics or in what we’re calling the “culture war”, because we’re scared or weak or obstinate or have any other set of emotional characteristics that make debate hard.

                                                                                                                    I apologize for coming off this way; not at all my intent.

                                                                                                                    My point (poorly made) was that the ‘no culture war here’ boat sailed long ago (we have hundreds of active users on each ‘side’ now and they aren’t about to ignore their differences to talk tech).

                                                                                                                    The best plausible outcome I can imagine is the discussion remaining civil (if heated).

                                                                                                                    Speaking hyperbole about a desire to stay focused on a certain subject leading to civil war is frankly hilarious.

                                                                                                                    Sorry, not really the right parent comment to attach that idea to. The concept stands, however; there is an increasing urban/rural political divide (in the USA, Australia and the UK, at least), and this sort of geographic political divide has been a precursor to civil war elsewhere.

                                                                                                                    It’d take a decade or more of the trend continuing (and it might reverse in the meantime), but I’d not be so quick to discount it.

                                                                                                                    1. 1

                                                                                                                      I appreciate your reply. I agree that the boat sailed a long time ago. My hope is that we can keep the discussion focused in as much of the site as possible, and limit the war to defined spaces. Fostering community (or even disunity) is all fine if it’s sequestered.

                                                                                                                      And I see now that I misunderstood your comment. I agree about the growing divide. I don’t see as grim a future as you, but I certainly fear for how the disparity in value-sets between the two “sides” grows and festers.

                                                                                                                      (I had a small worry about it earlier this year, but reading this Quora answer/article changed my mind pretty definitively. Even if the young-to-old doesn’t hold, the sheer number of deaths sustained pre-Civil War compared to now is startling and I can’t imagine a modern-day America (or Great Britain/Australia) waiting until it got that bad.)

                                                                                                      2. 2

                                                                                                        Thanks for pointing me to these great comments I would have otherwise missed. I have upvoted them all.

                                                                                                        Oh, and by the way, I think you should be banned because I disagree with you. Apparently that is all that matters?

                                                                                                        1. 6

                                                                                                          It’s dishonest to reduce their position to “you should be banned because we disagree.”

                                                                                                          1. 2

                                                                                                            No, this is exactly what it is.

                                                                                                            1. 3

                                                                                                              “Our forum shouldn’t tolerate posts that I believe denigrate activists fighting for the rights of minorities, therefore we should also ban Gophers who disagree with me on the value of generics.”

                                                                                                              Terrible argument. Try engaging with the actual content of the post rather than its broad structural properties (disagreement).

                                                                                                              1. 3

                                                                                                                that I believe denigrate activists fighting for the rights of minorities

                                                                                                                I’m an activist that fights for the rights of minorities. I constantly survey them. Huge chunks of minority members disagree with the political views or expectations of the group I called out. Your categorization makes no sense in light of that. Instead, proper categorization is I pointed out that they represented one group among many that was dictating how minorities would live or be treated despite a lot of disagreement by minority members outside their group. They also have no interest in what those minority members have to say. One commenter here even said there was a denigrating term for the latter where they were considered deluded or brainwashed by society instead of simply having different views.

                                                                                                                So, I don’t think that’s denigrating “activists fighting for the rights of minorities” if they’re (a) harming the interests or wishes of a lot of minority members, (b) don’t care what they have to say or want a discussion, and (c) will actively censor them or go after their job if they disagreed since that’s the doctrine of those I called out. If anything, that looks like an uncompromising, political movement forcing its views on everyone with a sizeable chunk of liberal non-minorities or minority members agreeing with them but also plenty in disagreement. That means resistance is fighting political pushes, not minorities’ rights. I’m fighting for the rights of all groups that a few on left and right are trying to control, dominate, or punish for non-compliance with those few’s political views. Instead, each group, including within minorities, should have a say on their future with our laws or policies coming from consensuses or compromises from such discussions.

                                                                                                                That isn’t what’s happening. The few are dictating the many including against their wishes.

                                                                                                                1. 3

                                                                                                                  I’m not the person who has a beef with you or called for you to be banned. I was giving what I believed to be a more charitable interpretation of their position than “I disagree with you.”

                                                                                                                  1. 1

                                                                                                                    Sorry if I jumped the gun. Quite a few of these were about me then I projected onto a quick read of your comment. Then, let’s consider that one directed at whoever that was if they’re reading.

                                                                                                              2. 2

                                                                                                                I think that’s a disingenuous interpretation of the opinions expressed in this thread as a whole. If anything, the overall impression I’m getting is that we are all concerned about how to get this right such that it doesn’t cause downvoting and banning just because you disagree with someone. You’re right that the specific comment you replied to did bring up the question of whether the poster of the comment in question could be banned, but as you can see from the subthread below it, this is not something most people seem to agree with. As far as I can tell, your comment is at best unnecessarily inflammatory, if not outright trolling — what constructive discussion were you hoping to initiate with your post that couldn’t also be stated in a much less snarky and passive-aggressive way?

                                                                                                                1. 4

                                                                                                                  what constructive discussion were you hoping to initiate with your post that couldn’t also be stated in a much less snarky and passive-aggressive way?

                                                                                                                  I believe this type of language police that you are trying to practice here is more harmful to humanity than nuclear weapons, global warming, Donald Trump, and even Google; and I will fight my whole life against all effort to police language and thought.

                                                                                                                  I speak the way I want to speak and absolutely nobody can tell me I speak the wrong way.

                                                                                                                  1. 3

                                                                                                                    I’m baffled that you feel as though any of that advocates policing what you’re allowed to think, or what you’re allowed to speak about. That was not at all my intention. I think there is real value to having a conversation be civil, and especially so if it’s with someone I disagree with, and that’s what I’ve been suggesting here. That the way in which you put your argument into words matters, and that you should take care to make it precise and to-the-point. Otherwise it all reduces to petty shit-posting back and forth, which serves no-one and resolves no disagreements.

                                                                                                      1. 5

                                                                                                        Battlestation pic I took last week and screenshot from right now. That Millennium print-out has my face ’shopped on, cuz I wore an all-white outfit last week for fun, and my coworkers found it hilarious.

                                                                                                        1. 13

                                                                                                          So ostensibly the entire world has access to the hacking capabilities of the CIA (ಠ ὡ ಠ )/

                                                                                                          If you needed another reason to never buy a ‘smart’ device, I guess this is a big one.

                                                                                                          Well, at least we got a pretty good repository of Japanese kaomoji in the process (。◕‿‿◕。)

                                                                                                          1. 16

                                                                                                            If you needed another reason to never buy a ‘smart’ device, I guess this is a big one.

                                                                                                            This is really bad advice. ‘Dumb’ phones communicate exclusively over PSTN or SMS, which are easily traceable/subpoena-able/intercepted by any middleman. In addition the phone company has your metadata, which Verizon (at the very least) has been more than happy to send wholesale to the NSA.

                                                                                                            The only thing this dump revealed about encryption apps is if you hack the mobile phone that’s running Signal or Whatsapp, you can read all of the messages that are on it, and the CIA has several techniques for compromising phones that have previously been reported on. Signal and Whatsapp still offer excellent end-to-end encryption, especially compared with a dumb phone.

                                                                                                            I mean yes. If the CIA wants to target you specifically I’d bet on them over your security practices. But it’s no excuse for the rest of us to just abandon secure communication and encryption

                                                                                                            1. 9

                                                                                                              I guess I should have been more explicit; I meant IoT devices, not smart phones. I definitely agree with you there.

                                                                                                              The other point was that these programs have been leaked, which means it’s not just the CIA, but any random script kiddie who might want access to your smart TV or toaster or whatever.

                                                                                                              1. 3

                                                                                                                Ah. Yes, that’s right.

                                                                                                              2. 2

                                                                                                                The only thing this dump revealed about encryption apps is if you hack the mobile phone that’s running Signal or Whatsapp, you can read all of the messages that are on it, and the CIA has several techniques for compromising phones that have previously been reported on. Signal and Whatsapp still offer excellent end-to-end encryption, especially compared with a dumb phone.

                                                                                                                Totally agreed.

                                                                                                                I don’t exactly know how these 0days are exploited, but let’s assume it’s over an airgap. The big question then becomes can anything be exploited from a cell site simulator, or in bulk from some other briefcase sized device (or smaller)? And if so, is the smart phone of every protester in America already pwned by law enforcement?

                                                                                                                (Edit: And, is there anyway to detect that these devices have been exploited?)

                                                                                                              3. 11

                                                                                                                (\/) (°,,°) (\/) WOOPwoopwowopwoopwoopwoop!

                                                                                                                I particularly like the annotations on this one.

                                                                                                                1. 3

                                                                                                                  Zoidberg?

                                                                                                                  1. 3
                                                                                                                    1. 1

                                                                                                                      Is that somehow related to Lobsters being named Lobsters? @_@

                                                                                                                2. 5

                                                                                                                  Hacking tools are all over the web. 0days get patched quickly after suck leaks. I believe the biggest consequence of those leaks is attribution. If your organisation has been attacked, you can now possibly link the tool used to the CIA. Things can get quite nasty, especially since they used tools like: “With UMBRAGE and related projects the CIA cannot only increase its total number of attack types but also misdirect attribution by leaving behind the "fingerprints” of the groups that the attack techniques were stolen from.“.

                                                                                                                  1. 1

                                                                                                                    The other consequence of not disclosing 0days is that if the bad guys receive the leak from the CIA (Via key logging on home/work computers, or just simple threats and blackmail) instead of wikileaks then they can exploit it until the public finds out. So any agency not disclosing 0days to vendors and/or the public in a timely (Less than a month) manner is putting everyone’s safety at risk, not just the other bad guys'.

                                                                                                                  2. 4

                                                                                                                    I downloaded the 7z file and noticed a lot of out of place pages and files including some reaction-style gifs. very weird.

                                                                                                                    1. 2

                                                                                                                      Any stenography in those gifs?

                                                                                                                      1. 2

                                                                                                                        To me it feels more like some random person’s junk drawer. There are PDFs of file lists of possibly more interesting systems.

                                                                                                                    2. 2

                                                                                                                      What cell phones do people in the CIA use?

                                                                                                                      1. 3

                                                                                                                        Probably not android 4.

                                                                                                                        1. 2

                                                                                                                          Agreed. I’m just wondering, though. If all the major phone OS are hackable by the CIA, clearly the CIA can’t just be using a regular android phone … or they’d be open to hacking themselves.

                                                                                                                          If they are running android, then the CIA is patching android to avoid the zero-days they know about? Pretty impressive.

                                                                                                                          1. 2

                                                                                                                            Well, some of this appears to be not zero day material. Like a jailbreak for iOS 8 with no passcode or whatever. So I think there’s two assumptions to question: 1. if it’s for a phone that’s entirely up to date. 2. how much they care about reciprocity. (My very loose, very casual understanding is that the CIA does not spend much time worrying about defense. That’s not their department.)

                                                                                                                            1. 1

                                                                                                                              I started googling and found out they use dead rats, instead of cell phones :)

                                                                                                                              http://www.earthtouchnews.com/wtf/wtf/forget-cellphones-cia-agents-use-dead-rats-to-stay-in-touch

                                                                                                                              1. 1

                                                                                                                                Oh, I did forget about the time they were caught using phones.

                                                                                                                                http://articles.chicagotribune.com/2005-12-25/news/0512250380_1_abu-omar-robert-seldon-lady-cia-operatives

                                                                                                                                There’s also some speculation based on location tracing of burner phones in the Greek affair.

                                                                                                                                https://badcyber.com/the-great-greek-wiretapping-affair/

                                                                                                                        2. 2

                                                                                                                          The one every other person in the CIA uses, after all, you don’t want everybody else to think that you have SOMETHING TO HIDE.

                                                                                                                      1. 10

                                                                                                                        This is a good template. I like how it looks and how it reads. I don’t know that I could sell any of my coworkers on writing it, but if it could be implemented as a commit template by default, it would be very nice.

                                                                                                                        1. 5

                                                                                                                          That’s the problem. You really need some discipline, rebasing, and rules to make it work in a team or large project. Another thing that can help is a template or tool that sets the boilerplate up for you.

                                                                                                                        1. 11

                                                                                                                          Despite having little patience, spending little time, and bearing severe prejudice against Yarvin, the last time I dug through urbit-related docs and descriptions I was impressed by the ideas and the parts of the system design that I understood. My previous comments (with a strong “you can’t be serious” flavor to them) seem ill-considered to me.

                                                                                                                          (edit) Having just re-read the set of c3 integer types and

                                                                                                                          Some of these need explanation. A loobean is a Nock boolean - Nock, for mysterious reasons, uses 0 as true (always say “yes”) and 1 as false (always say “no”).

                                                                                                                          it’s hard to say that urbit devs couldn’t be trying to fuck with people, just a bit.

                                                                                                                          1. 2

                                                                                                                            it’s hard to say that urbit devs couldn’t be trying to fuck with people, just a bit.

                                                                                                                            If I remember correctly, Yarvin regrets this decision. He wanted to get outside of a given dev’s comfort zone to make them pay attention, but this one was a little too much.

                                                                                                                            1. 7

                                                                                                                              I think the criticism here (despite being written in terms of humans, sapient horse-like beings, and Martians) is good, both in these quotes and elsewhere.

                                                                                                                              Still, [“Martians,” the Urbit developers] fail their public every time they use esoteric terms that make it harder […] to understand [Urbit]. The excuse given for using esoteric terms is that using terms familiar to Human programmers would come with the wrong connotations, and would lead Humans to an incorrect conceptual map that doesn’t fit the delineations relevant to Martians. But that’s a cop out. Beginners will start with an incorrect map anyway, and experts will have a correct map anyway, whichever terms are chosen. Using familiar terms would speed up learning and would crucially make it easier to pin point the similarities as well as dissimilarities in the two approaches, as you reuse a familiar term then explain how the usage differs.

                                                                                                                              [T]he Urbit authors are not trying to be understood, trying their best not to be, and that’s a shame, because whatever good and bad ideas exist in their paradigm deserve to be debated, which first requires that they should be understood. Instead they lock themselves into their own autistic planet.

                                                                                                                              Good thing that nobody cares whether I flip or flop because I’m back to “some useful clever ideas thoroughly embedded in a mountain of impractical clever ideas explained in a deliberately hard-to-understand mess promising many things that will never be delivered”.

                                                                                                                              1. 1

                                                                                                                                I was hoping someone would post the arguments from the Houyhnhnm perspective.

                                                                                                                              2. 3

                                                                                                                                To play devil’s advocate, that’s how it works in shell… there is only one way to succeed, but there are multiple ways to fail.

                                                                                                                                1. [Comment removed by author]

                                                                                                                                  1. 2

                                                                                                                                    Shell has an if statement and && and || constructs. The 0 integer is true, and 1 and non-zero values are false.

                                                                                                                              3. 1

                                                                                                                                It wasn’t for mysterious reasons. Way back when, the first versions of Nock and Hoon had chosen this specifically because it was different and they wanted to buck norms.

                                                                                                                              1. 1

                                                                                                                                Could this be solved with a vcs like git? I have Working Copy on my iphone, git on my desktop and laptop, and can run portable git on other computers; any time I make a change, I could “git commit && git push”.

                                                                                                                                Slightly more cumbersome than auto-saving to dropbox, but a lot more resistant to messing up than other methods.

                                                                                                                                1. 1

                                                                                                                                  I don’t really think git’s conflict resolution will work that much better on the todo.txt format in particular, though it’s certainly a step up in safety.

                                                                                                                                  1. 1

                                                                                                                                    Tangential to your point, butI believe dropbox actually uses a standard vcs under the hood. Last time I checked it was Mercurial, though that’s just scuttlebutt I’ve read around the web.

                                                                                                                                  1. 20

                                                                                                                                    Listening to the recent Software Engineering Daily Podcast episode about Urbit, I was struck by how forcefully these big companies are pushing to create not just “walled gardens”, but entire ecosystems where every piece of the internet is accessed through or from their service: both Facebook and Google load pages in their bundled browsers instead of the default browser, which is only one step away from serving a cached version from their own website, ostensibly under the banner of speed and ease.

                                                                                                                                    It’s so sad that after the rejection of the AOL model, that’s the direction the major players keep pushing towards.

                                                                                                                                    1. 16

                                                                                                                                      Agreed. It seems silly that Google would try to paint AMP as anything other than ‘we are exercising our ability to control what users see’. Its exactly that, another ‘walled garden’ or ‘golden handcuffs’. It goes against exactly what the web is made for.

                                                                                                                                    1. 11

                                                                                                                                      Sounds great except for the reward if it’s based on quantity. That could hurt the signal-to-noise ratio. My last post about this included trying to vet the people a bit for likely quality of contributions. Invite only best with diverse background in tech or skills. That leads to low numbers but potentially greater content.

                                                                                                                                      Just a thought.

                                                                                                                                      1. 5

                                                                                                                                        Invite only best

                                                                                                                                        What about users like me who definitely aren’t the best in whatever field they work/care about? This is the classic tension of forums, I understand, so I have no ideas for how to solve it, but I feel it necessary to speak up when it could have affected me.

                                                                                                                                        1. 2

                                                                                                                                          The best was probably poor choice of a word on my part. I’m thinking the best type of participants to have on a site. That will range in skill level. What they need is willingness to learn, participate in civil way, and useful understanding of at least one thing (preferably technical). It’s why you saw me bring in a UX expert on Eve project, an expert of appliances (esp planned obsolescence) for a specific article, and was going to bring hga as his perspective on IT (esp older machines) goes way back. Each could contribute something useful that we’d learn from. A few others were smart but pissing people off on HN w/ counters not citing evidence. Low-quality posts w/ extra conflict. I didn’t send them an invite.

                                                                                                                                          That’s how I’m approaching bringing in the “best” kind of people. I’m just imagining 100+ such people from different sub-fields of tech or business IT might make comments section full of info. I have no idea what it will do to the front page as that can go many ways.