• 0 Posts
  • 22 Comments
Joined 1 year ago
cake
Cake day: December 9th, 2024

help-circle
  • Yeah, that one’s always bothered me too. I think the difference in meaning from colloquial “implication” and logical “material implication” are also involved in the raven paradox.

    So the statement that “all ravens are black” can be taken as “if RAVEN then BLACK”. Is this statement true? If you see a black raven then trivially yes, if you see a white raven then trivially false (via counter example).

    However if you see a non-raven, it is evidence for the truth of the statement because it doesn’t go against it: not-ravens being black-or-not-black both reduce the universe of possible objects without proving not-black-ravens exist.

    Or something like that, I think it’s stupid too. Trinary logic can adopt a more sensible (IMHO) definition of implication that makes A being false always lead to the third value (usually defined as indeterminate or neither-true-nor-false).



  • That would be the symbol\operation called TRUE or TOP or “tautology” which is always true. They’re actually missing quite a few of the weirder ops, including implication and biconditional\iff\if-and-only-if. (Edit: Actually I think XNOR is also the biconditional. I guess pretend like I said “material implication” and “reverse implication”. Fricken booleans man!)






  • CodexArcanum@lemmy.dbzer0.comtolinuxmemes@lemmy.worldWhich git branch are you on?
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    7
    ·
    edit-2
    5 months ago

    For all the sudden word scholars here: there is no second word “master” that’s spelled, pronounced, and written exactly the same as the other one but is entirely unrelated to the concept of master\slave. All modern meanings of the word master derive from the same root: magister, meaning an authority or teacher.

    A “master recording” is the authority, the base copy from which all others are duplicated. They aren’t called “slave” copies, although the primary use of the terms in computing did originally use those 2 words. Also as someone else pointed out, you don’t even really make copies of git branches in the same way as audio so the term is misapplied.

    Main is also a bad name, unless you’re working on a solo project with only 1 main branch and some features. As soon as you start collaborating with other people, you should really have individual dev branches or “forks” (be honest, 90% of you aren’t rawdogging git straight from the CLI, there’s a forge website involved as hub) to work on, with an integration\testing “fork”\branch to combine work and a release branch for final code, with each discrete release tagged.

    No gods, no kings, no masters!






  • More realistic versions:

    Waterfall: the car is “finished” at the end, but replace the engine with a huge roaring fire. The Dev team continues to put the engine fire out and build the engine for 3x the original project duration.

    Agile: replace the cute scooter and bicycle with the partial car graphics from Waterfall, but mount a uniccyle seat and then a park bench on top of the partially built car.

    AI: the whole thing should always be on fire, and have several spies from different countries taking pictures of it constantly.




  • https://www.musixmatch.com/lyrics/Fercris-Hart-1/Boss-Made-a-Dollar-I-Made-a-Dime

    Boss made a dollar, I made a dime

    That was a rhyme from a simpler time

    Now boss makes a thousand and gives me a cent

    When I′m an employee who can’t pay my rent

    When the boss makes a million and us workers make jack

    That′s when I protest and take my life back

    Boss makes a dollar, I make a dime

    That’s why I shit on company time

    Boss makes a billion, my prospects are grim

    Next company party, I’m gonna eat him

    When the boss makes a million and us workers make jack

    That′s when we riot and take our lives back

    We make a penny, the boss makes fifteen

    Guess who′s in line for the guillotine

    Boss made a dollar, we made a dime

    Til’ we went to his mansion and burned him alive


  • I feel like its a mixed bag. Certainly there’s an infinitely higher chance of someone randomly noticing a backdoor in OSS than in closed source simply because any OSS project in use has someone looking at it. Many closed systems have dusty corners that haven’t had programmer eyes on them in years.

    But also, modern dev requires either more vigilance than most of us have to give or more trust than most of us would ideally be comfortable offering. Forget leftpad, I’ve had npm dependencies run a full python script to compile and build sub dependencies. Every time I run npm update, it could be mining a couple of bitcoins for all I know in addition to installing gigs and gigs of other people’s code.

    The whole industry had deep talks after leftpadgate about what needed to be done and ultimately, not much changed. NPM changed policy so that people couldn’t just dissapear their packages. But we didn’t come up with some better way.

    Pretty much every language has its own NPM now, the problem is more widespread than ever. With Rust, it can run arbitrary macros and rust code in the build files, it can embed C dependencies. I’m not saying it would be super easy to hide something in cargo, i haven’t tried so I don’t know, but i do think the build system is incredibly vulnerable to supply chain attacks. A dependency chain could easily pull in some backdoor native code, embed it deep into your app, and you might never realize it’s even there.