• 2 Posts
  • 376 Comments
Joined 11 months ago
cake
Cake day: July 31st, 2023

help-circle





  • To offer a differing opinion, why is null helpful at all?

    If you have data that may be empty, it’s better to explicitly represent that possibility with an Optional<T> generic type. This makes the API more clear, and if implicit null isn’t allowed by the language, prevents someone from passing null where a value is expected.

    Or if it’s uninitialized, the data can be stored as Partial<T>, where all the fields are Optional<U>. If the type system was nominal, it would ensure that the uninitialized or partially-initialized type can’t be accidentally used where T is expected since Partial<T> != T. When the object is finally ready, have a function to convert it from Partial<T> into T.




  • pivot_root@lemmy.worldtoLinux@lemmy.mlSSH as a sudo replacement
    link
    fedilink
    arrow-up
    5
    arrow-down
    2
    ·
    7 days ago

    The problem is that they’re trying to frame it as a better replacement for sudo when it’s really not.

    In some respects, it’s safer by not using a setuid binary. In other respects, it massively increases the surface area by relying on the correctness of three separate daemons: systemd, dbus, and polkitd. If any one of those components are misconfigured, you risk an unauthorized user gaining root privileges.

    With sudo, the main concern is the sudo process being exploited through memory safety bugs since it runs at root automatically.

    Don’t get me wrong, sudo has a lot of stupid decisions and problems. There’s a ton of code in sudo for features that almost nobody uses, and there’s bound to be bugs in there somewhere. It needs to be replaced with something simpler, but run0 is not that.