Hiker, software engineer (primarily C++, Java, and Python), Minecraft modder, hunter (of the Hunt Showdown variety), biker, adoptive Akronite, and general doer of assorted things.

  • 2 Posts
  • 225 Comments
Joined 3 years ago
cake
Cake day: August 10th, 2023

help-circle



  • But they are not the default option. And your new job may not use them.

    Who cares if it’s the default? If it’s the best tool, use it.

    It’s silly to have a reason for “going Rust” be the build system, especially in the context of something as new as a WASM context where basically any project is going to be green field or green field adjacent.

    Exceptions is a non standard exit point. And by “non standard” I’m not talking about the language but about its surprise appearance not specified in the prototype. Calling double foo(); you don’t know if you should try/catch it, against which exceptions, is it an internal function that may throw 10 level deep ?

    And that’s a feature not a bug; it gets incredibly tedious to unwrap or forward manually at every level.

    By contrast fn foo() -> Result<f64, Error> in rRst tell you the function may fail. You can inspect the error type if you want to handle it. But the true power of Result in Rust (and Option) is that you have a lot of ergonomic ways to handle the bad case and you are forced to plan for it so you cannot use a bad value thinking it’s good:

    You can do this in C++ https://en.cppreference.com/w/cpp/utility/expected (and as I said, if you feel so inclined, turn off exceptions entirely); it’s just not the “usual” way of doing things.



    1. It’s statically compiled and isn’t dependent on system binaries and won’t break if there if the system has the wrong version like C/C++, allowing you to distribute it as a single binary without any other installation steps

    You can do that with C++ too.

    1. Still produces fairly small binaries unlike languages like Java or C# (because of the VM)

    I mean, the jars are actually pretty small; but also I really don’t get the storage argument. I mean we live in a world where people happily download a 600 MB discord client.

    1. Is a modern language with a good build system (It’s like night and day compared to CMake)

    Meson exists … as do others.

    1. And I just like how the language works (errors as values etc.)

    Fair enough; though why? What’s wrong with exceptions?

    I work in a code base where I can’t use exceptions because certain customers can’t use exceptions, and I regularly wish I could because errors as values is so tedious.










  • I think we need to do better than just say “get an education.”

    There are educated people that still vote for Trump. Making it sound like liberalism is some result of going to college is part of why so many colleges are under attack.

    From their perspective I get it, many of the Trump voters didn’t go, they hear that and they just assume brainwashing.

    We need to find a way to teach people to sort out information, to put their immediate emotions on pause and search for information, etc, not just the kind of “education” where you regurgitate talking points from teachers, the TV, or the radio as if they’re matter of a fact … and the whole education system is pretty tuned around regurgitation, even at the college level. A lot of the culture of exploration surrounding college (outside of the classroom) is likely more where the liberal view points come from and we’d be ill advised to assume the right can’t destroy that.





  • They can do whatever they want. Operating systems are effectively divided into two partitions, privileged kernel space and user space.

    When you run a kernel level anticheat what you’re really doing is running a custom program in the kernel space. It effectively becomes part of Windows.

    This means that anything that an operating system can instruct hardware to do, that program can do. It can read your files, check your email, print letter you wrote to your crush in Word but “deleted” because it was embarrassing, log every key you type, turn on your webcam, listen to the microphone, download explicit or illegal imagery, upload your hard drive to the NSA, disable your computer fans, etc

    You really only want to run this stuff if it’s from a trustworthy vendor and even then it’s completely defensible to object to running one of these programs.

    Currently these things have yet to be caught doing any of these things, but that’s because they haven’t been instructed to, not because they can’t.



  • China is state capitalism. Capitalism isn’t losing. The West is losing because China is using state funds to buy up successful Western companies, and as their new owner, has the ability to force them to do China’s bidding.

    Meanwhile the West is completely barred from buying a majority stake in any successful Chinese company and even if it could would not be taking it over on behalf of serving the state.

    The problem is China plays by its own rules and those rules are heavily stacked against every other nation. That was fine when they were making junk for Walmart; it’s not so fine when it’s highly sophisticated electronics and software (that can do whatever China wants it to in the West) … and to add insult to injury it’s often based on stolen Western technology (since us idiots decided to put the factories that manufacturer the designs there).