• 0 Posts
  • 15 Comments
Joined 2 years ago
cake
Cake day: June 29th, 2023

help-circle
  • You can store the Merkle trees inside of a SQLite database as extra columns attached to the data.

    That way you get the benefits of a high-level query language and a robust storage layer as well as the cryptographic verification.

    In fact, there is a version control system called Fossil which does exactly that:

    https://fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki

    The baseline data structures for Fossil and Git are the same, modulo formatting details. Both systems manage adirected acyclic graph (DAG) of Merkle tree structured check-in objects. Check-ins are identified by a cryptographic hash of the check-in contents, and each check-in refers to its parent via the parent’s hash.

    The difference is that Git stores its objects as individual files in the .git folder or compressed into bespoke key/value pack-files, whereas Fossil stores its objects in a SQLite database file which provides ACID transactions and a high-level query language. This difference is more than an implementation detail. It has important practical consequences.

    […]

    The SQL query capabilities of Fossil make it easier to track the changes for one particular file within a project. For example, you can easily find the complete edit history of this one document, or even the same history color-coded by committer, Both questions are simple SQL query in Fossil, with procedural code only being used to format the result for display. The same result could be obtained from Git, but because the data is in a key/value store, much more procedural code has to be written to walk the data and compute the result. And since that is a lot more work, the question is seldom asked.





  • Small correction to an otherwise great explanation: SSNs are not recycled after death.

    **Q20:  *Are Social Security numbers reused after a person dies?*****A:  No. We do not reassign a Social Security number (SSN) after the number holder’s death. Even though we have issued over 453 million SSNs so far, and we assign about 5 and one-half million new numbers a year, the current numbering system will provide us with enough new numbers for several generations into the future with no changes in the numbering system.

    https://www.ssa.gov/history/hfaq.html


  • For the first part, I was like, yeah, that’s pretty much how all C++ GUIs work: a markup file describes the structure, a source file controls the behavior, and a special compiler generates more C++ code based on the markup file to act as glue.

    That’s all pretty standard, and it’s annoying, but I didn’t really get why they were making such a big deal out of it.

    Missing documentation is also annoying but not uncommon for internal widgets.

    What really elevates this from simply annoying to transcendentally bad, is the lack of error messages, the undocumented requirements that resource IDs be sequential, and the mandatory IDE plugin. That’s all unforgivable.