Live data from Hacker News

Noms – A versioned, forkable, syncable database

github.com

91–100 of 107 posts

Re: Noms – A versioned, forkable, syncable database

#92

I really like this, I've always thought that git needed to support diff modes different from textline-based because even if this is fit for most programming languages what you really what is to see differences between ASTs (take into account those absurd change counts when just changing the indentation or imagine a normal diff of LISP source). Maybe there's some way of replacing git with noms to get there(even if it…

Git lets you define custom "merge drivers."

Re: Noms – A versioned, forkable, syncable database

#93

I've been wanting to use something like this. But... * It's a big jump from relational or noSQL DB's, so there aren't (m)any adapters that I can see for it for JPA, ActiveRecord, etc. * I'd really like to see a benchmark for each noms implementation compared to postgres, mysql, oracle, and mssql server, if there is a way to do apples-to-apples. * "noms" is unfortunately is really bad for SEO because noms is a common…

>It seems a little like a dolphin jumping into a pool of hungry sharks. It might be more evolved and more capable in some ways, but it's going to get its ass handed to it on speed and lack of features.

I'm inclined to agree for large, centralized databases, but I wonder if this would be a good fit for places where sqlite is used? This seems like it could be a good foundation for situations where you want to sync information without a central server, like between devices. An Access/Filemaker clone built on top of this would be cool, too.

Re: Noms – A versioned, forkable, syncable database

#94
post #44

Earlier quoted context omitted.

Incorrect.

Last time I checked it's close to 50/50, with Windows progressively losing share among devs: http://www.geekwire.com/2016/mac-overtakes-linux-as-develope... So my comment should be correct in a year or two, hopefully.

Nah, it's not going to happen. Especially because that "50/50" number isn't even close to being a true measurement.

The survey covered a whole ~40,000 people out of the ~11 million pro developers in the world. That's nothing.

The numbers also don't jive at all with the empirical evidence. Walk into any small, medium or large business IT shop that employs programmers and you'll find Windows more than any other OS. If they're running Linux it's in a VM on Windows.

Macs are still extremely rare for anyone outside of Mobile developers.

What do you think Enterprise devs use? Not Macs...

Re: Noms – A versioned, forkable, syncable database

#95
post #68

Earlier quoted context omitted.

26.2% + 21.7% = 47.9%. So based on that survey the statement that most devs don't use Windows anymore is incorrect. Also, that doesn't answer my other question. Other than better support for Unix command line tools, what makes OS X (or Linux) a better platform for devs than Windows 10?

> 26.2% + 21.7% = 47.9%. So based on that survey the statement that most devs don't use Windows anymore is incorrect. I said close to 50/50 so it's not false either, if you take in account the fact that there is probably some margin of error anyway. > Other than better support for Unix command line tools, what makes OS X (or Linux) a better platform for devs than Windows 10 Maybe it depends what kind of developer you…

Pffft. "probably some margin of error anyway" is a gross understatement. It was 47.9% of the 40k developers who responded. Not even a half percent of the entire software development community :)

Enterprise devs make up the largest segment of pro developers and Windows rules the enterprise.

Win 10 also has the Ubuntu command-line now. I've been using it since beta and it's glorious. Macs can't compete with this - they don't even ship with new GNU utils and you'll have to fight with Apple if you want them because updates will break your setup.

Meanwhile it takes 5 minutes to get a modern Unix command-line in Windows.

I'm glad to say that I'm quite certain that your hopes of a non-Windows world will never be realized.

Re: Noms – A versioned, forkable, syncable database

#96

Earlier quoted context omitted.

26.2% + 21.7% = 47.9%. So based on that survey the statement that most devs don't use Windows anymore is incorrect. Also, that doesn't answer my other question. Other than better support for Unix command line tools, what makes OS X (or Linux) a better platform for devs than Windows 10?

> Other than better support for Unix command line tools, what makes OS X (or Linux) a better platform for devs than Windows 10? Some that come to mind: Granular packaging systems with everything developer under the sun in them (including binary and source packages). Better support and easier install of a vast array of developer tools and languages (just one example: git). Much more automatable (eg not every install o…

> "Granular packaging systems with everything developer under the sun in them (including binary and source packages)."

Yes, that's true.

> "Better support and easier install of a vast array of developer tools and languages (just one example: git)."

This falls under Unix command line tools for me, but okay.

> "Much more automatable (eg not every install on windows can be automated. Many require GUI interaction)."

This is really just the same point as the package management one you already mentioned.

> "Containerizable."

Windows Server now has native support for Docker.

> "More powerful filesystems like layered filesystems or content addresses filesystems like ZFS."

Linux's support for ZFS isn't exactly a strong point. Perhaps you had OS X in mind? In any case NTFS is a fairly decent file system, I don't really see it as a weak point for Windows.

> "Cloud orchestration tools work better (puppet, chef, ansible)."

Automating Windows configuration is easily done through PowerShell. I know that Chef and Ansible both use PowerShell to get their Windows support. I'd suggest taking a look at Desired State Configuration if you're unfamiliar with how these tools utilise the existing infrastructure on Windows.

https://msdn.microsoft.com/en-us/powershell/dsc/overview

> "Tiling window managers to streamline screen work."

In my experience, tiling window managers are nice if you've got a keyboard-heavy workflow, but not that much more efficient when you switching around GUI apps. Windows has some basic tiling windows shortcuts built in, plus it now has virtual desktops built in and shortcuts to switch between them, so I don't feel like I'm missing out on much.

> "Much wider choice of code editing environments and code manipulation tools (Windows is much more centric around the offerings of Microsoft)."

Which code editing environments are you thinking of that you like that aren't also available on Windows? As for the MS tools, if you can show me a better IDE than VS on any platform then I'll be impressed.

> "Better interoperation with other tools and filesystems (Linux plays much nicer with windows than windows plays with linux)."

The upcoming Linux subsystem for Windows 10 should go a long way in addressing that.

> "Less bugs in the APIs and development systems themselves (a result of open source enabling bugfixing independent of a vendor)."

Hmm, I don't think you can back that up. Let's put it like this, I've tried Linux multiple times, but I always come back to Windows, and generally speaking that's because of bugs I've found in Linux or Linux software. I have far fewer problems with Windows. Can you share some of the problems you've had with Windows?

> "Better system debug and development tools (eg. strace/dtrace/ktrace)."

Sure, I'll admit these tools are probably better than the Windows equivalents.

> "Almost every dev tool included in the distributions (no need to go download some dodgy .exe of tucows or where ever)."

You don't need to get dodgy dev tools, there are plenty of useful dev tools from Microsoft and other well known software companies.

> "More example open source code to reference and work with makes coding similar ideas less error prone."

Are you familiar with MSDN? If you knew how easy Microsoft makes it to become a proficient Windows coder, you wouldn't be saying that.

To be fair to you, there's one advantage of Unix OSes I think you missed, and that better networking tools (such as firewall software).

Re: Noms – A versioned, forkable, syncable database

#97
post #70

Earlier quoted context omitted.

What about ACID? How far do you plan to divert from it?

More specifically, what isolation guarantee do you make? Are writes linearizable? What consistency guarantees do you claim? How well do you think you will do when reviewed by aphyr ( https://aphyr.com )?

You should understand that Noms is doing something quite a lot simpler than the systems that are usually reviewed on Aphyr.

Noms doesn't manage its own storage - it relies on an underlying key/value store that must provide strongly consistent reads for at least one key. In other words, we delegate most of the hard part to somebody else.

With that all said...

Currently our intent is that:

- Transactions that read and write from a single dataset have strong serializability

- Transactions that read from multiple datasets and write to a single dataset have snapshot isolation

- Transactions that write to multiple datasets aren't possible

In the future, we will probably allow additional configuration, such that, e.g., one could choose snapshot isolation within a dataset for additional concurrency, or strong serializability for transactions that span datasets.

Re: Noms – A versioned, forkable, syncable database

#98

Earlier quoted context omitted.

This is the most important question in my mind. If it isn't ACID it needs to make a very strong case for itself to even be played with by most DBA's, including myself.

Depending on details, content addressing could make it very hard to not be ACID. Here's to hoping.

Yes, it kind of falls out of content-addressing. See: https://news.ycombinator.com/item?id=12722023

Re: Noms – A versioned, forkable, syncable database

#99
post #20

Earlier quoted context omitted.

They are so different it's hard to know what you mean by "basically the same thing"

Yes there are significant differences in terms of feature, implementation, etc but they have the same goal: manage source code versions.

That's how Git is used but I think that by design, it is foremost a userlevel append-only content-addressable file system.

The difference between this and a version control system is a major part of why the UI is so awful.

Re: Noms – A versioned, forkable, syncable database

#100
post #70

Earlier quoted context omitted.

What about ACID? How far do you plan to divert from it?

More specifically, what isolation guarantee do you make? Are writes linearizable? What consistency guarantees do you claim? How well do you think you will do when reviewed by aphyr ( https://aphyr.com )?

curious on how the irregular black shape title bar is created?
Post reply on HN