• 0 Posts
  • 290 Comments
Joined 2 years ago
cake
Cake day: July 9th, 2023

help-circle
  • There’s a lot to be said for the scale of damage that can be done with something, especially relative to the effort needed to do that damage.

    These days tech companies are doing enormous damage to people’s brains (saturating our dopamine receptors to the point that many people have depression and executive dysfunction) to turn us all into consumption machines that can only find happiness by consuming content and buying commercial products and services.

    Imagine how much more harm they’ll do when they have direct access to our neurons, without even LED pixels as a buffer in between.




  • This doesn’t look anything like a humanoid robot that’s being used in a factory. This looks exactly like a humanoid robot in a research lab (probably academic), attached to a safety harness for testing purposes.

    They were clearly running tests, probably trying out a firmware or software update, and they found a liiiiittle bug. This erratic behavior can easily be caused by a tiny subtle memory error in C/C++ code or by transcribing the wrong bits into the serialized joint motor commands.

    Please use safe languages and verifiable methods when developing software for humanoids, folks.







  • Probably the most important thing is keeping up with security fixes. I’m not an expert in web security, but my impression is that there’s a never-ending cat and mouse game between hackers and browser developers to find or patch exploits. And since browsers play such an important role in the activity of hundreds of millions… billions?.. of consumers, it has the largest possible attack surface for hackers to target.

    Then there’s things like better support for web assembly (how I would love the web dev world to break the JavaScript hegemony), and the constantly shifting web standards that are meant to make websites more capable, easier to program, and more performant. E.g. things like websockets and WebRTC.




  • This is exactly my point though: What if people with autism weren’t disadvantaged in society? Then the idea of “curing” it would be meaningless.

    I understand that you’re frustrated by the challenges you’ve dealt with in your life, and I acknowledge that I’m speaking from a place of privilege as someone that doesn’t have any disability. But personally I’d rather see a world where people don’t feel like they’re disadvantaged for not matching the status quo than a world where everyone is equal just because everyone is the same.


  • To what extent are those behaviors something inherent to the neurological condition versus something exacerbated by the conditions that society places on those people?

    There people who argue that transgenderism shouldn’t be tolerated because there’s a strong correlation between being transgender and being depressed to the point of suicide. They believe that “humoring” the “sickness” just leads to more suicide. But the reality is that transgender people aren’t generally depressed when they’re part of a supportive community rather than being alienated.

    I’m not an expert in neurology, and I acknowledge this is a large degree of speculation on my part, but maybe these outcomes can be different if we collectively approach the matter with more understanding and empathy. If the tantrums truly can’t be helped, then create space for the tantrums to happen in a way that minimizes disruption to others and doesn’t elicit judgment.

    As a manager I’ve been on the receiving end of a very aggressive tantrum directed at me from someone who reports to me that I suspect may be on the spectrum. He didn’t feel like I was paying enough attention to his work, and rather than bringing it up to me in a respectful and constructive way, he had an outburst one day where he scolded me in a very demeaning way, essentially accusing me of being negligent as his manager. I suspect a lot of people in my position would have escalated that to HR right away, but instead I took the time to listen to his grievances and acknowledge that I could have done some things better as his manager but also that he is accountable for communicating his needs to me in a timely and respectful manner. He acknowledged that he could’ve handled the situation better and we came up with a system that makes it easier to get what he needs from me.

    In the end no one’s feelings needed to get hurt, no one’s career needed to be damaged, and no one needed to deal with HR, because I was willing to understand the outburst for what it is and not take it too personally.




  • I think it’s debatable whether RAII should be called “memory management”. Whether dealing with Rust or modern C++, you don’t need to “manage” the memory beyond specifying a container that will determine its lifecycle behavior, and then you just let it drop.

    You could certainly choose to manage it more granularly than that in Rust or C++, but in the vast majority of cases that would be considered bad practice.

    That’s a qualitatively different user experience than C or pre-2011 boostless C++ where you actually need to explicitly delete all your heap allocations and manually keep track of which pointers are still valid. Lumping both under “memory management” makes the term so broad that it almost loses its significance.



  • There are several ways to achieve an effect equivalent to operator overloading in Rust, depending on exactly how you want the overloading to work.

    The most common is

    fn do_something(arg: impl Into<Args>) {
        ...
    }
    

    This lets you pass in anything into the function that can be converted into the Args type. If you define the Args type yourself then you can also define any conversion that you want, and you can make any construction method you want for it. It’s a small touch more explicit than C++'s operator overloading, but I think it pays off overall because you know exactly what function implementation all different choices of arguments will be funneling into.

    I’ll admit there’s one thing from C++ that I frequently wish were available in Rust: specialization. Generics in Rust aren’t exactly the same as templates in C++ but they’re close enough that the concept of specialization could apply to traits and generics. There is ongoing work to bring specialization into the language, but it’s taking a long time, and one of my projects in particular would seriously benefit from them being available.

    Still, Rust will have specialization support long before C++ has caught up to even a quarter of the benefits that Rust has over it.


  • Even with modern C++ it’s loaded with seg fault and undefined behavior footguns.

    The times when C++ feels more ergonomic than Rust are the times when you’re writing unsafe code and there’s undefined behavior lurking in there, waiting to ambush you once you’ve sent it to production. Code that is 100% guaranteed safe is always, and I really want to emphasize this: always more ergonomic to write in Rust than it is to write in C++.

    Show me any case where C++ code seems more ergonomic than its Rust equivalent, and I will always be able to show you how either the C++ code has a bug hiding in it or how the Rust code can be revised with syntactic sugar to be more ergonomic than the C++.