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.

  • 1 Post
  • 20 Comments
Joined 2 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’m in my own house, notice the @social.packetlosss.gg; our “houses” are just talking and that continued conversation is subject to ruud’s and I’s discretion. The way federation works, really nobody “owns” the content, there’s just an agreement on what the primary copy is. There’s no support for this in the software currently, but you could conceptually change which server is the primary copy at any time. The protocol and to some extent the content on it exist in an intangible space.

    IMO all Reddit did was strengthen their legal argument; they arguably already had the right to make a “book of reddit poems.” They just wanted to stack the deck on their side. Arguably you have the right to make a book of poems on Reddit.



  • The law is largely down to who argues better in court. There is precedent for reduced rights in public spaces. e.g. if you go into the town square and talk to someone and it’s caught on the camera of the mother a park bench away that’s recording her child … that’s not an illegal recording and she has the copyright on said recording. You have no legal right to ask the mother to delete the recording or delete your audio from the recording, even in a two party consent space because you have no right to privacy in a public setting like that.

    Similarly, when you post on Lemmy … it’s kind of good faith that if you delete something it actually gets deleted from the platform across all instances and that it’s not just visibility deleted but deleted from the databases under the hood.

    You do “own your content” but it’s pretty meaningless ownership.


  • Yeah but there is a FOSS nature about it. At least ANYONE can do whatever they want with the comments and posts I make public instead of just whichever company pays reddit for API access.

    I mean… True; it’s just I wouldn’t characterize Lemmy as superior on privacy. Ideally we’d figure out a way to fix that, but I’m not sure we can really.

    And reddit has some legal jargon about co-owning the copyright to whatever you post over there but lemmy doesn’t so you technically have more protection here to your own intellectual property.

    This I’m not so sure about. You aren’t handing over ownership rights when you sign up for most (any?) instance, but your ownership right is effectively null and void.

    IANAL but arguably in a US court (at least) since Lemmy is effectively a true public place, you effectively lose the right to tell other people what they can do with your interactions.

    And privacy is a whole different can of worms as I don’t think ruud is harvesting telemetry to sell to advertisers and whatnot.

    That part is arguably true. It is harder to tie this data back to a particular user for the purposes of selling to advertisers.









  • There is more value in understanding how to extend and customize your editor than in searching for a new one. Use whatever your workplace provides the best support for, and then customize it from there.

    I think there’s something to be said for shaking up your environment periodically as well and trying new things. Sure, there’s a week where you edit at a snails pace, followed by a month where you edit a bit slower than normal, but different tools really do have different pros and cons.

    For the code bases I’ve worked in, this evolved from necessity as the code files were so large many editors were struggling, the rules for the style so custom that editors can’t be properly configured to match, or the editor performance in general was questionable.

    I went through a journey of sorts from IDEs to Electron based editors to Emacs and currently am working with Kakoune (and I’ve passed over a bunch of other editors like Sublime, Helix, and Zed that couldn’t meet my requirements or didn’t match my sensibilities – even though a thing or two here or there really was excellent). Pretty much every change has been the result of the editor pain points that couldn’t be addressed without actually working on the editor itself.


  • I’ve recently taken to kakoune which was one of the inspirations for Helix.

    It’s not as fancy (in terms of built-in features) out of the box, but it’s very performant, integrates with tmux well, and for the C++ and Python I’m writing I haven’t felt the need for much beyond token based word completion and grep.

    The client server model it uses has really let me improve my tmux skills because I’m working inside of it more and using it for editor splits.

    I don’t know if Helix does this, but I’ve also come to love the pipe operator (where you just pipe a selection into some external program and the selection gets replaced with the output, so you can use the e.g. the sort command to sort text). You can also pretty easily add in custom extensions via command line programs.