• 0 Posts
  • 45 Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle
  • A problem that only affects newbies huh?

    Let’s say that you are writing code intended to be deployed headless in the field, and it should not be allowed to exit in an uncontrolled fashion because there are communications that need to happen with hardware to safely shut them down. You’re making a autonomous robot or something.

    Using python for this task isn’t too out of left field, because one of the major languages of ROS is python, and it’s the most common one.

    Which of the following python standard library functions can throw, and what do they throw?

    bytes, hasattr, len, super, zip









  • I’m not going to weigh in on the specifics of Flatpak vs AppImage, because I don’t know enough about the particulars.

    However, I think the “user choice” argument is often deployed in situations where it probably shouldn’t be.

    For instance, in this case, it’s not the user’s choice at all, but a developer’s choice, as a normal user would not be packaging their own software. They would be merely downloading one of a number of options of precompiled packages. And this is the thrust of the argument. If we take the GitHub rant at face value, some developers seem to be distributing software using AppImage, to the exclusion of other options. And then listing ways in which this is problematic.

    I, for one, would be rather annoyed if my only option were either AppImage or Flatpak, as I typically prefer use software packaged for my package manager. That is user choice, give me the option to package it myself; hopefully it’s already been done for me.

    There are some good things to be said about trust and verification, and I’m generally receptive to those arguments way more than “user choice.”






  • Because the nix package manager places all system packages under /nix/store/uniquehash-packagename-version/

    Where the unique hash is obtained via a Merkel tree of all the inputs. So in particular, binaries and libraries exist underneath those directories, not in the places you would expect from FHS.

    In order to make the system actually work, environment variables are set up and executables are patched to refer to specific paths within the Nix Store.



  • As mentioned in the article, this concerns release mode, which already does not have symbols by default for user code. It does have symbols for the standard library code, however, due to how the binaries for the standard library are shipped (i.e. with symbols only). This change simply also removes standard library symbols.

    If you need symbols, you can use default debugging build, or if you need both compiler optimizations and debugging symbols you can create a custom profile that inherets from release with debug = true. The second you already need to do to get full debugging symbols right now, so this isn’t really much of a change from a workflow standpoint.