• 0 Posts
  • 15 Comments
Joined 1 year ago
cake
Cake day: July 31st, 2023

help-circle


  • paholg@lemm.eetoProgrammer Humor@programming.devExam Answer
    link
    fedilink
    English
    arrow-up
    21
    ·
    8 months ago

    Works even better in Ruby, as the code as given is valid, you just need to monkey patch length:

    #!/usr/bin/env ruby
    
    module DayLength
      def length
        if ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"].include? self
          "24 hours"
        else
          super
        end
      end
    end
    
    class String
      prepend DayLength
    end
    
    day = "Monday"
    
    x = day.length
    
    print(x)
    

  • paholg@lemm.eetoProgrammer Humor@programming.devExam Answer
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    8 months ago

    It could be Ruby; puts is more common, but there is a print. With some silly context, the answer could even be correct:

    #!/usr/bin/env ruby
    
    module DayLength
      def length
        if ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"].include? self
          "24 hours"
        else
          super
        end
      end
    end
    
    class String
      prepend DayLength
    end
    
    day = "Monday"
    
    x = day.length
    
    print(x)
    









  • I prefer to come at it from an immediate utility level, and I think a good place to start with that is home-manager.

    You can install nix and home-manager on any Linux distribution or MacOs. It lets you, in a single place, specify what packages you want, services you want to run at the user level, and what config files you want in your home directory. For a lot of things, home-manager has built-in config options, but you can also specify arbitrary config files.

    Then, you can take this one file to a new computer, and with no other config, have everything set-up the way you like it.

    NixOs allows you to do this for your whole system.

    It also has a bunch of other benefits, which tie-in to the jargon you bring up. But if you want to check it out, I’d worry about that later.




  • I personally don’t think they do, but an argument can certainly be made. Rust proc macros can run arbitrary code at compile time. Build scripts can also do this.

    This means, adding a dependency in Cargo.toml is often enough for that dependency to run arbitrary code (as rust-analyzer will likely immediately compile it).

    In practice, I don’t think this is much worse than a dependency being able to run arbitrary code at runtime, but some people clearly do.