1. 2

    Hello! Welcome to the world of Nekoyume. Please set your own private key and input that in the form below so that you can start game right know. Private key is a password that identify you. Please make this unique.

    What?

    There’s no description or anything.

    1. 2

      Kind of weird to link directly to the demo…

      https://nekoyu.me/ the index has descriptions.

    1. 3

      I did a facepalm at the “It turns shadowing from a frequent cause of bugs into something that prevents bugs!”

      1. 5

        I think it’s really not quite as bad because you have the semantic information through the variable name and a strong type system backing you. There are definitely times where I’m taking the same piece of data but transmuting it over a sequence of types for different reasons like encodings and such and it’s a pain to perform that ceremony of Hungarian notation. If the semantics remain the same and the type encoding is the only difference, maybe shadowing is the right thing, especially with lifetimes.

        1. 1

          I think the mentality is, that a variable isnt anIdentifier, but kind of apair (anIdentifier, aType), so repeating the information contained in the type in the identifier is redundant and sometimes even bad, because after a refactoring the type might have changed (from a vector to an iterator for example, etc).

          Of course this shouldn’t be the opportunity to name all local variables x, but it can make sense for a chain of transformations, filtering down a result list for example.

      1. 1

        Can SIGSTOP be used with similar effect?

        1. 2

          PTRACE_ATTACH sends SIGSTOP to this thread.

          http://man7.org/linux/man-pages/man2/ptrace.2.html

          I’m not clear on what the benefits of using PTRACE_ATTACH over SIGSTOP is but I think it’s that you actually get a tracer connection to the thread/process?

        1. 12

          What is this? A “news” website that quoted a twitter post with an inline screenshot of an email from a google groups list?

          Here’s a direct link to the email: https://groups.google.com/d/msg/lisalist/aIo6cNu54xM/_Ck_CsmSBgAJ

          1. 5

            Wow, this is going to be cool! One of the biggest gripes I have with both Ruby and Python is that it’s so hard to understand what is happening when your program is no longer making forward progress and your logs just stop. When I try to sample the process, I just get code from the interpreter executing some generic byte code operations. If I’m lucky, the code is calling into some C library or implementation and I can infer where in the code the program has halted or is looping over or is spending most of it’s time.

            1. 3

              Have you tried DTrace? Ruby has been instrumented since 2.0. Most of the popular language runtimes are!

              1. 2

                My vague impression is that Python code “ought” to be easy to pull a stack trace out of, without needing to modify your program, provided you have debug symbols for the interpreter, because you can walk the Python stack automatically in gdb with a script that knows which C functions correspond to bytecode evaluation and which of their local variables correspond to line numbers and function names - see py-bt on https://wiki.python.org/moin/DebuggingWithGdb

                1. 1

                  Visual studio made some really impressive stuff for seamlessly switching between c++ and python callstacks. https://docs.microsoft.com/en-us/visualstudio/python/debugging-mixed-mode

                2. 2

                  Agreed! One of our Ruby apps has a section that seems far too slow for no apparent reason. Last time I worked on it, I spent a day or so fiddling with profilers, to no avail. Anything that makes that easier is a good thing for the Ruby ecosystem.

                1. 2

                  Usually Excellent but sometimes Average. But this is not true for a large number of people I work with. I work at a very large and successful brand name company and I’m 2.5 years out of college.

                  Most days call into standup from my car at 10:15. Standup is my cue to start driving to work. I get to one of my work’s parking lot at 10:45 and take 15 minutes to walk the half-mile to my building/office. I work from 11 to noon where I then get lunch until 1. I work until 4 when I get a bit tired and start studying Japanese and Mandarin at the lunch table. I study until 6 where I then either go to my language class or the gym or a sports game. I get home at around 9, chill out, and go to bed.

                  Some days I work at home a bit at night or the weekends whenever I feel like I can get some productive work going on something interesting or when the load on our infrastructure is a bit lower and I can take over more of our device fleets.

                  Once every three or six months there’s some massive fire where I actually work from home at 9 to 11, go to work, get lunch for an hour, and work until about 6, and do my regular after work debauchery. Then I work a bit from home at night like check my tests, fix some stuff, submit for more tests, go to bed to check them the next day.

                  I’ve been very successful in my career working this due to a combination of being the most senior person on my team at 2.5 years, being an extremely efficient engineer because I only allocate a few hours to work a day, and having very clean development. I also hate doing work so I push back on anything I find dumb or a waste of time or doing things that will lead to more work later. I notice a lot of other people even more senior than me fail to communicate issues like this and usually fail to push back on things that make no sense. Many people I work with end up either doing 9-5 but many also do 8-6 or 8-7. I try to get them to stop overworking but they always retort that there’s so much work left. I hate that mentality because there’s always more work to do. I’ve historically had very lenient managers and my newest manager seems to accept the fact with a disgruntled look on his face. But hey, he loves that he doesn’t actually have to manage me and I’m a free spirit who provides strong feedback.

                  1. 39

                    The argument seems to rely on the cost of static typing, which is stated in the following four points that I challenge:

                    It requires more upfront investment in thinking about the correct types.

                    I don’t buy this argument at all. If you don’t think about correct types in a dynamic languages, you will run into trouble during testing (and production, when your tests aren’t perfect). You really have to get your types right in a dynamic language too. Arguably, with a statically typed language, you have to think less because compiler will catch your error. I think that’s the whole point of statically typed languages (performance concerns aside).

                    It increases compile times and thus the change-compile-test-repeat cycle.

                    I’d have to see some proof to show that static typing plays a significant role in compile time. I’ll buy that you can make a very complicated (perhaps turing complete) type system and that would have a big impact. But there are statically typed languages that compile really fast, and most of the compile time is probably not spent on types. I’d argue that it is likely for the compiler to catch your error with types faster than you could compile, run, and test to find the same error with no types.

                    It makes for a steeper learning curve.

                    That may or may not be true. Sure, a type system can be very complicated. It doesn’t have to be. On the other hand, a dynamic language will still have types, which you need to learn and understand. Then, instead of learning to annotate the types in code, you learn to figure out type errors at run time. Is that so much easier?

                    Either way, I don’t believe type systems are an insurmountable barrier. And I think some people give the learning curve way too much weight. Maybe they are working on throwaway software on a constantly changing faddy tech stack, in a place with high employee turnover. It’ll matter more. I suppose there’s a niche for that kind of software. But I’m more into tech that is designed for software that is developed, used, and maintained for years if not decades. A little bit of extra learning up front is no big deal and the professionals working on it will reap the benefits ever after.

                    And more often than we like to admit, the error messages a compiler will give us will decline in usefulness as the power of a type system increases.

                    That might be the case with the current crop of languages with clever type system, though I don’t know if it’s inherent. Do static type system need to be so powerful (read: complicated) however? A simpler system can get you just as much type safety, at the expense of some repetition in code.

                    I think there are dimnishing returns, but not due to the cost of static typing as such, but rather due to the fact that types just don’t catch all errors. Once the low hanging fruit is out, there’ll be proportionally more and more logic errors and other problems that aren’t generally prevented with types. Or you could catch these with extensive type annotation, but the likelihood of preventing a real problem becomes small compared to the amount of annotation required. And then there’s the usual question: who checks the proof?

                    There have been some famous bugs that resulted from systems using different units. So if these numeric quantities were properly typed, these bugs would have been prevented. However, what if we change the scenario a little, and suppose we’re measuring fuel or pressure, in the right units. But we read the wrong quantity – spent fuel instead of stored fuel, or exterior pressure instead of interior pressure? Sure you can add more types to prevent such misuse, but it gets more and more verbose, and then you’re moving closer and closer to re-expressing (and thus enforcing) the program logic in the language of the type system; we could consider that to be a language of its own.

                    Now you have two programs, and one can prevent bugs in the other, but both could still be buggy. And the other program starts to grow because you start needing explicit conversions to enable the code to actually perform a computation on internal-pressure-in-pascal. Of course you are subverting the type system when you say you really want to convert internal-pressure-in-pascal to just pressure-in-pascal or whatever. Bugs ahoy?

                    1. 18

                      A simpler system can get you just as much type safety, at the expense of some repetition in code.

                      I agree with most of the rest of your comment, but this part is untrue. Stronger type systems do allow you to enforce more powerful laws at compile time. At one end of the curve we have a type system like C’s, which barely buys you anything, and then at the other end we have full dependent types where you can prove arbitrary invariants about your code (this function always terminates, this value is always even, etc.) that you cannot prove in a weaker type system. In between is a huge spectrum of safety checking power.

                      1. 8

                        The C type system can actually be quite powerful if you wrap basic types in one element structs. struct meter { int v; } and struct foot { int v; } can’t be added by mistake, but can still be worked with using one line inline functions with no performance penalty. It’s just work (which nobody likes).

                        1. 5

                          I would not describe that as “quite powerful” at all. That’s one of the most basic things a type system can give you.

                          You can’t really prove any interesting properties until you at least have proper polymorphism. Java doesn’t, for example, because every object can be inspected at runtime in certain ways. In a sensible type system, there are no properties of objects except those which are explicitly stated in the type of the object.

                          In such a type system, you can prove interesting properties like that a data structure does not “depend” in any way on the objects in contains. For example, if you could implement a function

                          fmap :: (a -> b) -> f a -> f b
                          

                          Which “mapped over” the contents of your object with some function, this would prove that your object never inspects its contents and therefore its structure does not depend on the values of its contents (because this function is universally quantified over ‘b’, and therefore you could map every ‘a’ to a constructed type which cannot be inspected in any way).

                          You can prove all sorts of useful properties like this (often without even realize you’re doing it) once you have proper quantification in your type system. One of the coolest quantification-based proofs I know of is that Haskell’s ST monad is extrinsically pure.

                          As you add more power to your type system (up to full dependent types, linear types, etc.) you can prove more and more useful things.

                          1. 2

                            As long as you like all your types disjoint, sure. But I’ll pass.

                            1. 2

                              So what’s wrong with disjoint types?

                              1. 2

                                It doesn’t you have rationals and floats that are both numbers for example.

                                1. 2

                                  In Ocaml ints and floats are different types and operators like (+) only apply to ints, one has to use (+.) for floats. It’s not a problem IME.

                                  1. 1

                                    I think automatic type conversion of ints to reals was the original sin of FORTRAN.

                                  2. 1

                                    In mathematics the system Z of integers and the system R of reals are different. The number 3 has different properties depending on system context - for example 3x = 1 has a solution in the second context.

                              2. 0

                                But it lacks a keyword connection to category theory.

                            2. 12

                              I don’t buy this argument at all. If you don’t think about correct types in a dynamic languages, you will run into trouble during testing (and production, when your tests aren’t perfect). You really have to get your types right in a dynamic language too. Arguably, with a statically typed language, you have to think less because compiler will catch your error. I think that’s the whole point of statically typed languages (performance concerns aside).

                              That’s a good point and one that took me a long time to learn: if a concept cannot be expressed in a language, it doesn’t magically disappear and absolve the programmer from thinking about it. Types are one example as you mention; similarly, in many discussions about Rust, some people mention that the borrow checker is an impediment to writing code. It’s true that some programs are rejected by the compiler, but lifetime and ownership are also concerns in C programs as well. The main differences are that in Rust you have rules and language constructs to talk about those concerns while in C it’s left to documentation and convention.

                              1. 7

                                But there are statically typed languages that compile really fast, and most of the compile time is probably not spent on types.

                                OCaml is a good example of this.

                                1. 3

                                  I don’t buy this argument at all. If you don’t think about correct types in a dynamic languages, you will run into trouble during testing (and production, when your tests aren’t perfect). You really have to get your types right in a dynamic language too. Arguably, with a statically typed language, you have to think less because compiler will catch your error.

                                  It’s true that you have to get the types right in a dynamic language, but the appeal of dynamic languages isn’t that you don’t have to think about types. It’s that you don’t have to think about the shape of types. For example:

                                  def make_horror_array(depth: int):
                                      arr = []
                                      deepest_arr = arr
                                      
                                      for i in range(depth):
                                          deepest_arr.append([])
                                          deepest_arr = deepest_arr[0]
                                      deepest_arr.append(depth)
                                      return arr
                                  

                                  What type should that return? Contrived, but it’s not the gnarliest type problem I’ve run into. Sometimes it’s nice to have a language where I can give up on getting the types right and rely on tests and contracts to check it.

                                  1. 4

                                    It’s that you don’t have to think about the shape of types.

                                    How do you use a value without thinking about it’s type or shape?

                                    In your example, you can’t just blindly apply numerical operation to first element of that horror array since it might be another array. So, if you wanted to get to the value inside of those nested arrays, you’d need to think about how you would “strip” them off, wouldn’t you? And wouldn’t it mean that layers of nesting have some special meaning for us?

                                     

                                    Taking your implementation as reference:

                                    >>> make_horror_array(0)
                                    [0]
                                    >>> make_horror_array(1)
                                    [[1]]
                                    >>> make_horror_array(5)
                                    [[[[[[5]]]]]]
                                    >>> make_horror_array(10)
                                    [[[[[[[[[[[10]]]]]]]]]]]
                                    

                                    we can write a Haskell version that distinguishes between a value nested in a “layer” and a value by itself:

                                    λ> :{
                                    λ> data Nested a = Value a | Layer (Nested a)
                                    λ>
                                    λ> -- just for presentation purposes
                                    λ> instance Show a => Show (Nested a) where
                                    λ>   show (Value a) = "[" ++ show a ++ "]"
                                    λ>   show (Layer a) = "[" ++ show a ++ "]"
                                    λ> :}
                                    λ>
                                    λ> mkHorror n = foldr (.) id (replicate n Layer) $ Value n
                                    λ> :type mkHorror
                                    mkHorror :: Int -> Nested Int
                                    λ>
                                    λ> mkHorror 0
                                    [0]
                                    λ> mkHorror 1
                                    [[1]]
                                    λ> mkHorror 5
                                    [[[[[[5]]]]]]
                                    λ> mkHorror 10
                                    [[[[[[[[[[[10]]]]]]]]]]]
                                    

                                    and if we don’t need layers anymore, we can get value out pretty easily:

                                    λ> :{
                                    λ> fromNested :: Nested a -> a
                                    λ> fromNested (Value a) = a
                                    λ> fromNested (Layer a) = fromNested a
                                    λ> :}
                                    λ>
                                    λ> fromNested (mkHorror 0)
                                    0
                                    λ> fromNested (mkHorror 5)
                                    5
                                    
                                    1. 4

                                      Assuming it’s correct, it should return whatever the type inference engine chooses for you :)

                                      1. 1

                                        This is because type theory is confused about what programs do - which is operate on bit sequences (or, these days, byte sequences). These sequences may be representations of mathematical objects or representations of things that are not mathematical objects, but they remain representations, not actual ideal mathematical objects.

                                      2. 1

                                        Now you have two programs, and one can prevent bugs in the other, but both could still be buggy.

                                        Aren’t a lot of type systems proven type-correct nowadays?

                                        1. 3

                                          The type system can be fine but the rules you define with the types could be flawed. Thus, you can still write flawed programs that the type system can’t prevent because the types were defined incorrectly.

                                          1. 1

                                            Can you give an example? I’m not sure exactly what breed of incorrect types you’re referring to.

                                        2. 1

                                          It requires more upfront investment in thinking about the correct types.

                                          I don’t buy this argument at all. If you don’t think about correct types in a dynamic languages, you will run into trouble during testing (and production, when your tests aren’t perfect).

                                          One thing I am learning from working with inexperienced developers is that even thinking about which container type you are using is a challenge. Should your function return a Seq? An Array? An Iterator? A Generator? And what if your new library returns a Generator and the old one returned an Iterator and now you have to rewrite all your declarations for seemingly no reason at all? Some kind of “most general type” restriction/requirement/tool would help with this…

                                          1. 2

                                            This is one of the things I think Go does really well (in spite of having a generally quite weak type system) - thanks to implicit interfaces, you can just return the concrete type you’re using and the caller will automatically pick up that it ‘fits’.

                                            1. 1

                                              This sort of works – but even with that system, it’s easy to declare one’s types too tightly.

                                              It depends in part on how granular the collection library’s interfaces are (ditto for numeric tower, effects tracking, monad wizard tool).

                                            2. 1

                                              I’m unclear what you mean. Many languages offer two solutions. You can declare the variable IEnumerable or whatever as appropriate. Or you declare the variable as “whatever type the initializer has”.

                                              1. 3

                                                When in doubt, use the inference!

                                                1. 1

                                                  It is sometimes easy to choose wrong. Iterable vs Iterator vs Enumerable

                                            1. 5

                                              Is this interesting if it doesn’t have any features to be able to process English and extract semantic understanding rather than just have its own new completely fixed syntax that you have to learn? you may as well just learn the thing you’re trying to do directly instead of the betty syntax…

                                              here is how it matches if you want to count something.

                                              match = command.match(/^count\s+(?:the\s+)?(?:total\s+)?(?:number\s+of\s+)?(words?|lines?|char(?:acter)?s?)\s+in\s+(.+)$/i) ||
                                                      command.match(/^how\s+many\s+(words?|lines?|char(?:acter)?s?)\s+are(?:\s+there)?\s+in\s+(.+)$/i)
                                              

                                              .. so with any other natural English syntax other than the fixed ones it’s programmed for, it won’t work.

                                              1. 4

                                                Makes me think of old adventure games.

                                                “Get ye flask.” “You cannot get ye flask”

                                                ..but I agree. It would make more sense to try and use something like NLTK or ParseyMcParseFace. Maybe an idea for future versions?

                                                1. 0

                                                  Regex and yacc are the new NLP.

                                                2. 2

                                                  That code snippet immediately disappointed me in Betty. I thought it was using a service like https://api.ai/ to match patterns. Could’ve beaten looking up a command on stackoverflow for one-off jobs.

                                                  1. 1

                                                    Uhm… Would you like to have a tool send all commands to remote host? I agree that the simple text approach is not much different from stackoverflow.com search but sending everything I type to some web service would be a lot worse for me.

                                                    1. 2

                                                      sending everything I type to some web service

                                                      That is what you’re doing when you’re searching on stackoverflow.

                                                      1. 2

                                                        The other key is “everything I type”. I sanitize my queries to the outside internet pretty thoroughly at my work.

                                                        1. 1

                                                          The key is “some web service”. I trust stackoverflow.com with programming questions, and even if I don’t there is a dump of all answers available.

                                                    2. 1

                                                      Even if it did use some kind of NLP, why would I want this? “OK, Google” misinterprets what I want maybe 25% of the time. Why would I want that kind of ambiguity on the command line. That’s literally why I use a command line, because there is no ambiguity, when I type X, Y happens. Every. Single. Time.

                                                    1. 9

                                                      I strongly disagree with this from a business standpoint. Sure, MacOS might be better documented by some collaborative effort but it very well may not be supported. Collaborative documentation ends up describing the current state of systems and processes instead of the intended flow. Documentation is a pseudo-contract between consumers and producers where consumers know what to hold producers to and producers know what they must provide to consumers. By pushing the documentation to only the consumer side, you start seeing documentation that solidifies bugs into something people start depending on because that is how it was documented. When that bug gets fixed, all of a sudden, you have nothing to point to that says you were allowed to use it in that way. Fundamentally, it doesn’t solve the problem that there is no support provided by the producing side and we are just pushing the problem a little further down the investment pipeline.

                                                      1. 4

                                                        The first `demo’ crashed my laptop. I haven’t had to restart my computer in a long time.

                                                        1. 1

                                                          Worked for me on my MacBook Pro 2017 in Safari. Pretty impressed that it can take down your system. Probably worth a bug report.

                                                        1. 1

                                                          Is it a present-day 0-day that’s been fixed in iOS/Android?

                                                          (For those who haven’t the time to read through all the details of the post?)

                                                          1. 1

                                                            Should be fixed in July updates.

                                                            1. 1

                                                              Should be fixed in July updates.

                                                              What does that mean? July is almost over. Apple did release some security updates recently, are you saying those included fixes to this?

                                                              EDIT: Ah yes, appears they did at the bottom here, CVE-2017-9417.

                                                              1. 2

                                                                https://source.android.com/security/bulletin/2017-07-01

                                                                Also for android. I just double checked my Pixel has this update so it’s distributed and available.

                                                            1. 10

                                                              Choose your hashes and your designs carefully!

                                                              Isn’t the moral here that you should try to plan for hash alg changes? Because “Choose your hashes” is just hindsight, really. When SVN was designed, SHA1 was probably still “safe”, right?

                                                              1. 13

                                                                Plan for changes. And then start making them. SVN isn’t alone here, but there was a solid ten year lead time between “SHA1 can have collisions” and “I told you so”. The state of RC4 is somewhat similar, with people refusing to move because it wasn’t broken enough. (And a lack of clear direction forward in some cases.)

                                                                Google went to considerable effort to create a collision. If they hadn’t, people would still say it’s only a theoretical concern. Be thankful it’s still just a warning shot.

                                                                1. 2

                                                                  There was a submission a long while ago talking about various strange behaviors of crypto material. One was that there was an algorithm that used as a hash, two hash functions and XORed the results together to create the final hash. This allowed them to survive the deprecation of MD5, though they never moved away from MD5. I wonder how useful it is to do this as a way of transitioning away from aging weakly vulnerable hashes.

                                                                  1. 3

                                                                    XOR is worse than concatenation for combining hashes if you’re looking for collision resistance. Here’s a paper describing the safest way to combine two hashes: https://eprint.iacr.org/2013/210

                                                                    Also, see this answer on crypto StackExchange describing various failures of combined hashes.

                                                                    1. 2

                                                                      Yes, that is strange. :) I think the crypto community usually frowns on things like that. Consider that at the time you had something better than MD5 to stir into the result, you could have just used that something better. MD5 ^ SHA1 isn’t notably superior to just SHA1. SHA1 ^ SHA2 isn’t really better than SHA2.

                                                                      1. 1

                                                                        I think the crypto community usually frowns on things like that.

                                                                        Is it just “that’s pointless” or could it really hurt? Is it likely or inevitable that the output of two different hash functions on the same input would have coincidental correlations that cancel out with the xor, creating a subtly biased composite function that is worse than the sum of its parts?

                                                                        1. 1

                                                                          Indeed: It used to be frowned on because people were concerned that there might be some subtle interaction between the algorithms, although I’ve never seen any evidence of such interactions “in the wild”.

                                                                          With modern cryptographically strong hash functions, which have a much stronger theoretical base for their security, it’s just a pointless waste of time. I guess you gain a slight ‘security through obscurity’ benefit: an algorithm for generating collisions in SHA-2 (if such a thing were to be discovered) might not work on your custom SHA1^SHA2 implementation, but the same background theory could probably be used to break your implementation - it would just take a little more time.

                                                                          1. 1

                                                                            The contrast between crypto and os/application level approach to security is striking.

                                                                            In the former, an algorithm once accepted is assumed secure until someone publishes a paper or poc that demonstrates a weakness. Furthermore it is assumed that these first discoveries are always more theoretical than practical, so there is no “zero day” rush to change algorithms.

                                                                            In the latter case, we assume there are undiscovered bugs that could be weaponized in a short timeframe, and defense in depth is the norm.

                                                                            I do not find it surprising that some developers reach for tricks like mixing the output of two different algorithms. After all, if mixing predictable data (message) with pseudo-random noise (keystream) works for encryption and mixing potentially predictable data (time, io events, etc.) with other such events works for entropy pool mixing, why wouldn’t it work for mixing hashes (which can be thought of as being pseudo-random noise seeded with the key)?

                                                                            If there were no undesirable interactions between two different hash algorithms, intuition says that mixing one with the other is safe as long as one of the algorithms remains secure. And again assuming no interaction, intuition might say that to break the composite, it is inevitable that you break its components..

                                                                          2. 1

                                                                            Mostly pointless I believe. There’s a proof that given two 128 bit hashes, the work to find a collision in both is proportional to 2^128 + 2^128, or 2^129, and not the 2^256 you might hope for. But also, any time you color outside the lines, you run the risk of making things worse.

                                                                            1. 1

                                                                              Right, so I would assume the reasoning people have for mixing is not that it doubles the number of bits of search space, but that it saves your ass the day someone finds one of these algorithms is broken and the work to find a collision is proportional to 2^49 or whatever.

                                                                              Making things worse is a thought that eludes these people.

                                                                            2. 1

                                                                              Is it likely or inevitable that the output of two different hash functions on the same input would have coincidental correlations that cancel out with the xor, creating a subtly biased composite function that is worse than the sum of its parts?

                                                                              It’s likely there’ll be nonzero correlation, because hash functions aren’t written in isolation and use similar techniques. But probably not significant enough to make a difference in practice.

                                                                        2. 4

                                                                          You need to pick a sufficienly strong hash for your application. SHA1 is still in this territory for SVN’s purposes, since collisions are still negligible during typical use as a version control system. Which is great, because otherwise the fix about to be released would break the system for many users.

                                                                          SVN”s problems are that apart from discussing the issue years ago nobody bothered to check what actually happens in the implementation when a collision occurs (that’s a process problem), and that we found ourselves incredibly constrained while trying to come up with the best possible fix for the “webkit” problem. Today, we cannot change the hash without breaking important parts of the system or adding (yet more) backwards compat boilerplate code. We must prevent SHA1 collisions from entering the system to prevent (perhaps accidental) DoS attacks on the system. At the core, this is a design problem. Some features have tightly embraced SHA1 and now replacing it involves a lot of work.

                                                                          Edit: Another factor that complicated things was that API, protocol, and on-disk format changes are off-limits for SVN’s patch releases, but we had to patch both the 1.9 and 1.8 release series.

                                                                          1. 2

                                                                            The iron law of cryptography is that crypto schemes always get weaker over time.

                                                                            But when this is a problem which isn’t going to manifest itself for fifteen years or more, punting it to the long grass is always going to be very tempting!

                                                                            1. 2

                                                                              SHA2 hadn’t even been published when SVN was first released (SVN was released in 2000, SHA2 was first published as a draft in 2001 and finalised in 2002).

                                                                            1. 2

                                                                              I’m fascinated by the way they added the test case to the make file. I’m not much of a C person so my question is: is this a common convention since there is no auto discovery of tests?

                                                                              1. 3

                                                                                For library code, generally. You need to write a little program that calls the function you want to test.

                                                                                1. 1

                                                                                  It’s relatively common in C, but I personally can’t stand it, since it puts a high barrier on adding new tests (automating things shouldn’t be inconvenient!). This is one of the reasons I like gtest for C/C++ applications (https://github.com/google/googletest).

                                                                                1. 6

                                                                                  Long story short? Poverty. When your chances of marrying into la dolce vita are slim to none, you start studying the hard stuff so you get a shot at getting in a well paid industry.

                                                                                  Based on interviews with 11,500 girls and young women across Europe, it finds their interest in these subjects drops dramatically at 15, with gender stereotypes, few female role models, peer pressure and a lack of encouragement from parents and teachers largely to blame.

                                                                                  Role models are largely an US cultural construct. It’s unusual to be driven by emulation in Europe.

                                                                                  The “lack of encouragement from parents and teachers” is a joke. What you see in rich countries is a lack of economical pressure. While in Italy you can get by just fine with a high-school degree, in eastern Europe you need an university degree to get a real shot at extracting yourself from poverty.

                                                                                  1. 3

                                                                                    Role models are largely an US cultural construct. It’s unusual to be driven by emulation in Europe.

                                                                                    Hmm… I don’t know much about Europe but in the US and Japan many people’s actions are pretty well define s by what the mob or people in the spotlight believes should be done. It’s not necessarily that you have a single role model that you attach yourself to but being shown something like Elon Musk making a bunch of money and then creating a bunch to successful moonshot companies is something people aspire towards. Does something like this not happen in Europe? I feel like it’s human nature to be inspired by the people around you whether they’re close to you or far and significant. Kind of like how America has this culture where apps can solve problems, because they’ve seen that apps can solve problems in their day to day lives and they’ve lived through apps becoming hit sensations overnight.

                                                                                    1. 2

                                                                                      Role models are largely an US cultural construct. It’s unusual to be driven by emulation in Europe.

                                                                                      ‘Role models’ is a wider psychological concept; it’s not just about copying famous people you admire. Here’s a short blog post introducing the concept; it applies to more than just children, of course. Excerpt:

                                                                                      Individuals that are observed are called models. In society, children are surrounded by many influential models, such as parents within the family, characters on children’s TV, friends within their peer group and teachers at school. Theses models provide examples of behavior to observe and imitate, e.g. masculine and feminine, pro and anti-social etc.

                                                                                      Children pay attention to some of these people (models) and encode their behavior. At a later time they may imitate (i.e. copy) the behavior they have observed. They may do this regardless of whether the behavior is ‘gender appropriate’ or not, but there are a number of processes that make it more likely that a child will reproduce the behavior that its society deems appropriate for its gender.

                                                                                      First, the child is more likely to attend to and imitate those people it perceives as similar to itself. Consequently, it is more likely to imitate behavior modeled by people of the same gender.

                                                                                      Second, the people around the child will respond to the behavior it imitates with either reinforcement or punishment. If a child imitates a model’s behavior and the consequences are rewarding, the child is likely to continue performing the behavior. If parent sees a little girl consoling her teddy bear and says “what a kind girl you are”, this is rewarding for the child and makes it more likely that she will repeat the behavior. Her behavior has been reinforced (i.e. strengthened).

                                                                                    1. 4

                                                                                      I found this blog post about red team practices at Facebook to be relevant.

                                                                                      https://medium.com/starting-up-security/red-teams-6faa8d95f602

                                                                                      They seem to focus more on assuming that someone had compromised many things. It’s generally a waste of time to actually use social engineering or sniffing against the real company. Someone could be digging through the garbage for months before they find something useful. Thus, you assume someone has been phishing for months or digging thorough garbage or old computers that the company throws out or someone had planted some laptop somewhere a few months ago. Or maybe assume someone had quit and they’re using a device that’s still connected to the internet somewhere that was left in a hallway before they were escorted out.

                                                                                      After assuming these things, your teams goal is to have systems and experience in place to fight against attacks if they were to happen on the inside.

                                                                                      1. 18

                                                                                        Taking time to have fun coding with stuff like this is a bit underrated, in my opinion. When I worked at Fog Creek, I once redirected joelonsoftware.com to my computer (but only when viewed from inside the office), where I had carefully added a new entry, entirely in Joel’s voice, about how the company had not been successful as-was, and how FogBugz was, effectively immediately, completely open-sourced—with download link. To do that required working with sysadmins to alter DNS, learning how routing works, figuring out how to set up IIS properly on my computer, hacking CityDesk, and more—all skills I wouldn’t have picked up for awhile otherwise, and all in the name of a joke. Doing stuff for fun can be a great motivator.

                                                                                        1. 5

                                                                                          At my work, there is a tendency for people to joke about some “absurd” idea to solve some crazy problem we have. Every time, I kind of wonder if that idea really is absurd. There is always pushback saying it’s not really an efficient use of our time but often the underlying issue is a tremendous waste of time for us. We are just thinking so incredibly short term, especially with agile development pipelines, that we never really spend the day or two to flush out an arbitrary moonshot. These are the dinky little tasks that I find the most interesting because it’s trying to solve hard problems or at least clarify the problem space but it seems to be too high of a risk for wasted time money and effort for my team.

                                                                                          1. 6

                                                                                            Not quite that, but I have done what amounts to Enterprise FizzBuzz in this capacity to learn stuff, and it does indeed sometimes end up demonstrating some crazy idea actually does work in practice. For example, Miniredis (which you should not use in 2017 under any circumstances whatsoever) began as a joke about how we could totally use Redis on Windows back in 2009; we just needed to write our own version from scratch. Which I then did…and which was such a short and tight code base that we actually did use it, shipping it to several thousand customers.

                                                                                        1. 2

                                                                                          The CAPTCHA image actually has a link in there pointing to an audio alternative for those who struggle with the visual aspect.

                                                                                          The color one is something I struggle with often as a colorblind person. I often find that the things i struggle with tend to also impact non colorblind individuals but to a lesser degree where they wouldn’t complain but I am essentially blocked.

                                                                                          1. -2

                                                                                            Inclusive is codeword for ‘not white/asian male’?

                                                                                            Every time somebody is hired because the employer goes out of their way to be diverse, somebody else wasn’t hired for that same spot.

                                                                                            Diversity is just a social instead of governmental (but sometimes governmental) way to discriminate against the dominant subgroup for the non-dominant “oppressed” minorities. A perverted way to get people to atone for their original sin (being born to the dominant majority subgroup). Of course when we talk about diversity in tech we rarely talk about asian males, since they don’t seem to have any problem succeeding in this domain more or less.

                                                                                            This is a mind virus. An ideologically driven way to favor some groups over another by claiming that the favored groups are somehow ‘oppressed’ and therefore they are to be favored to balance the scale.

                                                                                            1. 19

                                                                                              Group diversity has been shown to correlate with better results in a variety of settings. It’s not just affirmative action; inclusive teams produce better work by anticipating needs and circumventing shitty groupthink.

                                                                                              1. 4

                                                                                                Sources/further details please? I am concerned about the conflation of several different definitions of “diversity”. In particular, field-relevant experiential/educational diversity is drastically different from skin color diversity and neither is a good heuristic for the other.

                                                                                                1. 5

                                                                                                  If this was true then why would there need to be any governmental enforced diversity quota/incentive?

                                                                                                  If group diversity is beneficial then we would already see organisations embrace it for its own productive benefits. Instead we see socially mandated diversity and after-the-facts rationalisation.

                                                                                                  1. 17

                                                                                                    If group diversity is beneficial then we would already see organisations embrace it

                                                                                                    Doesn’t this strike you as exactly an after-the-fact rationalization? You’re assuming that the best solutions always arise within a particular time interval. For example, travel back in time 10 years and try making this argument. Now try 100. 500. 1000. Which things were worse back then that are better now? Would you still refute the possibility of improvement based on the notion that since the best thing hadn’t arised naturally at that point in time that it therefore never would?

                                                                                                    (Note that I am not criticizing your position against “mandated diversity,” but rather, your specious argumentation.)

                                                                                                    1. 4

                                                                                                      You’re assuming that the best solutions always arise within a particular time interval.

                                                                                                      There are 2 possibilities here:

                                                                                                      1. Diversity is good but the free enterprise system has failed miserably in figuring out that it is good so the mighty government and social engineers need to force people to adopt the superior system of organisation.

                                                                                                      2. Diversity doesn’t really help but the government and its master-ideologues want to impose it on the population at large via media indoctrination and legal imposition.

                                                                                                      Given that many complex organisational system has been developed by business in order to improve productivity, and that so much effort is put into squeezing even 1% increase in some industries, the idea that they have totally missed this grand strategy of just flooding the workspace with one-of-every-animal seems unlikely to be true.

                                                                                                      This is especially since if diversity is a benefit, one has to probably agree that it would be an incrementally increasing benefit i.e. 2-groups would be slightly better than 1-groups and so it would be pretty apparent to at least some people that (n+1)-group is better than n-group, and these people would of course write a bunch of books and we would see that companies that are homogenous get out-competed from the market.

                                                                                                      Instead we have people calling those who disagree racist/sexist/classist/bigot and calls for minorities to be inserted into the most prestigious (ceos, senators) and the recently-cool programming jobs. Meanwhile calls for diversity in the mineral mining sector is quite silent.

                                                                                                      Wouldn’t we get increase in productivity if we plonk down some women in a mine somewhere or as part of a sanitation team?

                                                                                                      Of course the best solution doesn’t always arise at a particular time, this is clearly true since if it arose at time x it didn’t arise at time y. But nobody is claiming that diversity can not possibly be the best solution because it didn’t arise sooner, but because a bunch of people looking around for the best solution didn’t find it to be very promising.

                                                                                                      1. 10

                                                                                                        Diversity is good but the free enterprise system has failed miserably in figuring out that it is good so the mighty government and social engineers need to force people to adopt the superior system of organisation.

                                                                                                        This has happened a few times before. See: Environmental regulations, financial regulations, health regulations.

                                                                                                        1. 9

                                                                                                          a few times

                                                                                                          This happens constantly. Free enterprise is extraordinarily bad at optimizing, and outright incapable of considering second-order effects (to the extent that economists had to invent a jargon term for it—“externality”—so they could sweep it under the rug).

                                                                                                          1. 1

                                                                                                            What would you cite as the primary causes of the technological growth in the last 200 years?

                                                                                                            Do you think some externalities could be removed via a more comprehensive system of private property?

                                                                                                            1. 4

                                                                                                              What would you cite as the primary causes of the technological growth in the last 200 years?

                                                                                                              My simplified answer would be: mainly governments deciding to pour large amounts of resources into technology R&D, for various reasons that mostly have orbited around “empire” and “military”. The British Empire’s investments in railroad, mining, energy, and engine technology; the 19th century French and German governments’ big stable of scientist/inventors in their applied-science and engineering institutes (von Humboldt, Carnot, Coriolis, the Curies, etc.). In the 20th century, both the Axis and Allies’ crash R&D programs: V-2 rockets, the Manhattan Project, Bletchley Park; and later the thermonuclear program, ENIAC, the space race, ARPA, and so on.

                                                                                                              1. 1

                                                                                                                What role did free enterprise play in those developments?

                                                                                                                1. 2

                                                                                                                  Implementation assistance and tear-away sustainability plan.

                                                                                                                  1. 1

                                                                                                                    Would said technological improvement have been feasible without free enterprise? If not, what justifies the characterization that it is “extraordinarily bad at optimizing?” If so, what took us so long to make the progress in the first place?

                                                                                                                    i.e., Is the rise of (comparatively) free enterprise and the technological boom simultaneously just a coincidence? If you believe that, how do you convince others of that?

                                                                                                                    1. 1

                                                                                                                      I doubt you could convince many people they are a unrelated events.

                                                                                                                      The most obvious argument I can see is that technology enabled free enterprise, rather than the other way around. I’d have to think a bit more before I could flesh it out further, though.

                                                                                                                      1. 1

                                                                                                                        That’s reasonable.

                                                                                                                        For the most part, I’m trying to call into question the notion that free enterprise is terrible at optimization. There are plenty of examples where it doesn’t arrive to obviously ideal circumstances, but if you’re going to say that it’s terrible at optimization, then the natural question to ask is: compared to what? IMO, even doing that comparison is fraught with peril and probably so difficult that it’s impossible, which leads me to the conclusion that statements like “free enterprise is terrible at optimization” aren’t particularly meaningful.

                                                                                                          2. 3

                                                                                                            It’s not clear if or to what degree any of those things had a positive effect on humanity. It’s also not really comparable, because adopting good hiring practices is very obviously in a business’s self-interest, whereas environmental regulations are (ideally) more about forcing the internalization of external costs.

                                                                                                            1. 4

                                                                                                              environmental regulations

                                                                                                              Have you been to China or India? It’s really nice being able to breathe outside.

                                                                                                              1. 2

                                                                                                                Yeah, I was in HK last week. Air is somewhat worse than the US, but I’m tempted to say it’s worth it given how inexpensive and efficient everything is as a result of less burdensome regulations. Their infrastructure is actually substantially better than ours, believe it or not, despite drastically lower taxes and less government involvement.

                                                                                                                1. 2

                                                                                                                  Hilarious. 1/3 the population lives in public housing. The public transit system depending on a government owned “private” company that (a) owns tons of real estate which it uses to subsidize its transit mission and (b) has regulated fares …
                                                                                                                  Compare that to the USA and there is, in reality, substantially more government involvement. The US system is really inefficient though because of the layers of government (federalism) and the enormous cost of pretending that the government is not involved.

                                                                                                                  1. 1

                                                                                                                    HK is an interesting example for public housing, because it was not done all that much differently than elsewhere where it has a bad reputation, but in HK it has a reasonably good reputation. The architectural style is pretty much the style now reviled elsewhere: high-modernist concrete tower blocks densely packed together into public housing estates. But they were built on a much larger scale than what the U.S. or most European countries ever built, and overall are reasonably well regarded.

                                                                                                              2. 4

                                                                                                                It’s not clear if or to what degree any of those things had a positive effect on humanity.

                                                                                                                “ financial regulations”

                                                                                                                You believe it’s unclear whether people getting robbed constantly by crooks or the banks themselves was a net benefit to our society?

                                                                                                                “health regulations”

                                                                                                                You also believe that random people getting sick or murdered less often by lying vendors in medical field isn’t an obvious benefit to our society? If you said lazy or evil folks, I could see someone arguing for them to disappear. Cancer and snake oil salesmen don’t target only them, though. They take out beneficial people, too.

                                                                                                                1. 2

                                                                                                                  Making fraud illegal isn’t a “financial regulation” any more than making murder illegal is a “health regulation”.

                                                                                                                  Both of the things you described are just fraud. “Financial regulation” carries the connotation of, you know, specifically addressing the use of certain financial structures.

                                                                                                                  1. 0

                                                                                                                    “Making fraud illegal isn’t a “financial regulation” “

                                                                                                                    You’re putting words into my mouth. I said people were getting robbed. It’s conceptually fraud but wasn’t legally fraud in many circumstances. Sometimes it was just an evil thing the majority of banks practiced that benefited them at everyone’s expense. Damage would be done by whatever acts were technically legal in current system or made legal through bribes by banks to politicians. Next round of politics increases regulation to cover those things probably after an outcry from affected voters. It’s then illegal due to the regulations.

                                                                                                                    One that they tried to pull on me was not allowing me to pay debts with low-interest until I paid off all with high interest. That let the low-interest keep piling up in event I could only pay small portion. That was made illegal by regulations added under the Obama Administration. There’s lots of sneaky shit like that in finance.

                                                                                                            2. 13

                                                                                                              Aside from the moral blindness, the most characteristic feature of libertarianism is complete ignorance of how businesses and markets operate.

                                                                                                              1. 1

                                                                                                                Aside from the moral blindness

                                                                                                                That’s factually incorrect. There are many popular ways to argue in favor of libertarianism, and one of them is a moralistic argument: that the initiation of force or threat of force is wrong. You might disagree with that moral argument, but it’s certainly not “moral blindness.” And morals needn’t end there either, although I admit many libertarians on the Internet may give you the impression that it does. (Which is why I don’t often chum around any online libertarian hangouts.)

                                                                                                                1. 7

                                                                                                                  Libertarians don’t believe that. They believe that force to protect property rights is fine. And they are desperate embracers of a conveniently timed statute of limitations so that property rights deriving from theft and violence are grandfathered in somehow. In 1860 the mortgage value of human beings held in forced labor by state and private terrorism was greater than the entire industrial plant of the United States, yet somehow that and far more recent atrocities are in the moral “never mind” class for Libertarians while tax assessments to pay for school lunch are somehow immoral.

                                                                                                                  1. 1

                                                                                                                    That’s a pretty extreme straw man. Regardless, your characterization of libertarianism as “morally blind” remains factually incorrect. Your musings on the questionable priorities of some of libertarianism’s adherents do nothing to change that.

                                                                                                                    1. 2

                                                                                                                      It’s not a straw man at all. Your claim is that Libertarianism is based on the moral principle that initiation of force is wrong. But that claim involves redefining “force” so that if I peacefully walk out of your store without paying for a loaf of bread, and then an armed agent of the state kicks my ribs in, the libertarian can claim I initiated force! And even libertarians have wrestled with the insolvable problem of the bloody provenance of wealth - Murray Rothbard worked himself into pretzels trying to wiggle around it.

                                                                                                                      1. 0

                                                                                                                        Please read my initial comment more carefully:

                                                                                                                        You might disagree with that moral argument, but it’s certainly not “moral blindness.”

                                                                                                                        So even if you’ve arrived to an interpretation of the NAP that you find objectionable (I also find your interpretation objectionable), then you’ve implicitly admitted that a moral principle exists. You just happen to disagree with it. Therefore, it is a blatant misrepresentation to describe libertarianism as morally blind.


                                                                                                                        I also disagree with your interpretation. I think your example obviously violates proportionality. A proportionate response would probably be to confront the thief. This leads me to question whether you’ve considered proportionality at all in your interpretation of the NAP.

                                                                                                                        If you did indeed neglect proportionality, then you would unfortunately be in good company. I’ve found that many so-called libertarians do the same, and generally use that as a license to say all manner of crazy things. I mean, if the NAP doesn’t have proportionality built into it, then it’s trivially useless. If you find yourself in that position with a well studied philosophy, then it’s a fair bet that you’re probably missing something.

                                                                                                                        And even libertarians have wrestled with the insolvable problem of the bloody provenance of wealth - Murray Rothbard worked himself into pretzels trying to wiggle around it.

                                                                                                                        I’m not here to debate libertarianism with you. That would be foolish. I’m pointing out blatant mischaracterizations of libertarianism. If you don’t represent the thing you’re trying to criticize accurately, then your criticisms aren’t going to be substantive.

                                                                                                                        1. 0

                                                                                                                          with the insolvable problem of the bloody provenance of wealth

                                                                                                                          The solution is geolibertarianism.

                                                                                                                2. 3

                                                                                                                  Honestly, I feel like you just kind of doubled down on your argument without substantively responding to my criticism. For example:

                                                                                                                  But nobody is claiming that diversity can not possibly be the best solution because it didn’t arise sooner

                                                                                                                  But this seems to be literally what you said. What other interpretation am I supposed to make of this?

                                                                                                                  If group diversity is beneficial then we would already see organisations embrace it

                                                                                                                  More generally, I reject your dichotomy. Personally, I think your entire argument is missing something extremely important: the idea of cultural evolution and its impact on business. Culture isn’t a fixed point in time and space. It evolves. In our current bubble, the culture is clearly evolving to be more inclusive of diverse peoples. At some point in time, hanging a sign outside your window that said “Purple people need not apply” was socially acceptable. But today, it would be terrible business sense to do such a thing. Even if you could come up with an argument that said Purple people were, on average, very bad workers, your business would probably fail because the vast majority of your potential customers would probably consider such an explicit act of racism to be vulgar enough to take their business elsewhere. But this wasn’t always true. The same type of thing seems to have been happening on a less overt scale within the less several decades, and pointing squarely at government as the only entity to blame seems a bit of a shallow critique to me.

                                                                                                                  With that said, I think there might be interesting arguments around the amplification of progressive cultural norms through States and governments.

                                                                                                            3. 2

                                                                                                              Hey! I think this argument is not a very good one to lead with. The reason being: if the evidence were not there, or changes over time as more studies happen, does that mean someone should not be for diversity? I think that one should still be for supporting diversity because the world I want to live in is based on equality.

                                                                                                              Another problem is what we see in response to your comment: people asking for the studies and wanting to argue over the study rather than diversity.

                                                                                                            4. 10

                                                                                                              Diversity is just a social instead of governmental (but sometimes governmental) way to discriminate against the dominant subgroup for the non-dominant “oppressed” minorities

                                                                                                              Women are something like 50% of the population yet very underrepresented in IT. So is taking action to try to get more women in to IT about discrimination against the dominate subgroup?

                                                                                                              1. -2

                                                                                                                Women are something like 50% of the population yet very underrepresented in IT.

                                                                                                                Men are something like 50% of the population yet very underrepresented as mothers.

                                                                                                                This reasoning is a rationalisation, because we only see it used to insert women into high-prestige jobs (ceos, senators) and the recently-cool tech jobs, but never see it used to insert women into low-prestige jobs like sanitation or garbage collection.

                                                                                                                Men and women are different. They have different interests and priorities and they make different career choices. The idea that an industry has to be a cross-section of the society as a whole doesn’t really make sense.

                                                                                                                1. 8

                                                                                                                  Men are something like 50% of the population yet very underrepresented as mothers.

                                                                                                                  The definition of mother somewhat precludes that. How about we call that one a mulligan and you try again?

                                                                                                                  This reasoning is a rationalisation, because we only see it used to insert women into high-prestige jobs (ceos, senators) and the recently-cool tech jobs, but never see it used to insert women into low-prestige jobs like sanitation or garbage collection.

                                                                                                                  There are similar stories from male dominated jobs such a firefighter and police where women have had a difficult time getting into. And let’s not forget, in the US at least, the big fight over if women should be allowed to serve in the military. I think if you look a bit harder you can find examples in many industries of women trying to be involved.

                                                                                                                  Men and women are different. They have different interests and priorities and they make different career choices. The idea that an industry has to be a cross-section of the society as a whole doesn’t really make sense.

                                                                                                                  I agree, an industry need not necessarily look like a cross section of society. However we have multiple examples of women not being in IT due to the culture rather than interest, so your argument doesn’t really have much merit to it.

                                                                                                                  Finally: you didn’t actually respond to my comment but rather changed the topic. You called it discrimination against a dominate group and I pointed out that there is at least one example of a group roughly equal in population but not in representation in an industry. How is that discrimination?

                                                                                                                  1. 5

                                                                                                                    In another culture or in times past you could use the same reasoning to imply that women do not belong in sport, education, or should not be trusted with the vote. You can’t draw any conclusions about what women (or other groups) want, or are capable of by the current state of things. We’re all at least partially a product of the environment we grew up in, so if we grow up and see others like us doing one thing, we’re likely to follow. As humans, we’re incredibly adaptable, and I don’t think that trait has anything to do with gender or race. Sure we’re all different, but so much of that depends on culture and I personally think diversity of ideas and viewpoints is worth striving for.

                                                                                                                    Also, the men and mothers thing was a bit silly don’t you think :)? I don’t think that’s a very fair comparison somehow.

                                                                                                                    1. 1

                                                                                                                      In another culture or in times past you could use the same reasoning to imply that women do not belong in sport, education, or should not be trusted with the vote.

                                                                                                                      But he is actually arguing against positive discrimination. I don’t think there was positive discrimination for women in sport, education or voting.

                                                                                                                      Also, the men and mothers thing was a bit silly don’t you think :)? I don’t think that’s a very fair comparison somehow.

                                                                                                                      Not really. I see no reason, why men can’t do motherly role in family.

                                                                                                                      1. 1

                                                                                                                        Not really. I see no reason, why men can’t do motherly role in family.

                                                                                                                        Even in that case, a male is generally called a “father” not a mother. Saying that the original comment was really just role based is a pretty weak support.

                                                                                                                        1. 2

                                                                                                                          I’m actually not sure about that. There are some assumptions with the roles a father plays in a family versus the roles a mother plays in a family. I think the argument is fundamentally a miscommunication around what the intention of the word mother is, since to some it’s a biological thing while others is a cultural thing and even that has some implicit meaning that may mean a feminine parent versus a masculine parent.

                                                                                                                          1. 2

                                                                                                                            Take single parents as an example where a father or mother is responsible for providing both roles, we still all them a “single X” where X is the gender-specific name.

                                                                                                                            Or take same sex couples with children, even if one partner is fulfilling what would generally be considered the opposite role of their gender, the default naming convention is the gender specific one.

                                                                                                                            On top of that, as far as I have seen (and I’m happy to be proven wrong) people often self-identify as a father or mother based on gender. In my limited experience, people who which to transcend the traditional role of father and mother tend to just refer to themselves as a parent rather than trying to continue in gender-specific roles. But again, I can probably (and happy to) be proven wrong on that claim as well.

                                                                                                                            This argument that “father” and “mother” is role-based rather than gender-based might be a nice ideal but it’s an weak counter-argument in the context of this discussion.

                                                                                                                    2. 6

                                                                                                                      Men are something like 50% of the population yet very underrepresented as mothers.

                                                                                                                      That could be the single, most-retarded counter I’ve ever seen on Lobsters. apy points out that the white males in tech hire almost no women despite a ton of talent available. Hell, it was Margaret Hamilton to popularized the term “software engineering” after her team did better than most who were hired on their first attempt. A ton of programmers then were also women, including black women, since it was seen as clerical work. After it was recognized as creative, it was male dominated in short time with it remaining so. Your counter is that men uncapable of giving birth to a child are “underrepresented as mothers?” Huh? You appeared ideological before but that’s just nuts.

                                                                                                                      http://www.wired.com/2015/10/margaret-hamilton-nasa-apollo/

                                                                                                                      1. 0

                                                                                                                        That could be the single, most-retarded counter I’ve ever seen on Lobsters.

                                                                                                                        Okay, let’s consider biological-effect on a role. So it’s a sliding scale between fully female role like a mother, where we never see a male in this role, and fully male i.e father, and right in the middle we see the role of children where male and female can equally fill that role. This scale is based entirely on the biological difference in sex.

                                                                                                                        Why can’t programming exist on this sliding scale and be responsible for the differences in sex in programming?

                                                                                                                        So if biology can preclude entirely men from the role of mothers, why can’t biology preclude proportionally more women from the role of programmers?

                                                                                                                        1. 1

                                                                                                                          The challenge with your mother/father example is that these terms are, for most people, defined in terms of biology rather than an implicit result of biology. For example, take a single parent which is responsible for providing the for the needs as both mother and father, most people still refer to them in terms of their sex, i.e. “Single dad” or “single mom”. I think taking your example seriously is very hard given this. Perhaps you could find a different example that wasn’t so deeply based on biology?

                                                                                                                          Why can’t programming exist on this sliding scale and be responsible for the differences in sex in programming?

                                                                                                                          I brought up the 50% thing so I should clarify a bit. People, including yourself, seem to believe I was making a claim that the breakdown in IT should be 50%. That is not what I meant. Instead, I was trying to call to attention your use of “dominate subgroup” and that the term “dominate” doesn’t make sense in a situation where the group size is about equal. Maybe this means you have some implicit bias towards viewing men in a way different than women? Or maybe I misinterpreted what you mean by “dominate subgroup”? It’s possible you were specifically talking about the subgroup of IT, but then that is a but confusing too since the whole point is that men are more represented.

                                                                                                                          But, even if the natural interest in IT between the sexes is not 50-50, that does not imply that the representation of each sex right now represents the natural interest level, which seems to be what you are implying. And, in fact, we at least have evidence that many women feel like they are not welcomed in IT despite being interested in it.

                                                                                                                          So, we know that women are not near 50% in IT and we have evidence that women who are interested don’t feel welcomed.

                                                                                                                          Given that, here are two questions:

                                                                                                                          1. If what I have said is correct (just assume it is correct for the sake of this question), do you believe that still nothing should be done to make IT more welcoming towards women? If not, why?
                                                                                                                          2. Do you dispute that what I claim is correct? I have not cited any direct evidence so it is not unreasonable to dispute it. These numbers show up in any unconscious bias talk or diversity slideshow so I haven’t really done any effort in finding stats.
                                                                                                                          1. 0

                                                                                                                            Okay, let’s consider biological-effect on a role.

                                                                                                                            Tons of studies have been done on people starting from children onto workers. The decisions of parents, educators and managers seem to be the greatest factor determining whether people are… going to do or be anything. They literally shape most of their lives. Also, influence whether they are likely to go into certain fields. The managers determine who will stay, leave, or move up. The interesting thing to me is you are hyper-focused on biology when it has had the least impact in empirical studies. The other things have so much impact that we’d have to design experiments to eliminate them… not sure how to even go about that… to see what biological impact remains. We can’t even see the biological impact outside of studies on children since there’s been too much psychological indoctrination and conditioning by adulthood.

                                                                                                                            It might be something you seriously believe although it comes off like propaganda in a way. Here’s why: tons of decisions by biased individuals are shaping children into adults then conditioning them into employees. We’re saying those biases are promoting some and limiting others in specific areas. You show up saying, “Hey, but what if all that had almost no impact and they just biologically were programmed to do everything their parents and bosses were telling them to do? And parents/bosses were just coincidental with biology really explaining things?” And everyone in the room just looks at you confused wondering why you’re ignoring lifetimes worth of data to focus on a biology hypothesis with little data.

                                                                                                                            EDIT: I’ll also add that the biology arguments showed up for blacks, too. They were just biologically designed to be dumb savages with no capacity for understanding or doing white things. That supported inhumane treatment from slavery to the Tuskagee Syphallis Experiment. Then, once laws tackled true issue (social discrimination), eventually many got educated and had a chance in business. Now they’re doing pretty much all the same things white people were doing with some billionaires, getting Noble Prizes, etc. I think we’ll see something similar if we combat social discrimination against women instead of similarly making biology arguments about how dumb, weak, incompatible for jobs, or whatever they are. Actually, we’ve already seen it at smaller scales across the U.S. when they’re allowed to prove themselves. You’re ignoring that data, too, for some reason.

                                                                                                                        2. 4

                                                                                                                          …Is your suggestion really that the underrepresentation in IT is similar to a biological difference?

                                                                                                                          1. 3

                                                                                                                            I’m not the person you’re responding to and I’m also not making a definitive claim, but are you really convinced that human sexual dimorphism has no psychological effects that could manifest as different career tendencies? I wouldn’t hazard a guess as to how much, exactly, biological differences influence career choice, but I would certainly guess it’s non-zero. This would be consistent with variances in gender distribution across many fields.

                                                                                                                            Instead of a question, could you explictly state your position on this? It’s hard to construct a useful reply to what sounds more like a moral dismissal than a concrete argument.

                                                                                                                            1. 1

                                                                                                                              I responded to the biology angle here:

                                                                                                                              https://lobste.rs/s/8qmra7/for_inclusive_culture_try_working_less#c_aqyakn

                                                                                                                              Long story short: theres basically no data supporting it, there’s little data to be had outside of children, there’s tons of data saying it’s not biology, and someone’s motives should be questioned if they’re ignoring that to make biological arguments.

                                                                                                                              1. 0

                                                                                                                                https://phys.org/news/2017-05-gender-bias-open-source.html

                                                                                                                                Yes, I am sure that being able to have a baby has no freaking affect and couldn’t possibly explain these results.

                                                                                                                                1. 1

                                                                                                                                  Random noise can explain those results.

                                                                                                                                  1. 1

                                                                                                                                    First off, that study was absolute garbage. I’m not going to re-hash what plenty of qualified people have said, but here’s a link that should help. http://slatestarcodex.com/2016/02/12/before-you-get-too-excited-about-that-github-study/

                                                                                                                                    Second off, instead of saying anything substantive you’ve just responded with more snark and outrage. Being able to bear children or not is obviously not the only sexual dimorphism in humans, and you’re acting the fool by pretending otherwise. https://www.ncbi.nlm.nih.gov/m/pubmed/16688123/ https://www.ncbi.nlm.nih.gov/m/pubmed/24374381/

                                                                                                                          2. 8

                                                                                                                            Alternatively, diverse can also include those who cannot drink or eat meat. I’ve seen a few folks who were socially disconnected from the company because they could not attend any of the social functions being Muslim or Indian or Taiwanese where these preferences is much more common. Moreover, diversity can also include those who have timely obligations outside of the traditional Silicon Valley work schedule, like picking kids up after school or volunteering their time at other places. Our corporate environment pretty much does not hire anyone for part time work, and full time work has very flexible hours that can easily be misconstrued to staying at work late else risk giving a bad impression.

                                                                                                                            I can kind of get what you’re saying. However, isn’t turning a blind eye to implicit discrimination a sin of its own? I agree with you that it’s hard to say someone who was born into privilege is a sinner but perhaps if they recognize that and still chose to keep that predisposition for themselves, is that not a sin?

                                                                                                                            Also, you’re assuming that hiring is a zero sum game, where there is only one position and someone has to fill it, and the others will not get that chance. Perhaps including and engaging with a wider more diverse group of people will actually increase the overall cake size without having to force people to have smaller sizes or forgo the cake entirely? This is all purely speculation but what if doing this actually leads to more innovation and engagement by a larger overall population to be leaders and entrepreneurs such that it spurs a larger overall growth of the industry and ends up creating more overall jobs for everyone? Perhaps that is the missing key in our market right now, that we don’t have as many competing ideas and philosophies and prospectives so there really just isn’t as many people engaged in entrepreneurship.

                                                                                                                            1. 0

                                                                                                                              However, isn’t turning a blind eye to implicit discrimination a sin of its own?

                                                                                                                              Of course not, because you have to discriminate. You brain is evolved to collect data of its surrounding then infer patterns from that data so you can discriminate against stuff in the future. You treat a tiger differently from a kitten because they are different even though in many ways they are similar. The only way to not discriminate is to treat everything the same, a non-sensible proposition.

                                                                                                                              Now if you refer to the modern sense of ‘discrimination’ meaning treating people differently based on their inherited properties, which is somehow an unforgivable sin in the modern age (even though everybody does it, but they will say “im not a racist” before they explain what they do), you still have to face the facts that people are not the same. Different sub groups have different abilities, and we see these abilities play out in different outcome.

                                                                                                                              Also, you’re assuming that hiring is a zero sum game,

                                                                                                                              That particular spot is a zero sum game.

                                                                                                                              Perhaps including and engaging with a wider more diverse group of people will actually increase the overall cake size

                                                                                                                              I could say the same about less diverse group. That by being entirely discriminatory, there would be so many jobs that every single minority-person is employed. So this argument by itself works both ways.

                                                                                                                            2. 2

                                                                                                                              Diversity is just a social instead of governmental (but sometimes governmental) way to discriminate against the dominant subgroup for the non-dominant “oppressed” minorities.

                                                                                                                              Depends on whose doing it. Often used that way. Doesn’t have to be, though, as one can get racial diversity by sole focus on performance and/or blind auditions. Mental diversity is more important if one wants higher-quality solutions but harder to select for. People have to be willing to bring in folks they might argue with every day. Most wont no matter what color or gender they are. In my company, it was mostly whites years ago coming in hiring pipeline when whites ran it. That was by biases of employees referring people [like them] and of hiring managers confirming people [like them]. My section is currently black-controlled (almost all women) with mostly blacks coming in the pipeline. Skill level is the same mix of bad, decent, and good as before far as I can tell. I haven’t dared ask if they have any interest in getting a balanced (by area makeup) percentage of whites in pipeline or males in their level of management. They’ll both not care plus be incredibly hostile to the idea like every other time I’ve done it anywhere else. Only exception was a bank that preempted me with quotas on gender where either type might be blocked to achieve their goals.

                                                                                                                              “Of course when we talk about diversity in tech we rarely talk about asian males, since they don’t seem to have any problem succeeding in this domain more or less.”

                                                                                                                              Indian or Far East. And especially under H1-B’s. Let’s not start filtering them for alternative demographics. It might not meet the managerial or compensation goals of the scheming business. ;)

                                                                                                                              1. 2

                                                                                                                                You sound set in your ways and not open to imagining or considering why diversity might be a good thing. I assume you’re in a ‘western’ culture, that you live in a city, work in tech, and that you are in a reasonably comfortable position where you don’t have to deal first hand with any non trivial cultural pressure?

                                                                                                                                Diversity simply brings points of view, attitudes and needs that are impossible to imagine or simulate without first hand representation. This will in most cases significantly improve working practices and products/services. It is ideological, but it is also completely practical.

                                                                                                                                Scale is an important question - you need to have consistency and boundaries within small social groups, but the main case where the need for diversity does not apply is a forcefully maintained large scale monoculture, which to maintain uniformity and stability must remove ‘the other’ from consideration. Is that what you’re going for?

                                                                                                                                1. 1

                                                                                                                                  You sound set in your ways and not open to imagining or considering why diversity might be a good thing.

                                                                                                                                  I am not at all.

                                                                                                                                  What I am against in social, governmental and ideological push to insert whichever-subgroups into places via the logic that their lack of representation there is because of “oppression and xism” when the alternative explanation that they are not there either by choice or by lack of ability is more likely to be true.

                                                                                                                                  The word diverse is now being used primarily by people that seek to make such a push so it can be used as a warning sign. But I am not against diversity at all, I am against government and ideological mandate, including mandate for ‘diversity’ especially when it is based on spurious claim that the dominant groups are in a conspiracy to oppress and discriminate against the other subgroups.

                                                                                                                                  1. 2

                                                                                                                                    when the alternative explanation that they are not there either by choice or by lack of ability is more likely to be true.

                                                                                                                                    What bases are you making that claim off of, though? There are multiple bits of evidence out there that suggest that women, I cannot speak to other groups, are interested in IT however the culture either makes want to leave the industry or they cannot get in, in the first place.

                                                                                                                                    1. 1

                                                                                                                                      that the dominant groups are in a conspiracy to oppress and discriminate against the other subgroups.

                                                                                                                                      “maintaining and protecting the institution known as negro slavery–the servitude of the African to the white race within her limits–a relation that had existed from the first settlement of her wilderness by the white race, and which her people intended should exist in all future time. “ (Texas statement of seccession)

                                                                                                                                      Up to the 1960’s:

                                                                                                                                      https://en.wikipedia.org/wiki/Jim_Crow_laws

                                                                                                                                      Recently, after lots of black votes for Democrats, Republicans pass laws curbing their chances to vote:

                                                                                                                                      http://prospect.org/article/22-states-wave-new-voting-restrictions-threatens-shift-outcomes-tight-races

                                                                                                                                      So, this isn’t speculative. There’s definitely groups trying to restrict other groups. It’s sometimes obvious, sometimes indirect. The dominant groups have also always used government mandates to ensure dominance. We see this on the business side where they try to create legal monopolies on land or ideas. This is something that stays happening. So, the solution is to combat it with legislation countering it.

                                                                                                                                      Note: I’m using black history in these examples just because it nicely illustrates the points. That they thought of blacks as less than human meant they were more open about their discrimination, even making it law.