I take my shitposts very seriously.

  • 4 Posts
  • 316 Comments
Joined 2 years ago
cake
Cake day: June 24th, 2023

help-circle






  • I finally got my ISP to enable bridge mode on my modem.

    I also learned that I didn’t lose port forwarding and related services because I had been moved behind CGNAT or transitioned to IPv6 – they simply no longer offer port forwarding to residential customers. Ruminate on the implications of that statement so I’m not the only one with blood pressure in the high hundreds.


  • Even in the open source community, the libre-ness of a product is just one of many factors. The fitness for a purpose, the initial difficulty of the setup, the continuous difficulty of operation and maintenance, the pace of development (if applicable), the professional or community support structure, the projected longevity of the product or service, and the general insanity of the people involved are all important factors that can, and often do outweigh the importance of open software.



  • I think I see where your confusion comes from. Either that or you are writing programs with willful and reckless disregard to the importance of standards.

    A process (or program) has multiple outputs. The return code is a one byte value that is set by the process when it ends, and often checked by the parent process (interactive shell, script, program) to make decisions regarding the flow of control. This value is severely restricted in its usefulness, to “provide data”. The type (unsigned byte) limits the range and precision, and you can’t write to it asynchronously or before you’re ready to gracefully end the process. The name is deceptive: this is not the same kind of “return” as the return instruction in programming languages. It simply describes the way a process ended, nothing more. It should never contain meaningful data, and always adhere to the POSIX conventions.

    Why? Because everybody does. More than that, everybody writes programs that expect a return code of zero to mean success, and a return code other than zero to mean failure. It was decided before I was even born. It’s an implicit agreement that we adhere to (except Powershell because they’re special). Deviation from this will only lead to compatibility issues and confusion.

    If you want to convey meaningful data, you should use an output stream. The POSIX standard states that programs should communicate using strings, and that the standard input and output streams should be used for this unless other methods are needed. If your program produces meaningful data and you want to convey it to the parent process or another program, you have to write it to stdout, and the other program has to accept it via stdin. This exchange is facilitated by the shell through the pipe and redirection operators. It frees up the return code to meaningfully indicate the exit state of the program without mixing it up with the data produced by it, and once again, it’s what everybody does, and what everybody expects.


  • To be pedantic: there is no such thing as a boolean value. It’s all just bytes and larger numbers behind an abstraction that allows a higher-level programming language to implement Boolean algebra by interpreting numbers a certain way. One such abstraction is the POSIX convention of treating a return code of zero as success and everything else as a failure. This consequently defines how Boolean algebra is implemented in POSIX-compliant shells:

    • The if statement tests the return code of the command specified in the header, then executes the then branch if the return code is zero, the else branch otherwise.
    • The while loop similarly tests the command in the head and executes the body if its return code is zero.
    • The boolean && and || operators treat zero return values as true and nonzero return values as false. Go try it out.
    • Even the true and false commands are just programs that immediately return 0 and 1 respectively.

    If you start treating nonzero return codes like a success value with meaning, the only thing you’ll achieve is that your scripts won’t be compatible with the shell. stdout exists. Use it.



  • I’ve never used Linkwarden, but the /data folder is often used by Docker containers to store the application’s data, so it’s likely an internal path. You’ll have to create a volume that exposes the internal /data path to the host filesystem, then whatever is written into that directory will be made available to both the container and the host system. Any file or directory in the container can be exposed this way.

    I usually put my data volumes in /srv (where my large RAID array is mounted) and config volumes in /config, into a subdirectory named after the service, and with the minimal necessary privileges to run the container and the service. You could, for example, create volumes like this:

    /srv/linkwarden/postgres_data:/var/lib/postgresql/data
    /srv/linkwarden/linkwarden_data:/data/data
    /srv/linkwarden/meili_data:/meili_data
    

    The volume path (left side of the colon) can be anything. The right side is where the services expect their files to appear inside the container.



  • rtxn@lemmy.world
    shield
    Mtolinuxmemes@lemmy.worldPriorities
    link
    fedilink
    arrow-up
    82
    arrow-down
    40
    ·
    edit-2
    13 days ago

    Please observe rule 3 point 3:

    No porn, no politics, no trolling or ragebaiting.

    It goes both ways. The situation is still developing, whatever information you have might become obsolete an hour from now. If you need to air your feelings, this isn’t the right place for it. It’s also worth keeping in mind that the interaction that led to this controversy was nothing more than an already opinionated post and a reply from a Framework employee who has no say in who gets sponsored. Even the person who made the original post decided to “let it rest”.

    Be intelligent, do not be led into a smear campaign on somebody’s leash.




  • I don’t know which label is the most accurate, but he supports Putin’s war, which lands him in the “shitbag” category. Being technically not fascist does not negate supporting the military invasion of a sovereign country, the ethnic cleansing of its people, and the rape, murder, and torture committed by the invaders.