• 20 Posts
  • 1.73K Comments
Joined 5 years ago
cake
Cake day: May 31st, 2020

help-circle
  • Ephera@lemmy.mltoProgrammer Humor@lemmy.mlAlways happens
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    2 days ago

    I’ve been trying to basically build a library that helps you put together a distribution archive.
    And my initial plan for the API looked something like this:

    Distribution::new("my-program")
        .dir("assets")
        .file("favicon.png", |path| build_favicon(path));  // "|path| ..." is a lambda function that gets the target path passed in
    

    So, it would allow you to define the file structure, and for the parts that actually need to be built, you’d provide a lambda function, which it would automatically run or not, depending on whether the inputs changed.

    Right, inputs, what are those? I kind of need my user to tell me. So, I decided to implement the caching as a separate API, which you would call on your own when you get called by the lambda function.

    Then I realized, I kind of don’t need the lambda function then. I could just construct file paths and then my user calls their build_favicon(...) function or similar on their own.

    There is just one crucial problem with that. This is what the path API in the stdlib looks like:

    PathBuf::new("my-program")
        .join("assets")
        .join("favicon.png");
    

    I might not have built anything, really. 🫠





  • Ephera@lemmy.mltolinuxmemes@lemmy.worldFish rules
    link
    fedilink
    English
    arrow-up
    4
    ·
    8 days ago

    Fish is not the worst in this regard, because:

    • The defaults are pretty good, so you don’t typically need a config file for it to be usable.
    • As of version 4.0, Fish is (experimentally) available as a single executable for download from their GitHub page. So, even on hosts where you can’t install anything, you may still be able to copy that executable file onto there and use it.

    But there may still be situations where it’s annoying, like if you’re working in a container, then you likely don’t want to mount your fish executable every time.

    But I also have to say I don’t find it too big of a deal.
    I still use Bash for scripting (just throw a #!/bin/sh or #!/bin/bash at the top of your script, like you should anyways), and then for interactive use, not that much of the shell syntax comes into play anyways.
    And if I ever do need to copy a complex Bash command into an interactive shell, I can just run bash, then run the command in there and then exit back out.




  • You technically didn’t ask for them, but presumably this goes hand-in-hand with reduce and reuse as first steps, which would have perhaps a more visible impact.

    Reduce means to cut back on the amount of products we produce in the first place, particularly also the trash being used for packaging.
    This would require:

    • More craftsmanship. Instead of buying a new jeans when your pants have a hole, you’d sew them.
    • More robust, repairable products. Don’t need to throw away the whole phone due to a broken screen when it doesn’t break in the first place or if you can get the screen replaced.
    • More sharing. Not every household needs their own car or toolbox or whatever, if you can share them with your neighbors.
    • There would be more shops that sell products unpackaged, where you bring your own containers to fill.

    Reuse means to sell products in glass jars, metal boxes or similar, which can be washed out and filled anew.
    This would require:

    • Some container-deposit system, so that you can bring your emptied glass jars etc. back to the shops and the shop sends it back to the producer.
    • In that vein, there would need to be a tax on non-reusable packaging to finance the recycling or safe deposition of it.
    • Some products would probably be sold in larger quantities or not anymore, because they just aren’t sustainable, if you make them pay their environmental costs.

    As for recycling, i.e. breaking the thing down and creating a new thing, it’s unlikely that we would ever reach 100% with it alone, at the very least because it’s more effort than reduce and reuse.
    But to improve our rates, there is a whole load of products currently being sold in plastic, which could be sold in paper or wood, if glass jars or metal boxes don’t work there.

    In a hypothetical world, where we could have 100% effective recycling without giving a toss about reduce and reuse, then I guess, we’d have a garbage disposal system which funnels right back into a massive 3D printer.


  • Eh, as much as there’s obviously folks who use certain distros for the fun of it, the vast majority of distros get created to cover a specific use-case. If you have that use-case, then deploying the respective distro brings you so much closer to your target setup than the easy installation of a noob distro could save you time.

    I also have to say, many stereotypical noob distros make extremely conservative choices, which makes them harder or scarier to use in various ways, like for example not having filesystem rollback. I cannot imagine going back to that, specifically because I have shit to do.







  • Probably the very same thing that the post talks about, which is extracting the first word of a line of text.

    The output of md5sum looks like this:

    > md5sum test.txt
    a3cca2b2aa1e3b5b3b5aad99a8529074 test.txt
    

    So, it lists the checksum and then the file name, but you wanted just the checksum.


  • It’s a Linux command-line program (awk). It’s pre-installed practically everywhere, it’s very powerful for string processing, but it also uses a fairly complex syntax.

    As a result, not many people know how to really make use of it, but awk '{print $1}' is something you encounter fairly quickly when you need to get the first word in each line.



  • In that vein, I guess, “The Sound of Silence” by Simon and Garfunkel also deserves a mention, even if it’s up for interpretation how depressing the lyrics by themselves are.

    But the first line in the song is “Hello darkness, my old friend / I’ve come to talk with you again.” and there is a cover version by the metal band Disturbed, which has no shame to really lean into that sort of vibe.

    And yeah, after having heard the Disturbed version, listening to the original certainly feels like there is a massive disconnect between how sad the song perhaps should be and how upbeat the original is.