Live data from Hacker News

A version-controlled object database with real-time collaborative editing

coreobject.org

11–19 of 19 posts

Re: A version-controlled object database with real-time collaborative editing

#11
post #6
post #5

Earlier quoted context omitted.

The product is an objective c library. So yes, it's targeted at developers. This blurb is front and center: > CoreObject is a version-controlled object database for Objective-C that supports powerful undo, semantic merging, and real-time collaborative editing.

Yes I read that. Then further down I see the following in User Experience: "Collaborative editing on any document, Easy data sharing between applications, Everything is searchable, past and present" "On any document" doesn't sound like Objective-C any more. One of the videos shows drawing shapes not source code. If it had "library" in big and bold somewhere then I would probably be like "Ah I see". But the word libra…

Those are features of the library, and the videos are of the example projects built on the library as a demonstration of what CoreObject enables you to do.

Re: A version-controlled object database with real-time collaborative editing

#12
post #6
post #5

Earlier quoted context omitted.

The product is an objective c library. So yes, it's targeted at developers. This blurb is front and center: > CoreObject is a version-controlled object database for Objective-C that supports powerful undo, semantic merging, and real-time collaborative editing.

Yes I read that. Then further down I see the following in User Experience: "Collaborative editing on any document, Easy data sharing between applications, Everything is searchable, past and present" "On any document" doesn't sound like Objective-C any more. One of the videos shows drawing shapes not source code. If it had "library" in big and bold somewhere then I would probably be like "Ah I see". But the word libra…

I'm not sure where collaboration enters into it, but it appears to be a storage library for a traditional desktop application that uses a custom file format, like a drawing editor or a spreadsheet.

Re: A version-controlled object database with real-time collaborative editing

#13
post #7

This is really cool! I'm not sure if this is true of the library itself, but in the Typewriter demo app, "merging" basically means "append." There's no smart diff and merge.

I've worked on the merging logic in a version managed database and merging structured data is not an easy problem, especially as consistent output options tend to lose more data than the user would like or expect, so you have to write intelligent merging routines that understand the datamodel at a pretty deep level. I haven't looked at this library yet, but if it does provide a merging framework then it will still require significant work in each app to produce good results.

Re: A version-controlled object database with real-time collaborative editing

#14
post #10
post #8

only for mac ?

This is from the Étoilé team, who are building an open-source operating system based on GNUStep. As stated on the project page, > Minimal dependencies (SQLite and EtoileFoundation) As for EtouleFoundation, most of the README treats OS X like a second-tier platform.

I thought Etoile was a DE based on GNUStep...

Re: A version-controlled object database with real-time collaborative editing

#15
Awesome! This has potential. Strongly typed ADT support would be nice, and it needs partial download/module boundaries to scale realistically.

Imagine putting code AST in this DB, using reference-values for variable bindings and function bindings (rather than string-based resolution). Then editing the AST in a structural editor with nice code views. The Light Table people seem to be trying to do this now with Aurora. I want to do it too, but damn is it hard.

Re: A version-controlled object database with real-time collaborative editing

#16
post #7

This is really cool! I'm not sure if this is true of the library itself, but in the Typewriter demo app, "merging" basically means "append." There's no smart diff and merge.

For a more complex merge, you can take a look at the 'Branching' video, near the end, we show a merge between two branches in a graphics editor.

We also give a brief overview of the Diff/Merge model here: http://coreobject.org/technotes/#diffmerge

Re: A version-controlled object database with real-time collaborative editing

#17
post #10
post #8

only for mac ?

This is from the Étoilé team, who are building an open-source operating system based on GNUStep. As stated on the project page, > Minimal dependencies (SQLite and EtoileFoundation) As for EtouleFoundation, most of the README treats OS X like a second-tier platform.

EtoileFoundation is a still a bit work-in-progress, and we include some features that only work with the GNUstep Objective-C runtime (e.g. prototypes).

But beside this, it is well supported on iOS and OS X. The test suite runs on our three target platforms: GNUstep, Mac OS X and iOS, and we use it daily on both OS X and GNUstep.

The EtoileFoundation version bundled with CoreObject is also a special snapshot just for the CoreObject release.

Re: A version-controlled object database with real-time collaborative editing

#18
post #6

Earlier quoted context omitted.

Yes I read that. Then further down I see the following in User Experience: "Collaborative editing on any document, Easy data sharing between applications, Everything is searchable, past and present" "On any document" doesn't sound like Objective-C any more. One of the videos shows drawing shapes not source code. If it had "library" in big and bold somewhere then I would probably be like "Ah I see". But the word libra…

I'm not sure where collaboration enters into it, but it appears to be a storage library for a traditional desktop application that uses a custom file format, like a drawing editor or a spreadsheet.

Just to explain the collaborative editing a bit…

For every commit on a versioned document (or branch more precisely), CoreObject will compute an object graph diff, and save it as a new revision in the store.

For the collaborative editing, we have a distinct and optional synchronization layer, that can observe in-memory changes to versioned documents, and push the latest object graph diffs over XMPP, between a server (the person sharing the document) and some clients (the invited persons).

For some more explanations, you can check: http://coreobject.org/technotes/#collaborative-editing

Also CoreObject is not strictly limited to GUI or traditional desktop applications, we plan to port it to iOS, and nothing prevents you to use it in a command-line application.

Re: A version-controlled object database with real-time collaborative editing

#19
post #18

Earlier quoted context omitted.

I'm not sure where collaboration enters into it, but it appears to be a storage library for a traditional desktop application that uses a custom file format, like a drawing editor or a spreadsheet.

Just to explain the collaborative editing a bit… For every commit on a versioned document (or branch more precisely), CoreObject will compute an object graph diff, and save it as a new revision in the store. For the collaborative editing, we have a distinct and optional synchronization layer, that can observe in-memory changes to versioned documents, and push the latest object graph diffs over XMPP, between a server…

Hmm, interesting.

I think many programmers in the open source world are put off by custom file formats and custom network protocols that are only supported by one library. Of course, basing the file format on SqlLite certainly helps, but that's only the bottom level.

It would be nice to have a design doc that explains the SqlLite schema and network protocol, and least a proof of concept for another library that speaks the same protocol that's not written in Objective C. Perhaps this would be the start of a standard that more people would use?

Post reply on HN