1. 2

    Seems like a new p2p messaging app pops up every year. I wish you luck but I can’t see it even passing tox which is fairly unusable.

    1. 25

      Agreed, but it’s fun to work on.

      1. 23

        THIS is the mentality I admire. Every time I come up with a new project and want to show it off, I’m inundated with “yeah, but X already exists! Why would you make another one?” Because it’s fun! Because I want my own! Because I want to write code!

        Keep it up, it’s a cool project.

        1. 12

          Thank you! Having my own project like this to refactor and perfect allows me to stay sane in the business-focused “it ain’t broke” environment of the real world.

        2. 8

          I love this mentality and that’s why I wrote my own p2p chat app too.

          The most fun part was learning how to punch through firewalls, building messaging on top of UDP, and encryption.

          Learning is best done through doing.

          Question , what encryption does your chat app use?

          1. 3

            None whatsoever 🙊. All messages are transmitted in the clear right now, to obvious peril. Another goal I’d like to hit is implementing end-to-end encryption I’m interested in using libsignal, but don’t know enough about it to know if it’s applicable in a p2p protocol like this.

            1. 2

              I’d like to see yours too if you want to share.

              1. 1

                I haven’t worked on it in like a year, though recently started doing some C++17 revamp. It’s called Fire★. It’s interesting that you chose GTK, any reason to pick that over something like Qt?

                1. 1

                  None other than that the Rust bindings looked mature and are easy enough to work with. I actually started by wrapping it with Swift and making an iOS app. I made some progress but it was pretty hard to maintain the Swift wrapper, wrapping a C interface, wrapping the actual library.

                  Fire(star) looks pretty cool. Next time I have some free time with my laptop I want to play around with it.

                  1. 2

                    Interesting, hopefully the Rust people will get decent Qt bindings. Qt is pretty damn great. If you ever do play with Firestr, PM me your ID and I’ll send you mine.

          2. 3

            what’s wrong with tox?

            1. 3

              Nothing that I know of.

              1. 2

                Last I saw which was a little while ago, It didn’t work well at all on mobile because you need a constant connection to the network which drains your battery and data real fast. Matrix looks a lot more promising for real use.

                1. 1

                  does matrix have video chat?

                  1. 1

                    It does. It has almost all the features of things like discord and slack but they need to be polished more and sped up.

                2. 1

                  Doesn’t Tox have occasional developer drama every so often?

                3. 1

                  Can you clarify what Tox is and, more importantly, why you think it wouldn’t pass?

                  I think you mean “be better than Tox [another messaging system], which has its own usability problems”.

                  1. 2

                    Tox is another P2P messaging system. The Qt client is a little wonky, and I remember having issues when trying to do group chat. Beyond that, it was really nice to use, and the voice chat functionality was surprisingly great. The last time I used Tox was maybe 2014 so maybe it’s changed since then. I think the main thing Tox has going for it ahead of other P2P systems is that it’s relatively popular and well-known.

                1. 3

                  Can we stop using the term technical debt? It was invented by Ward Cunningham to explain to business people the risk and benefit of cutting corners. We are not finance people and like all analogies it breaks down quickly. Who incurs the debt and who pays it back? Its unclear.

                  1. 2

                    Who incurs the debt

                    First the developers. They have to do more work. Then the users. Code tends to be delivered to them later because TD adds to time.

                    and who pays it back?

                    Your boss. Either he invests in giving you time to fix the TD or he pays continuously because your day-to-day work takes longer and longer.

                    I think the term pretty much nails it. Not only for finance people.

                    1. 1

                      First the developers. They have to do more work. Then the users. Code tends to be delivered to them later because TD adds to time.

                      Technical debt saves time! That was the argument Ward Cunningham gave as a benefit of technical debt. You save time now for complexity later. It’s a way to push out software faster in the beginning. it’s about cutting corners. You incur TD because it saves you time!

                      Your boss. Either he invests in giving you time to fix the TD or he pays continuously because your day-to-day work takes longer and longer.

                      What if there is no boss? What if you never pay technical debt? What if you just keep patching? What if your software reaches a point where it’s feature complete and there is not reason to tackle the technical debt? Is this a debt jubilee?

                      It makes no sense, who do we borrow from? the universe? ourselves? Is there interest? Is it quantifiable?

                      I prefer other terms than technical debt like entropy, code rot, or incidental complexity. It’s about keeping a clean shop. After the first release it’s all maintenance. A better analogy might be a car mechanic keeping a clean shop.

                      1. 1

                        Is it quantifiable?

                        Yes, for companies producing software, yes it is. For Open Source projects, may be.

                        It’s about keeping a clean shop.

                        Well, no. It can be all dirty but this might not add to the total cost of maintaining or producing the product. It’s not about work ethics or craftsmanship.

                        TD is used to assess the real cost of certain decisions. (I like your “cutting corners”.) Whether these costs are too high or not, or like you said, if it even saves you in the end, doesn’t matter. It is just a term for those costs.

                        1. 2

                          Yes, for companies producing software, yes it is.

                          Can you expand on that? Quantifying software development has, so far, been a very difficult challenge.

                          1. 1

                            Yes, sure, exactly quantifying the costs has been a very difficult challenge. But you can estimate, get a measure of, or roughly calculate the costs. And this is in fact what you do in every sprint planning, if you do follow an agile methodology.

                            Example: When I use SVN as a version control software I can add up a certain amount of time, say 10 minutes, when I do manually “rebase” my changes on the current trunk. If I do that 3 times a day, that’ll be 30 minutes. Or I can use git, where it’ll take me lets say 1 minute, or 3 minutes a day.

                            Now when I want to switch the repo to git, and want to preserve the commit history, I need to understand and use cvs2git to transform the SVN repo. Then I need to test the import. Publish it. Train my fellow colleagues to use git. Lets say I need two weeks for that.

                            Now is it worth it? When will the cost amortize?

                            I think this is pretty good quantifiable. If you just guesstimate.

                            1. 1

                              Or you could just decide commit history isn’t all that important to you and do merges, no tool change needed! Your example leaves out a bunch of other work, though. For example, if your company has a bunch of tooling that makes assumptions about using SVN, then moving over to git could be extremely expensive, and that expense is usually a challenge to quantify, IME. Is it worth having the tools team abstract SVN away or move everything to git? What won’t we have in the time it takes for them to do that? And that’s what TD usually looks like IME. It’s not “if we do this, I’ll save X minutes every day, and doing this is free”. Almost always, it’s “we can do this, I’ll save X minutes every day, but doing this will cost us a month of doing other things”. And since quantifying the future is hard, that statement becomes much harder to quantify.

                              1. 1

                                I might be wrong but it seems you mix-up business decisions with engineering decisions. And of course, taking decisions in a world where you do not know everything is difficult. That’s what makes it so interesting :)

                                But I believe I see your point: TD is a limited concept that does not encompass the entire problem-space of software quality. True.

                                1. 2

                                  I might be wrong but it seems you mix-up business decisions with engineering decisions.

                                  TD is inherently a business decision, otherwise not having it/solving it when it does show up would be trivial: just do refactor/rewrite and take as long as you want.

                  1. 6

                    It may be the late hour, but I’m having trouble synthesizing the information presented here. It seems that Giacomo contributed some code to Harvey, a Plan9 fork, but then forked Harvey at some point to create Jehanne. He stopped paying attention to Harvey at some point after focusing efforts on Jehanne. A friend pointed out that Harvey’s attributions no longer included his name. He verified this and then posted an issue about it. The Harvey folks said something along the lines of “no big deal” and after some discussion, the Harvey folks decided that it would be better to remove all of his contributions than to attribute them to him. He pointed out that their rework didn’t really remove his contributions but rather reimplemented them minorly. Then he posted a blog post about it.

                    Does the Harvey team still have work to do if they want to actually mitigate a need to attribute to Giacomo?

                    1. 12

                      He laid it out cleanly in the end. Instead of respecting him and his contributions, they bitterly removed them. He feels the Free Software people respect contributors, while big corporate open source folks dont. I agree with his conclusion. It’s a cautionary tale.

                      1. 8

                        It’s a cautionary tale.

                        Exactly. But note that it’s not just a matter of Free Software’s ethics.

                        As I tried to explain them, if you use somebody else code without proper copyright statements, you pose a threat to their own right to use their code elsewhere.

                        1. 1

                          It sucks a lot but I think it’s something that we as contributors have to accept. Code changes. When our contributions are no longer present, there’s no longer a need to actively recognize those contributions. At least, that seems to be the terms of the license.

                          1. 10

                            except thats not what seems to have happened. They actively removed and reimplemented so the name isnt on the project. Thats some nasty stuff.

                            1. 4

                              They actively removed and reimplemented so the name isnt on the project. Thats some nasty stuff

                              Umm, no, that’s not nasty. It happens, sometimes for good reasons: https://marc.info/?l=openbsd-cvs&m=99118918928072&w=2

                              1. 3

                                The point @stsp is not that they reimplemented my stuff. Surely they can!
                                But their new implementation can be obtained by trivial, non recursive, modifications of my patches (that is: you can do that with notepad, you don’t even need for a regular expression).
                                And, accidentally, their reimplementation work went mixed in few huge commits that were a squash of several commits from several authors.

                                Now, I wont bore them anymore. But I really learned a lesson there.

                                1. 1

                                  And if the parts of your patches they kept could be obtained by trivial, non recursive, modifications of their original code, what then?

                                  Your statement shows that you are applying the derivative work concept, but only where it favours your own cause.

                                  1. 4

                                    And if the parts of your patches they kept could be obtained by trivial, non recursive, modifications of their original code, what then?

                                    If you think that my patches can be obtained by trivial, non recursive, modifications of their original code, you didn’t look at the code at all…

                                    1. 1

                                      This is about parts of patches, not the patches as a whole.

                            2. 3

                              I cannot agree @colindean: I didn’t complain for the code they removed or replaced.
                              For example I ported zlib to Harvey and wrote a console filesystem in user space, and they properly removed them together with the copyright statements, here and here.
                              I’m fine with this: it’s their project, they are many different people, they can always choose better approaches.

                              What I cannot accept, is people using my code and patches (that I’m using elsewhere) without any attribution.
                              SCO teaches that things can get hairy in the long term.
                              And they are backed by Software Freedom Conservancy.

                        1. 2

                          I think this highlights an interesting point. Fuzzers test the program. A program IS A model. Model checkers also test models. Formal models are models of models. And software is arguably a model of a users mental model. Therefore formal models are models of models, which model a model. It might just be tutrles all the way down.

                          1. 2

                            The most frustrating aspect of this photograph competition is that the only images published on the official site are low resolution. Downscales like this just don’t give appropriate credit to the photographer: https://www.epsrc.ac.uk/epsrc/cache/file/504AC1E7-3623-4C88-AB2D3FF808A296C1.png

                            Has anyone located the originals online?

                            1. 2

                              The largest version of the linked photo I could find on Tineye is at The Guardian’s page here (direct link here - 1920x1440).

                              The other contest winners are on that page, likely in similar dimensions.

                              1. 1

                                I’ve not been able to find higher res versions of that photo, but I did find this one: http://content.assets.pressassociation.io/2018/02/11175054/f7f7c86b-dc52-4355-a622-9e3cb9a876fc.jpg

                              2. 1

                                It’s possible they only post low res to give the photographer a chance to sell higher quality versions. I would easily pay for a high quality poster.

                              1. 6

                                I think one feature that bitcoin has over other consensus algorithms is that it’s far simpler than any that came before it. The blockchain based on POW is simple. It’s simplicity is what I admire about it.

                                1. 6

                                  I love this because that comfort of long hours can eventually lead to never ending dread and then burnout. Beyond valuing outcome, those working long hours miss the most important truth. That productivity is the greatest source of waste. Being thoughtful about your work is hard, lets go coding.

                                  1. -1

                                    Eventually we will stop investing in chemical rocketry and do something really interesting in space travel. We need a paradigm shift in space travel and chemical rockets are a dead end.

                                    1. 7

                                      I can’t see any non-scifi future in which we give up on chemical rocketry. Chemical rocketry is really the only means we have of putting anything from the Earth’s surface into Low Earth Orbit, because the absolute thrust to do that must be very high compared what you’re presumably alluding to (electric propulsion, lasers, sails) that only work once in space, where you can do useful propulsion orthogonally to the local gravity gradient (or just with weak gravity). But getting to LEO is still among the hardest bits of any space mission, and getting to LEO gets you halfwhere to anywhere in the universe, as Heinlein said.

                                      Beyond trying reuse the first stage of a conventional rocket, as SpaceX are doing, there are some other very interesting chemical technologies that could greatly ease space access, such as the SABRE engine being developed for the Skylon spaceplane. The only other way I know of that’s not scifi (e.g. space elevators) are nuclear rockets, in which a working fluid (like Hydrogen) is heated by a fissiling core and accelerated out of a nozzle. The performance is much higher than chemical propulsion but the appetite to build and fly such machines is understandably very low, because of the risk of explosions on ascent or breakup on reentry spreading a great deal of radioactive material in the high atmosphere over a very large area.

                                      But in summary, I don’t really agree with, or more charitably thing I’ve understood your point, and would be interested to hear what you actually meant.

                                      1. 3

                                        I remember being wowed by Project Orion as a kid.

                                        Maybe Sagan had a thing for it? The idea in that case was to re-use fissile material (after making it as “clean” as possible to detonate) for peaceful purposes instead of for military aggression.

                                        1. 2

                                          Atomic pulse propulsion (ie Orion) can theoretically reach .1c, so that’s the nearest star in 40 years. If we can find a source of fissile material in solar system (that doesn’t have to be launched from earth) and refined, interstellar travel could really happen.

                                          1. 1

                                            The moon is a candidate for fissile material: https://www.space.com/6904-uranium-moon.html

                                        2. 1

                                          Problem with relying a private company funded by public money like SpaceX is that they won’t be risk takers, they will squeeze every last drop out of existing technology. We won’t know what reasonable alternatives could exist because we are not investing in researching them.

                                          1.  

                                            I don’t think it’s fair to say SpaceX won’t be risk takers, considering this is a company who has almost failed financially pursuing their visions, and has very ambitious goals for the next few years (which I should mention, require tech development/innovation and are risky).

                                            Throwing money at research doesn’t magically create new tech, intelligent minds do. Most of our revolutionary advances in tech have been brainstormed without public nor private funding. One or more people have had a bright idea and pursed it. This isn’t something people can just do on command. It’s also important to also consider that people fail to bring their ideas to fruition but have paved the path for future development for others.

                                            1. 1

                                              I would say that they will squeeze everything out of existing approaches, «existing technology» sounds a bit too narrow. And unfortunately, improving the technology by combining well-established approaches is the stage that cannot be too cheap because they do need to build and break fulll-scale vehicles.

                                              I think that the alternative approaches for getting from inside atmosphere into orbit will include new things developed without any plans to use them in space.

                                          2. 2

                                            What physical effects would be used?

                                            I think that relying on some new physics, or contiguous objects of a few thousand kilometers in size above 1km from the ground are not just a paradigm shift; anything like that would be nice, but doesn’t make what there currently is a disappointment.

                                            The problem is that we want to go from «immobile inside atmosphere» to «very fast above atmosphere». By continuity, this needs to pass either through «quite fast in the rareified upper atmosphere» or through «quite slow above the atmosphere».

                                            I am not sure there is a currently known effect that would allow to hover above the atmosphere without orbital speed.

                                            As for accelerating through the atmosphere — and I guess chemical air-breathing jet engines don’t count as a move away from chemical rockets — you either need to accelerate the gas around you, or need to carry reaction mass.

                                            In the first case as you need to overcome the drag, you need some of the air you push back to fly back relative to Earth. So you need to accelerate some amount of gas to multiple kilometers per second; I am not sure there are any promising ideas for hypersonic propellers, especially for rareified atmosphere. I guess once you reach ionosphere, something large and electromagnetic could work, but there is a gap between the height where anything aerodynamic has flown (actually, a JAXA aerostat, maybe «aerodynamic» is a wrong term), and the height where ionisation starts rising. So it could be feasible or infeasible, and maybe a new idea would have to be developed first for some kind of in-atmosphere transportation.

                                            And if you carry you reaction mass with you, you then need to eject it fast. Presumably, you would want to make it gaseous and heat up. And you want to have high throughput. I think that even if you assume you have a lot of electrical energy, splitting watter into hydrogen and oxygen, liquefying these, then burning them in-flight is actually pretty efficient. But then the vehicle itself will be a chemical rocket anyway, and will use the chemical rocket engineering as practiced today. Modern methods of isolating nuclear fission from the atmosphere via double heat exchange reduce throughput. Maybe some kind nuclear fusion with electomagnetic redirection of the heated plasma could work, maybe it could even be more efficient than running a reactor on the ground to split water, but nobody knows yet what is the scale required to run energy-positive nuclear fusion.

                                            All in all, I agree there are directions that could maybe become a better idea for starting from Earth than chemical rockets, but I think there are many scenarios where the current development path of chemical rockets will be more efficient to reuse and continue.

                                            1. 2

                                              What do you mean by “chemical rockets are a dead end”? In order to escape planetary orbits, there really aren’t many options. However, for intersteller travel, ion drives and solar sails have already been tested and deployed and they have strengths and weaknesses. So there are multiple use cases here depending on the option.

                                              1. 1

                                                Yeah right after we upload our consciousness to a planetary fungal neural network.

                                              1. 4

                                                It’s not tech we don’t have, it’s just a willingness to build systems that are not economically optimal. Could we build 100mi^2 of solar panels? Yes! Is that ever going to be cheaper than if we just picked the most financially efficient path? Super unlikely.

                                                1. 4

                                                  It’s all way too slow, but it’s not all bad news: https://www.nytimes.com/2018/02/06/opinion/utility-embracing-wind-solar.html

                                                  The bids have come in so low that the company will be able to build and operate the new plants for less money than it would have to pay just to keep running its old, coal-burning power plants.

                                                  1. 3

                                                    Financial efficiency isn’t exactly an issue when it comes to US government federal spending. The money is the easiest thing to create. The political will is another matter…

                                                  1. 4

                                                    Hating my life because we’re a month-and-a-half past our scheduled release date because of a subtle bug in our code that wasn’t caught due to the nature of our test data (I know, I know!) and a bunch of testing not being done on the UI side because we’re understaffed.

                                                    1. 2

                                                      Dont waste time with automated tests. Users are unpredictable creatures and do crazy shit. Exploratory testing will save you time. except regression tests, do those.

                                                    1. 11

                                                      Thank you for the wonderful comments last week.

                                                      I wrote an Earley parser. And a Pratt parser. The Pratt parser is what I’ve been looking for all this time: a modular recursive descent parser. What it lacks in formalism it makes up with in brevity and power-to-weight.

                                                      Now, I need to choose a host language. I’d like to pick Rust, but I’m not sure it has a ready-made GC solution right now, and I don’t want to go down that rabbit hole. That leaves C++, JVM, or OTP. Any thoughts?

                                                      1. 3

                                                        What kind of language are you looking to interpret/execute? The three platforms you mention all have really different tradeoffs.

                                                        1. 3

                                                          A Lisp-esque language under the hood with a non-Lisp syntax on top. Idea is the functional paradigm can subsume the other two big paradigms (imperative/logic). Can use the CEK machine for proper tail call handling, so that isn’ta requirement of the host. Big thing I’m looking for is a GC (whether lib or built-in) and a language I like that I can target it with.

                                                        2. 2

                                                          For rust, you can wrap everything in a Rc, or if you have multiple threads an Arc, or if you want tracing GC you can use this, or if you just need epoch-style reclamation there’s crossbeam-epoch or if you just need hazard pointers there’s conc. I’ve had a lot of success with crossbeam-epoch in lock-free systems I’ve built.

                                                          1. 1

                                                            Rc (and friends) would need cycle detection, no? Maybe the thing to do is just use Rc and do research on cycle-detection algorithms to see if they are hard or not.

                                                            I looked at Epoch and hazard pointers and wasn’t sure if they were ok as a general GC. I need to do more reading. Thanks!

                                                            1. 2

                                                              Yeah, you can create memory leaks with Rc cycles in rust. But this is rarely an issue in most use cases. Rust memory can feel a little confusing at first, but cycles tend not to come up once you learn some different idioms for structuring things in non-cyclical ways.

                                                              For example, if you want to build a DAG, you can quickly implement it with a HashMap from ID to Node, where ID is some monotonic counter that you maintain. Each Node can contain Vec’s of incoming and outgoing edges. You can implement your own RC-like thing that tracks the sum of indegree and outdegree, and when it reaches 0, you just remove the Node out of the containing hashmap. For the cases where performance or concurrency concerns rule out this approach (which are rare and should not be pursued until this is measured to be a bottleneck) you can always write Rust like C with unsafe pointers, Box::into_raw, dereferencing inside unsafe blocks, and free’ing by calling Box::from_raw (actually calling drop() on that if you want to be explicit about what’s happening, but it will be dropped implicitly when it goes out of scope). Use mutexes on shared state until… basically always, but if you REALLY want to go lock-free, that’s when you can benefit from things like crossbeam-epoch to handle freeing of memory that has been detached from mutable shared state but may still be in use by another thread.

                                                              Feel free to shoot me an email if you’re curious about how something can be done in Rust! I know it can be overwhelming when you’re starting to build things in it, and I’m happy to help newcomers get past the things I banged my head against the wall for days trying to learn :)

                                                          2. 2

                                                            FWIW, many languages written in C or C++ use arenas to hold the nodes that result from parsing . For example, CPython uses this strategy. I’m pretty sure v8 does too. So you don’t manage each node individually, which is a large load on the memory allocator/garbage collector – you put them all in a big arena and then free them at once.

                                                            1. 2

                                                              Save the earth , use C++ or OTP

                                                              1. 1

                                                                You also have Go and .NET Core as possible host runtimes.

                                                                1. 1

                                                                  What about Nim? It seems to be a memory-safe language with low-latency GC, macros, and produces C. I mean, the Schemes are ideal if doing language building with LISP thing underneath since they start that way.

                                                                1. 4

                                                                  A solid list, with one question mark.

                                                                  Lynn Conway started life as a man. does this mean he/then her achievements give equally credited to men/women?

                                                                  1. 52

                                                                    No. Trans women are women.

                                                                    1. 10

                                                                      Thank you . I want to live in a world where this is just taken as a given. Lets start with our little world here people.

                                                                      1. 8

                                                                        What is the goal of creating a list of women in CS? If it’s to demonstrate to young girls that they can enter the field, it seems unproductive to include someone who grew up experiencing life as a man.

                                                                        If the goal of creating the list is some kind of contest, then it’s counterproductive for entirely different reasons.

                                                                        1. 28

                                                                          someone who grew up experiencing life as a man

                                                                          Do you know any trans women who have said they grew up experiencing life as a man? I know quite a few and none of them have expressed anything like this, and my own experience was certainly not like that.

                                                                          However, if you mean that we were treated like men, with the privilege it brings in many areas, then yes, that became even more obvious to me the moment I came out.

                                                                          Regardless, trans folks need role models too, and we don’t get a lot of respectful representation.

                                                                          1. 21
                                                                            $ curl https://www.hillelwayne.com/post/important-women-in-cs/ | grep girl | wc -l
                                                                            0
                                                                            

                                                                            The motivation for the post are clearly layed out in the first paragraph:

                                                                            I’m tired of hearing about Grace Hopper, Margaret Hamilton, and Ada Lovelace. Can’t we think of someone else for once?

                                                                            It’s a pretty pure writeup for the sake of being a list you can refer to.

                                                                            On your statement about “girls”. It’s quite bad to assume a list of women is just for kids, it’s also bad to assume trans women can’t be examples to (possibly themselves trans) girls.

                                                                            1. 4

                                                                              That’s not a motivation, that’s a tagline.

                                                                              The primary reason I would refer to a list like this is if I was demonstrating to a young woman considering CS that, perhaps despite appearances, many women have historically made major contributions to the field. I’m not sure what else I would need something like this for.

                                                                              1. 5

                                                                                Maybe its not for you to distribute but for women to discover …

                                                                              2. 1

                                                                                I don’t see why it’s bad to assume that. It feels like it would be a pretty serious turn off to me if I we’re looking for successful women and found people who were men into adulthood. I find it hard to imagine that I’m unique in that feeling. I’m sure it feels good for trans people but I’d that’s your goal admit the trade-off rather than just telling people they’re women and not transwomen.

                                                                                You can berate people for not considering trans-women to be the same as born women but it will likely just keep them quiet rather than convince them to be inspired.

                                                                                1. 19

                                                                                  people who were men into adulthood

                                                                                  Now I’m curious what your criteria are, if not self-identification. When did this person cease to be a man, to you?

                                                                                  When they changed their name?

                                                                                  When they changed their legal gender?

                                                                                  When they started hormones?

                                                                                  When they changed their presentation?

                                                                                  When they got surgery?

                                                                                  What about trans people who do none of that? E.g. I’ve changed my name and legal gender (only because governments insist on putting it in passports and whatnot,) because I had the means to do so and it bothered me enough that I did, is that enough? What about trans people who don’t have the means, option, or desire to do so?

                                                                                  When biologist say that there’s not one parameter that overrides the others when it comes to determining sex¹, and that it makes more sense to just go by a person’s gender identity if you for whatever reason must label them as male/female, why is that same gender identity not enough to determine someone’s own gender?

                                                                                  1. http://www.nature.com/news/sex-redefined-1.16943
                                                                              3. 16

                                                                                If it’s to demonstrate to young girls that they can enter the field, it seems unproductive to include someone who grew up experiencing life as a man.

                                                                                This is a misunderstanding of transexuality. She grew up experiencing life as a woman, but also as a woman housed in a foreign-feeling body and facing a tendency by others to mistake her gender.

                                                                                Does that mean she faced a different childhood from many other women? Sure. But she also shared many of the disadvantages they faced, frequently to a much stronger degree. Women face difficulty if they present as “femme” in this field, but it is much more intense if they present as femme AND people mis-bucket them into the “male” mental box.

                                                                            2. 14

                                                                              If they identified as a woman at the time of accomplishment, it seems quite reasonable that it’d count. For future work, just think about it in terms of trans-woman extends base class woman or at least implements the woman interface.

                                                                              In any event, your comment is quite off-topic. Rehashing this sort of stuff is an exercise that while interesting is better kept literally anywhere else on the internet–if you have questions of this variety, please seek enlightenment via private message with somebody you think may be helpful on the matter, and don’t derail here.

                                                                              1. 7

                                                                                The point of this is not to give more achievements to women… It’s to showcase people who were most likely marginalized.

                                                                                1. [Comment removed by author]

                                                                                  1. 9

                                                                                    This is definitely not what life is like for trans people pre-transition.

                                                                                2. 12

                                                                                  It’s rude to talk about people’s gender like this fyi

                                                                                  1. 0

                                                                                    It’s ridiculous to allow this framing to suppress a reasonable point.

                                                                                    1. 10

                                                                                      It’s not a reasonable point. This is not the place to make whatever point you’re trying to make.

                                                                                  2. 3

                                                                                    Depends on where a person is on political spectrum. I’d probably note they’re trans if targeting a wide audience, not if a liberal one, and leave person off if a right-leaning one.

                                                                                    1. 5

                                                                                      what they dont know wont hurt them. As far as the right is concerned , she is a woman …

                                                                                    2. 2

                                                                                      It is irrelevant, and you asking this is offensive.

                                                                                      1. -1

                                                                                        Interesting question. I think it may be met with hostility, as it brings to mind the contradiction inherent in both claiming that sex/gender is arbitrary or constructed and also intentionally emphasizing the achievements of one gender. Based on the subset of my social circle that engages in this kind of thing, these activities are usually highly correlated. Picking one or the other seems to get people labeled as, respectively, some slang variation of “nerd”, or a “TERF”.

                                                                                        1. 34

                                                                                          Can we please not for once? Every time anything similar to this comes up the thread turns into a pissfight over Gender Studies 101. Let’s just celebrate Conway’s contributions and not get into an argument about whether she “counts”.

                                                                                          1. 10

                                                                                            Much as I sympathize, transgender is controversial enough that merely putting a trans person on a list that claims all its members are a specific gender will generate reactions like that due to a huge chunk of the population not recognizing the gender claim. That will always happen unless the audience totally agrees. So, one will always have to choose between not mentioning them to avoid noise or including them combating noise.

                                                                                            1. 20

                                                                                              I would like to live in a world where trangender isnt controversial and we dont have to waste energy discussing this. Can lobsters be that world please ?

                                                                                              1. 18

                                                                                                Perhaps this is why we get accused of pushing some kind of agenda or bringing politics into things, by merely existing/being visible around people who find us ”controversial” or start questioning whether our gender is legit or what have you. I usually stay out of such discussions, but sometimes feel the need to respond to claims about trans folks that I feel come from a place of ignorance rather than bigotry or malice, but most of the time I’m proven wrong and they aren’t really interested in the science or whatever they claim, they just want an excuse to say hateful things about us. I’ve had a better than average experience on this website, when it comes to responses.

                                                                                                1. 6

                                                                                                  I cant speak for everyone on the side that denies trans identity. Just my group I guess. For us and partly for others, the root of the problem is there is a status quo with massive evidence and inertia about how we categorize gender that a small segment are countering in a more subjective way. We dont think the counters carry the weight of status quo. We also prefer objective criteria about anything involving biology or human categorization where possible. I know you’ve heard the details so I spare you that

                                                                                                  That means there will be people objecting every time a case comes up. If it seems mean, remember that there’s leftists who will be quick to counter anything they think shouldn’t be tolerated on a forum (eg language policing) on their principles. For me, Im just courteous with the pronouns and such since it has no real effect on me in most circumstances: I can default on kindness until forced to be more specific by a question or debate happening. Trans people are still people to me. So, I avoid bringing this stuff up much as possible.

                                                                                                  The dont-rock-the-boat, kinder approach wouldve been for person rejecting the gender claim to just ignore talking about the person he or she didnt think was a woman to focus on others. The thread wouldve stayed on topic. Positive things would be said about about deserving people. And so on. Someone had to stir shit up, though. (Sighs)

                                                                                                  And I agree Lobsters have handled these things much better than other places. I usually like this community even on the days it’s irritating. Relatively at least. ;)

                                                                                                  1. 6

                                                                                                    For us and partly for others, the root of the problem is there is a status quo with massive evidence and inertia about how we categorize gender that a small segment are countering in a more subjective way.

                                                                                                    I know you’re a cool dude and would be more than happy to discuss this with you in private, but I think we all mostly agree that this is now pretty outside the realm of tech, so continuing to discuss it publicly would be getting off topic :) I’ll DM you?

                                                                                                    1. 7

                                                                                                      I was just answering a question at this point as I had nothing else to say. Personally, Id rather the political topics stay off Lobsters as I voted in community guidelines thread. This tangent couldnt end sooner given how off topic and conflict-creating it is.

                                                                                                      Here’s something for you to try I did earlier. Just click the minus next to Derek’s comment. This whole thread instantly looks the way it should have in first place. :)

                                                                                                    2. 4

                                                                                                      I find the idea that everyone who disagrees with these things should avoid rocking the boat extremely disconcerting. It feels like a duty to rock it on behalf of those who agree but are too polite or afraid for their jobs or reputations to state their actual opinions, to normalize speaking honestly about uncomfortable topics.

                                                                                                      I mean, I also think it’s on topic to debate the political point made by the list.

                                                                                                      1. 4

                                                                                                        I agree with those points. It’s why I’m in the sub-thread. The disagreement is a practical one a few others are noting:

                                                                                                        “I mean, I also think it’s on topic to debate the political point made by the list.”

                                                                                                        I agree. I told someone that in private plus said it here in this thread. Whether we want to bring it up, though, should depend on what the goal is. My goal is the site stays focused on interesting, preferably-deep topics with pleasant experience with minimal noise. There’s political debates and flamewars available all over the Internet with the experience that’s typical of Lobsters being a rarity. So, I’d just have not brought it up here.

                                                                                                        When someone did, the early response was a mix of people saying it’s off-topic/unnecessary (my side) and a group decreeing their political views as undeniable truth or standards for the forum. Aside from no consensus on those views, prior metas on these things showed that even those people believed our standards would be defined by what we spoke for and against with silence itself being a vote for something. So, a few of us with different views on political angle, who still opposed the comment, had to speak to ensure the totality of the community was represented. It’s necessary as long as (a) we do politics here and (b) any group intends to make its politics a standard or enforeable rule. Countering that political maneuvering was all I was doing except for a larger comment where I just answered someone’s question.

                                                                                                        Well, that plus reinforcing I’m against these political angles being on the site period like I vote in metas. You can easily test my hypothesis/preference. Precondition: A site that’s usually low noise with on-topic, productive comments. Goal: Identify, discuss, and celebrate the achievements of women on a list or in the comments maintaining that precondition. Test: count the comments talking about one or more women versus the gender identity of one (aka political views). It’s easier to visualize what my rule would be like if you collapse Derek’s comment tree. The whole thread meets the precondition and goal. You can also assess those active more on politics than the main topic by adding up who contributed something about an undisputed woman in CompSci and who just talked about the politics. Last I looked, there were more users doing the politics than highlighting women in CompSci as well. Precondition and goal failed on two measurements early on in discussion. There’s a lot of on-topic comments right now, though, so leaned back in good direction.

                                                                                                        Time and place for everything. I’d rather this stuff stay off Lobsters with me only speaking on it where others force it. It’s not like those interested can’t message each other, set up a gender identity thread on another forum, load up IRC, and so on to discuss it. They’re smart people. There’s many mediums. A few of us here just want one to be better than the rest in quality and focus. That’s all. :) And it arguably was without that comment tree.

                                                                                                      2. 8

                                                                                                        So, I avoid bringing this stuff up much as possible.

                                                                                                        Keep working on this

                                                                                                        1. 2

                                                                                                          The dont-rock-the-boat, kinder approach wouldve been for person rejecting the gender claim to just ignore talking about the person he or she didnt think was a woman to focus on others. The thread wouldve stayed on topic. Positive things would be said about about deserving people.

                                                                                                          Do you believe the most deserving will be talked about most? If you have a population that talks positively about people whether or not they are trans, and you have a smaller population that talks only about non trans people and ignores the trans people, Which people will be talked about most in aggregate? It isn’t kinder to ignore people and their accomplishments.

                                                                                                          It is also very strange for technology people to reject a technology that changes your gender. What if you had a magic gun and you can be a women for a day, and then be a man the next, why the hell not? We have a technology now where you can be a man or a women or neither or both if you wanted to. Isn’t technology amazing? You tech person you!

                                                                                              1. 15

                                                                                                If comparing them, so far I’m saying Barbara Liskov for the win. The work I like most is the kind that can accelerate other work. There’s lots of influence given both abstract, data types influence on language design and CLU having some influence on C++ that got widely used. Her work might have also helped build a lot of the others’ work if it got more investment or refining. The other two things on her Wikipedia were first language for distributed systems and an object-oriented database. I recall she also did something in Byzantine Fault-Tolerance but I can’t remember if it was big impact.

                                                                                                She wasn’t obscure to CompSci either: they gave her a Turing Award for her contributions. She’s still publishing with new and old papers here. Definitely should be recognized by modern programmers esp since distributed systems are the thing these days with her laying a lot of groundwork when client-server on PC’s and servers was the thing. True pioneer.

                                                                                                1. 3

                                                                                                  Her work on Byzantine Fault-Tolerance is now used in some cryptocurrencies (Ripple and Stellar for example) so it’s pretty significant.

                                                                                                  1. 1

                                                                                                    While we’re acknowledging fundamental abstractions, Emmy Noether should get some credit for her contributions to algebra. Algebraic invariants, well-founded induction, lots of important and subtle stuff there. It’s the kind of math that makes formal semantics of programming languages even possible.

                                                                                                    1. 1

                                                                                                      Yes! I was thanks to the Noether language giving tribute that I found out about her. She was amazing.

                                                                                                    2. 1

                                                                                                      Liskov’s work is great because she created so many great mental tools that I literally use everyday.

                                                                                                    1. 5

                                                                                                      The first diagram shows the input going into the controller for MVC. This diagram is wrong because MVC does not dictate which part gets the input. The view can, the model can, or the controller can!

                                                                                                      1. 21

                                                                                                        I’m sorry, if I have the skill to build it, i’ll likely build it myself. That’s the beauty of software and computers. These things should be empowering and we should not be at the mercy of “the open market”. In fact, the market kind of sucks for giving you what you want.

                                                                                                        1. 8

                                                                                                          What people want and what is good for them are usually different things, and having a common tool with some common discomfort is far better than a bunch of bespoke solutions.

                                                                                                          It is no accident in history that the spread of interchangeable parts and industry made artisans basically irrelevant.

                                                                                                          1. 10

                                                                                                            Not if they never get fixed and are poorly documented or hard to contribute changes into. Then people have to create something new in order to fix common discomforts.

                                                                                                            EG, check out the node ecosystem.

                                                                                                          2. 4

                                                                                                            Indeed. To bring in a little more jargon, even if I were to believe in such a strong version of the “efficient market hypothesis” that applied outside of formal markets with real prices, why should I expect that it should apply in such a novel and immature area as software, where Ecclesiastes is obviously wrong?

                                                                                                            1. 6

                                                                                                              Ecclesiastes

                                                                                                              Because economics is religion. Religion can’t be wrong.

                                                                                                            2. 4

                                                                                                              Author here. Should have posted with the “devops” tag.

                                                                                                              Absolutely, I encourage you to! The point I try to make in the article is not to deter you from building anything new. Just to make you think if the effort is worth it, and to make you question if the problem you’re solving is indeed a problem that has no solution other than requiring you to build a new thing from scratch. In fact, I repeat this quite a few times throughout the writing. But some things just aren’t the focus of your work, and for those things making a couple of compromises and adopting the general case might be worth it.

                                                                                                              Glad you think the market sucks when catering to your demands, as diversity is what makes the ecosystem evolve.

                                                                                                              1. 1

                                                                                                                Indeed. The market isn’t for building things, it’s for setting prices.

                                                                                                              1. 5

                                                                                                                No, no, it’s the children who are wrong.

                                                                                                                1. 1

                                                                                                                  Sent a join request!

                                                                                                                  1. 1

                                                                                                                    Because Im always an optimist What Went Wrong With The IT Industry By Cope

                                                                                                                    1. 31

                                                                                                                      Author here. To be clear, all the stories in this series are jokes, not endorsements. Engineering interviews are a complex problem and I won’t begin to discuss them here, except to say that there are people whose entire lives involve studying and improving teams of humans, they’re called organizational psychologists, and it might be worth hiring some.

                                                                                                                      Since folks have expressed incredulity that these techniques are at all involved in modern programming jobs, I should note that I have had to implement trees, sorting algorithms, and parsers in my professional code. For instance, I wrote the clj-antlr parser bindings to support Riemann’s query parser, which is chock full of tree transforms, on account of it being a compiler for search predicates. Knossos includes a hand-rolled binary search over… what are essentially packed and bitmasked structs, masquerading as a JVM int array. There’s also some graph neighborhood stuff in there that allows us to memoize arbitrary function calls over objects into pointer-chasing through densely packed int arrays. Gretchen implements a number of simplification algorithms over trees of boolean expressions, as well as Tseitin-expansion to reduce predicates to conjunctive normal form, which are required to turn transaction dependency graphs into constraint- and SAT-solver-friendly expressions. This is, like, the third or fourth time I’ve tackled this problem.

                                                                                                                      I don’t… think I’ve done a regex algorithm yet, but my former coworker Zach Tellman has done quite a few DFA and NFAs in his time; Automat comes to mind. I’m sure it’s only a matter of time before I wind up doing it too.

                                                                                                                      My experience is, of course, not representative. :)

                                                                                                                      1. 1

                                                                                                                        Why is it not representative? Seems like problems any experienced person may encounter in their travels. Enjoyed the story BTW.

                                                                                                                        1. 3

                                                                                                                          That’s the hope, but I suspect not everyone gets the chance to venture out into the interesting waters of comp sci.

                                                                                                                          1. 3

                                                                                                                            I’d guess because the median programmer is writing business code and never writes library code in their entire career.

                                                                                                                            1. 1

                                                                                                                              Come on, that’s rock-star stuff.

                                                                                                                              1. 1

                                                                                                                                It’s true, it’s obviously great work. My point is that aphyr IS representative of experienced people. Experienced people … experience many variety of problems.