• GissaMittJobb@lemmy.ml
        link
        fedilink
        arrow-up
        17
        ·
        5 days ago

        A limitation of testing is that you can only write tests for cases that you can think of, and cases you can think of ways to write tests for.

        It’s still valuable despite this limitation, of course.

        • FizzyOrange@programming.dev
          link
          fedilink
          arrow-up
          5
          ·
          5 days ago

          That’s not entirely true, e.g. you can do fuzz testing or constrained random testing. Maybe you aren’t including those in “testing”?

          • GissaMittJobb@lemmy.ml
            link
            fedilink
            arrow-up
            5
            ·
            5 days ago

            I was mostly thinking about hand-written tests and manual test procedures, but yeah, fuzzing can help you catch issues as well and you don’t necessarily consciously know about the test cases you put into the system in that case.

            Then again, you have to design the fuzzing input consciously so I guess that’s kind of a “what you can think about”-limitation.

            Good point regardless, thanks

      • MagicShel@lemmy.zip
        link
        fedilink
        English
        arrow-up
        10
        arrow-down
        5
        ·
        5 days ago

        You can write shit tests. Finding new bugs doesn’t surprise me. Putting that much effort in does, but 600:1? That’s some serious red flags there. There are only so many variables in a single line of code. How many unhappy paths can there be for a single line?

        • Kogasa@programming.dev
          link
          fedilink
          arrow-up
          11
          ·
          5 days ago

          SQLite is one of the best tested codebases in existence. Having only so many variables per line means nothing

  • atzanteol
    link
    fedilink
    English
    arrow-up
    18
    ·
    edit-2
    5 days ago

    I had no idea the maintainers of sqlite were religious fanatics.

    • JackbyDev@programming.dev
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 days ago

      Yeah, the code of ethics thing shocked me as well, but it’s really important to remember that it’s not something they expect users to follow, it’s something the devs are saying they’ll follow. So it’s not too bad in my opinion.

    • devfuuu@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      5 days ago

      As long as they don’t go on a holy crusade or forcefully evangelize the entire world by genocide I wouldn’t call them fanatics.

      • atzanteol
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 days ago

        That’s a pretty high bar for fanatic. This list definitely sparks of fanaticism to me and it was derived from rules for monks. We could squabble over where to draw the line for “fanatic” but either way they’re very religious.

        • First of all, love the Lord God with your whole heart, your whole soul, and your whole strength.
        • Deny oneself in order to follow Christ.
        • Chastise the body.
        • Prefer nothing more than the love of Christ.
        • Put your hope in God.
        • Attribute to God, and not to self, whatever good you see in yourself.
        • Recognize always that evil is your own doing, and to impute it to yourself.
        • Fear the Day of Judgment.
        • Be in dread of hell.
        • Desire eternal life with all the passion of the spirit.
        • Keep death daily before your eyes.
        • Know for certain that God sees you everywhere.
        • When wrongful thoughts come into your heart, dash them against Christ immediately.
        • Disclose wrongful thoughts to your spiritual mentor.
        • Devote yourself frequently to prayer.
        • Daily in your prayers, with tears and sighs, confess your past sins to God, and amend them for the
        • Fulfill not the desires of the flesh; hate your own will.
        • Obey in all things the commands of those whom God has placed in authority over you even though they (which God forbid) should act otherwise, mindful of the Lord’s precept, “Do what they say, but not what they do.”
  • Jayjader@jlai.lu
    link
    fedilink
    arrow-up
    17
    ·
    5 days ago

    Why do we even need a server? Why can’t I pull this directly off the disk drive? That way if the computer is healthy enough, it can run our application at all, we don’t have dependencies that can fail and cause us to fail, and I looked around and there were no SQL database engines that would do that, and one of the guys I was working with says, “Richard, why don’t you just write one?” “Okay, I’ll give it a try.” I didn’t do that right away, but later on, it was a funding hiatus. This was back in 2000, and if I recall correctly, Newt Gingrich and Bill Clinton were having a fight of some sort, so all government contracts got shut down, so I was out of work for a few months, and I thought, “Well, I’ll just write that database engine now.”

    Gee, thanks Newt Gingrich and Bill Clinton?! Government shutdown leads to actual production of value for everyone instead of just making a better military vessel.

  • roadrunner_ex@lemmy.ca
    link
    fedilink
    English
    arrow-up
    24
    ·
    6 days ago

    I get it…I’ve never been the maintainer of a codebase that’s deployed on trillions of devices, and backwards compatibility is something to be taken seriously and responsibly when you’re that prolific. I do not begrudge SQLite or any large projects when they make decisions in service to that.

    However

    It always makes me feel oddly icky when known bugs (particularly of the footgun variety) become the new standard that the project intentionally upholds.

    • solrize@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      5 days ago

      It’s not on trillions of devices, just billions. But e.g. a typical android phone has 1000s of sqlite db’s for different purposes.

  • jbk@discuss.tchncs.de
    link
    fedilink
    arrow-up
    14
    ·
    5 days ago

    another one not mentioned there: sqlite is really tiny: (from https://sqlite.org/faq.html#q18 )

    The default configuration of SQLite only supports case-insensitive comparisons of ASCII characters. The reason for this is that doing full Unicode case-insensitive comparisons and case conversions requires tables and logic that would nearly double the size of the SQLite library.

  • I Cast Fist@programming.dev
    link
    fedilink
    arrow-up
    10
    ·
    5 days ago

    Their commitment to backwards compatibility, to the point of keeping a known bug that allows primary keys to be null, is both amazing and “wtf”.

    • FizzyOrange@programming.dev
      link
      fedilink
      arrow-up
      6
      ·
      5 days ago

      You can do backwards compatibility and make breaking changes to fix bugs. All you need is an opt-in “target version”. CMake and Android are good examples of this.

  • winterayars
    link
    fedilink
    arrow-up
    13
    ·
    6 days ago

    I’m glad to see i’ve been pronouncing it right all these years.

  • Troy@lemmy.ca
    link
    fedilink
    arrow-up
    4
    ·
    5 days ago

    This article is written as though it is targeting FOSS newbie or something – a weird mix of jargon and simple language designed to overawe someone.

    Their VCS is at least as interesting as SQLite :)

      • moonpiedumplings@programming.dev
        link
        fedilink
        arrow-up
        7
        ·
        edit-2
        5 days ago

        Well, I can’t read I guess.

        At least I linked to the code, since the article doesn’t seem to do that. The twitter thread it linked to probably does, but I can’t view the replies without logging in.