Skip Navigation
Dumb question: how do I know if an open source project is trustworthy?
  • @Kecessa @grue knowing that the source will be published discourages bad actors from putting crap into the program in the first place.

    And if they do it anyway, other people can come along and repackage it without the bad bits, like vscodium.

  • Fix Incoming! Empty S3 buckets won't be able to make your AWS bill explode
  • @errer @pro_grammer

    I believe that the trick is not to show the developers the bill.

    Let the developers all tell each other "it's cheap because you don't have to buy the servers; you only pay for what you use!"

    Only managers see the real price.

  • If Inheritance is so bad, why does everyone use it?
  • @okamiueru @balder1993

    It's an overloaded term:

    "Dependency inversion" is a language-agnostic technique for producing testable, loosely-coupled software.

    "Dependency injection" just means dependencies should be passed in through the constructor, instead of being magically new()'d whereever.

    "DI frameworks" are Satan's farts. Classpath-scanning nonsense that turns compile-time errors into runtime errors. Not only is your Ctr still coupled to your Svc, but both are now coupled to Spring.

  • If Inheritance is so bad, why does everyone use it?
  • @onlinepersona

    An enum is a sum type because the number of inhabitants of the enum is the sum of the inhabitants of its parts.

    A product type's number of inhabitants is the product of its parts' inhabitants. So a struct would fit that definition, or a pair, or a tuple.

    Looking at the pic on your Cartesian product link:
    if A is an enum {x,y,z} and B is an enum {1,2,3}, then a struct AxB has 9 possible inhabitants.

  • If Inheritance is so bad, why does everyone use it?
  • @onlinepersona @armchair_progamer

    A type has a number of 'inhabitants'. 'Sum' indeed corresponds to adding the possible inhabitants together.

    A Boolean has two inhabitants - true and false. A byte has 256 inhabitants. A BoolOrByte type has 258 inhabitants.

    If you have BoolByte pair, that's a product type - 512 possible inhabitants.

    It may make no fucking sense depending on your exposure to Java, where Void (literally 'empty') has an inhabitant, and Boolean has 5.

  • Type inference was a mistake
  • @Windex007
    > You as the writer, you don’t know either?
    Not until the compiler tells me.

    > Or is the argument that nobody but the compiler and god need know? That having an awareness of the types has no value?
    No, I want to know, because knowing the types has value. If the compiler has inference, it can tell me, if not, it can't.

  • Type inference was a mistake
  • @Windex007 @snowe

    Yes. Type-inference typically *knows better than me* what the types should be.

    I frequently ask the compiler what code I need to write next by leaving a gap in my implementation and letting the compiler spit out the type of the missing section.

  • Unification-free ("keyword") type checking
  • @armchair_progamer no mention of (mutual) recursion? It's been a while since I worked on my type checker, but I thought that you needed to separate inference into unification variable generation and constraint solving so that you don't fall into an infinite loop (each function asking the other functions type - forever).

  • InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)MR
    John @mastodon.social
    Posts 0
    Comments 17