Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)EP
Posts
27
Comments
2,561
Joined
5 yr. ago

  • Yeah, these become a lot less relevant with routine.

    • Avoiding the main-thread panicking is mostly just a matter of not using .unwrap() and .expect().
    • String vs. &str can mostly be solved by generally using owned datatypes (String) for storing in structs and using references (&str) for passing into function parameters. It does still happen that you forget the & at times, but that's then trivial to solve (by just adding the &).
    • "temporary value dropped while borrowed" can generally be avoided by not passing references outside of your scope/function. You want to pass the owned value outside. Clone, if you have to.
    • "missing lifetime specifier" is also largely solved by not storing references in structs.
  • The thing with OOP, particularly how it's used in GCed languages, is that it's all about handing references out to wherever and then dealing with the complexity of not knowing who has access to your fields via getters & setters, or by cloning memory whenever it's modified in asynchronous code.

    Rust has quite the opposite mindset. It's all about tracking where references go. It pushes your code to be very tree-shaped, i.e. references typically¹ only exist between a function and the functions it calls underneath. This is what allows asynchronous code to be safe in Rust, and I would also argue that the tree shape makes code easier to understand, too.

    But yeah, some of the patterns you might know from OOP will not work in Rust for that reason. You will likely need to get into a different mindset over time.

    Also just in case: We are talking OOP in the sense of the paradigm, i.e. object-oriented.
    Just using objects, i.e. data with associated functions/methods, that works completely normal in Rust.

    ¹) If you genuinely need references that reach outside the tree shape, which is mostly going to be the case, if you work with multiple threads, then you can do so by wrapping your data structures in Arc<Mutex<_>> or similar. But yeah, when learning, you should try to solve your problems without these. Most programs don't need them.

  • What the heck, I thought you were saying you don't want porn games. Flipping the letters like that is a common way of censoring. I was already somewhat confused, since I'm not sure, I've ever seen a porn puzzle game.

  • I was also surprised how well it works, but you genuinely just sploosh water with a mild bit of pressure at it and it comes off.

    I've been using a hand-operated travel bidet, which is basically just a squeeze bottle with a nozzle, and that still gets me perfectly clean. Definitely much cleaner than with toilet paper.

  • Perhaps worth pointing out that audio volume in general is a mess. The only meaningful number is an audio volume of 0. All the others are made up.

    You can measure the dB, but only for specific pieces of hardware. And in the end, it's all a matter of perception anyways. Your bass might be thumping at objectively a high number of dB, but the entire audio track still sounds quiet to some listeners, because they listen:

    • on a phone speaker.
    • with a bunch of background noise.
    • with bad hearing.
  • Yeah, you understood my comment entirely the wrong way around. When I say "dotfiles", I mean the non-Nix way of managing application configurations. Nix Home-Manager happens to write to these dotfiles, but that means I don't have to deal with the dotfiles myself.

  • I feel like setting up a new machine is just the easiest to explain.

    Personally, I find dotfiles messy, as you often just want to change one or two settings, but you always carry along the whole file with all kinds of irrelevant other settings. This also makes it impractical to diff two versions of those dotfiles, especially when programs write semi-permanent settings into there.

    I guess, your mileage will vary depending on what programs or desktop environment you use.
    For example, I love KDE, but they really don't do a good job keeping the config files clean. Nix Plasma-Manager generally fixes that, and for example allows defining the contents of the panel in a readable form.

  • Personally, the stepping stone I needed to know about is Nix Home-Manager, which basically allows you to manage your dotfiles independent of the distro. From what I understand, if I do switch to NixOS, I'll continue using this code with just some minor tweaks.

    But yeah, I agree with the verdict in the post. I like it a lot, but I would not have made it past the initial learning curve, if I didn't happen to be a software engineer. Sysadmins will probably be able to figure out how to put it to use, too. But it's just not for non-technical Linux users.

  • Proper ants only have 6 legs, though. But yeah, these spiders-turned-to-ants would have 8 legs.

    Well, and crabs technically have 10 legs, with their foremost pair typically equipped with pincers. 🙃

  • Mice can often find ways you wouldn't believe, but they still have to adhere to the laws of physics, so you might simply not have suitable holes in your apartment for them to enter. But yeah, also quite possible that they can smell the cat and don't want to enter the lion's den.

  • OpenOffice has seen essentially no development since 2011, when the trademark got transferred to Oracle after they bought Sun Microsystems.

    The project got forked into LibreOffice to dodge the trademark issue, but it's the same devs, practically the same project, but now under a non-profit organization. Well, and with 14 more years of development.

    So, use LibreOffice instead of OpenOffice. It will most likely come pre-installed on whichever Linux distro you go with. But you can also try it out on Windows beforehand, if you have concerns.

  • Apparently the screenshot is to be read as Catturd proudly proclaiming that democrats weren't even briefed, so they could not have leaked anything.
    But when Trump said a few days later that democrats leaked information, Catturd still immediately accepted that as truth.