• 0 Posts
  • 42 Comments
Joined 6 months ago
cake
Cake day: December 16th, 2024

help-circle
  • Yeah, none of that with bat:

    λ bat $(type -P bat)
    ───────┬──────────────────────────────────────────────────────────────────────────
           │ File: /usr/bin/bat   <BINARY>
    ───────┴──────────────────────────────────────────────────────────────────────────
    λ bat < $(type -P bat)
    ───────┬──────────────────────────────────────────────────────────────────────────
           │ STDIN   <BINARY>
    ───────┴──────────────────────────────────────────────────────────────────────────
    λ
    











  • Leaking isn’t really the issue, though I suppose Rust helps with that as well. Its memory sales pitch is more about memory safety, which is not reading or writing the wrong parts of memory. Doing that can have all sorts of effects, where the best you can hope for is a crash, but it often results in arbitrary execution vulnerabilities. Memory _un_safety is pretty rare and most prominent in languages like C, C++ and Zig.

    Rust also has more information contained in it, which means resulting programs can actually be faster than C, as the optimizer in the compiler is better informed.





  • How do you know a post was written by a systemd hater? Easy, they’ll spell it with a big D for some reason. It reminds me of how Norwegian rabid anti-cyclists are unable to spell “cyclist” for some reason.

    Claiming you don’t want to restart an old debate and then trying to restart it anyway is pretty funny.

    You might also want to keep in mind that you can’t really force an init system on Linux distros. Systemd became the norm through being preferred, as in, the people using and maintaining it think it’s good. At this point you might as well be ranting about how “LinuX is evil somehow” and we should all be using GNU HURD or Minix or something.

    Also: Haven’t thought about suckless in well over a decade, maybe closer to two? I guess way back in the day I was kinda intrigued by their ideas and used some of their products; these days I’d rather see them as something between an art shop and people who are playing a somewhat unusual game with themselves, but not particularly relevant to mainstream software engineering.


  • It’s ultimately up to oneself to decide these things for oneself, but there is literature on the topic. Part of it you can just frame like the stories themselves: Is it worthwhile to read or watch a story unfold, rather than just read a summary? Is there any point to anything that ends? You know a good meal with your loved ones is going to end before you sit down—but you still choose the meal over going hungry and alone. Because the experience has value even if it ends. Some experiences are even valuable because they only existed a brief moment in time.

    There are, ultimately, some stories that are so mired in despair and suffering that anyone would close the book early, but most of the stories are kind of trudging along, with their own motivations, hopes, fears and joys.

    To quote another work on the topic: One must imagine Sisyphus happy.




  • Yeah, another way to do it is

    #!/bin/bash
    set -euo pipefail
    
    if [[ $# -lt 1 ]]
    then
      echo "Usage: $0 argument1" >&2
      exit 1
    fi
    

    i.e. just count arguments. Related, fish has kind of the orthogonal situation here, where you can name arguments in a better way, but there’s no set -u

    function foo --argument-names bar
      ...
    end
    

    in the end my conclusion is that argument handling in shells is generally bad. Add in historic workarounds like if [ "x" = "x$1" ] and it’s clear shells have always been Shortcut City


    Side note: One point I have to award to Perl for using eq/lt/gt/etc for string comparisons and ==/</> for numeric comparisons. In shells it’s reversed for some reason? The absolute state of things when I can point to Perl as an example of something that did it better