• 0 Posts
  • 264 Comments
Joined 2 years ago
cake
Cake day: August 6th, 2023

help-circle
  • Make a script. I’d use xonsh or python with sh.py.

    • create a dict for remote to local filename map
    • walk your local collection
      • for each file, determine what the correct remote name (including a valid extension) would be, and add the pair to the dict, with remote filenames as keys, local filenames as values
    • make a set like local_munged_names from that dict’s keys
    • walk your remote tree, and store the filenames in a set like remote_names
    • names_to_upload = local_munged_names - remote_names
    • for each name in names to upload, look up the local filename from the remote to local filename map. Then, encode it if it needs encoding, and upload.

  • Yes, because

    In the first kind of language, the thought process is basically: I have the flow of execution, starting at the top of the file. If I want to make a library, I should build the things I want to build, then get out of the way.

    Note the “I have the flow of execution”, and the “if I want to build a library”.

    If you just want to build an executable, do as you wish, you already have the flow of execution.

    If you want to build a library, make the relevant classes and functions and get out of the way (i.e., no IO, no long-running tasks).

    If you want to combine them, use the main name check - or, make a package and do entry points that way. Either way works, because both can fulfill the goal of staying out of the way of those importing this as a library.






  • All code needs to have an entry point.

    For Python and some other languages, this is the start of the file.

    For other languages, this is a special function name reserved for this purpose - generally, “main”.

    In the first kind of language, the thought process is basically: I have the flow of execution, starting at the top of the file. If I want to make a library, I should build the things I want to build, then get out of the way.

    In the other kind of language, the thought process is basically: I am building a library. If I want to make an executable, I should create an entry point they the execution starts at.

    The debate is honestly pretty dumb.



  • Yeah, this is it.

    What’s hacky about an introspective language providing environment to all of the executing code, so that the coder can make the decision about what to do?

    It would by hacky if Python decided “We’ll arbitrarily take functions named “main” and execute them for you, even though we already started execution at the top of the file.”

    For C, this is less so. The body of the file isn’t being executed, it’s being read and compiled. Without a function to act as a starting point, it doesn’t get executed.




  • The alignment of the language and the alignment of the coder must be similar on at least one metric, or the coder suffers a penalty to develop for each degree of difference from the language’s alignment. This is penalty stacks for each phase of the project.

    So, let’s say that the developer is a lawful good Rust zealot Paladin, but she’s developing in Python, a language she’s moderately familiar with. Since Python is neutral/good, she suffers a -1 penalty for the first phase, -2 for the second, -3 for the third, etc. This is because Rust (the Paladin’s native language) is lawful, and Python is neutral (one degree of difference from lawful), so she operates at a slight disadvantage. However, they are both “good”, so there’s no further penalty.

    The same penalty would occur if using C, which is lawful neutral - but the axis of order and chaos matches, and there is one degree of difference on the axis of good and evil.

    However, if that same developer were to code in Javascript (chaotic neutral), it would be at a -3 (-6, -9…) disadvantage, due to 2 and 1 degree of difference in alignment, respectively.

    Malbolge (chaotic evil), however, would be a -4 (-8, -12) plus an inherent -2 for poor toolchain availability.

    …hope this helps. have fun out there!





  • I read and agree with the other comment here, but it’s mainly a kind of nonverbal communication. I linked our computers and gave my gf the ability to change my background whenever she wanted, wherever she was, and vice versa. it’s just a way of being close and all up in each other’s business when we can’t get all up in each other’s business.