Earlier quoted context omitted.
Perhaps they were writing so much in Go that they set the '/' key to shortcut to '::'. ...but yeah, I am also curious.
What does :: mean in go?
Not sure what :: would be.
71–80 of 180 posts
How do you handle hash collision?
That said, hashes only get weaker over time. The chances of an md5 collision used to be astronomical, now they are not.
So it was important to us to have an escape hatch - a way to increase the strength of the hash we use over time.
That's why we built a format version into Noms from the beginning. Our design is predicated on the fact that within a given version of the format, there is a 1:1 correspondence between hashes and values. Every value has exactly one hash, and every hash encodes exactly one value.
In future versions of the format, we might change the hash function. In this situation, we'd need to import data from the old format to the new format, just like how you have to sometimes migrate traditional databases across versions.
At first glance, this reminds me a little bit of datomic - all data history is preserved/deduplicated, fork/decentralization features. Can you comment on how it compares?
How does it compare to:
- https://github.com/amark/gun - https://github.com/substack/wikidb
Earlier quoted context omitted.
See https://github.com/attic-labs/noms/blob/master/doc/spelling.... - In this case, we need to be able to address either a database and a dataset. The presence of a :: makes it unambiguous.
But isn't ` / ` more or less similar to ` :: `? The only difference is the choice of a delimiter to disambiguate between a database and a dataset. For me, the first scheme is much more familiar.
In our sample data (see https://github.com/attic-labs/noms/blob/master/doc/cli-tour.... for example) we actually have this exact path, and the database is "http://demo.noms.io/cli-tour" and the dataset is "sf-fire-inspections/raw". We need the "::".
Allowing "/" in a dataset name is very convenient (it's common in git branches). Allowing "/" in database names is essential for URLs.
Earlier quoted context omitted.
Right. A shocking amount of public data is distributed this way. Also, we routinely talk to developers who complain about the difficulty of consuming data snapshots from partners, parsing it, trying to understand how it has changed since last time, etc. With high value datasets, people frequently build an API to combat these problems. But it's hard to design a good API, and even if you succeed, it has to be secured,…
So if nom takes off would you see 'download a nom dataset by clicking here' or would it be 'use this hostname to sync the nom to your own computer' Or would it be a dsn sort of and you just instantiate a client and your on your way? Or, some combo?
``` Download" rel="nofollow">http://www.who.int/tb/country/data/download/en/::case-data/b... the Data ```
Hi all. I'm one of the creators of Noms. Happy to answer any questions!
Schema inference is very difficult to do correctly and safely, especially with small initial samples of instances (source: work on https://github.com/snowplow/schema-guru).
However, the inner-object conflict-resolution problem seems a lot harder to solve given that there's no obvious join-semilattice for arbitrary fields/data. Can you discuss what conflict-resolution strategies you're working on for auto-resolution and/or what metadata you intend to provide to the end-user in the event that you're going to punt resolution to them to handle?
Given this is supposed to be for collaborative workloads, the conflict-resolution issue seems to be a cornerstone. Git handles this by inserting sibling sections into the documents and forcing the end-user to manually deal with fixing problems, which is often fraught with pain and peril, and doesn't seem like a strategy that would work for something that's a database (as opposed to something that's a workflow).
Earlier quoted context omitted.
Right. A shocking amount of public data is distributed this way. Also, we routinely talk to developers who complain about the difficulty of consuming data snapshots from partners, parsing it, trying to understand how it has changed since last time, etc. With high value datasets, people frequently build an API to combat these problems. But it's hard to design a good API, and even if you succeed, it has to be secured,…
So if nom takes off would you see 'download a nom dataset by clicking here' or would it be 'use this hostname to sync the nom to your own computer' Or would it be a dsn sort of and you just instantiate a client and your on your way? Or, some combo?
For example, (1) our command line tools use URL-like paths which implies "use this hostname" (to copy-paste into terminal), (2) we have some in-browser visualisations like http://splore.noms.io/?db=http://demo.noms.io/cli-tour which implies more of a "click here" type UI.
Pretty impressive work but seems like reinventing wheels. Why wasn't it built upon existing tech? I think the docs should enumerate the most important differences and use cases for which it should be a better fit.
To play devil's advocate, Git "reinvented the wheel," but it was a much nicer wheel. Not saying this is to databases what Git was to versioning, but there's a reason to strive for that.
Earlier quoted context omitted.
But isn't ` / ` more or less similar to ` :: `? The only difference is the choice of a delimiter to disambiguate between a database and a dataset. For me, the first scheme is much more familiar.
Say we did just do / . What does the path " http://demo.noms.io/cli-tour/sf-fire-inspections/raw" refer to? Is the database " http://demo.noms.io" and the dataset "cli-tour/sf-fire-inspections/raw"? Is the database " http://demo.noms.io/cli-tour/sf-fire-inspections" and the dataset "raw"? In our sample data (see https://github.com/attic-labs/noms/blob/master/doc/cli-tour.... for example) we actually have this exact p…