> In my "what about" emails serie, here's the persistence one...
Great idea... I just have a few comments. > *that* much space per document, and most documents aren't that big... > even for videos that should be doable... Have you done a lot of work with raw audio tracks and video footage? We're talking about hundreds of megs or even gigs worth of data in a _single file_. While versioning might be trivial for text documents or even images, the amount of space that would be consumed in versioning other media is overwhelming. It's not an excuse not to make it happen (since we will likely not have pro quality video/audio editing apps for Etoile for a few years, and in that time HD storage cost and RAM cost will only go down, and processors will get faster), but just something to consider while thinking about implementation. > Now, the question (for me) is not "is it a good idea" but more, "how > the hell are we supposed to do it" :-) Ummm.... can we cast a 9th-level Wizard spell "rIO's Persistent and Versioning Documents"? > First problem: do we want it to be "compatible" with existing software ? Our native (editable) formats should be whatever work best for our system and developers. As long as we can export files to common formats (PDF, JPG, TXT, MP3, etc), then I think we're okay. > -> Sure, not being compatible sucks, as it increase the entry level to > your system for applications... but on the other hand, if we just want > to clone KDE/OSX, I'm not sure the project is really worth the effort. > I think we need to propose *new* (and better) things. Can PowerPoint open Keynote files? Can Photoshop open GIMP files? Native formats don't always have to be openable in another program (although it is nice) (and yes, I know that the two examples I gave are the "Big" program not being able to open files made by the "Little" program...). > Second problem: ok, it's nice to have such a "local" system.. but what > about exchanging information with other people ? I see two solutions: > -> have a "raw" export of your document if it's a standard (jpeg...), > without any metadata or versioning info... > -> have a "full" export of your document (in case you want to send it > to another étoilé's user) Yep and yep, although I wouldn't call it a "raw" format... maybe a "published" format? > Now, my proposal for the technical part: use a database (PostgreSQL). > We could either store the files directly in the database, or store > them on the file system > in a special "storage area". > > Using a database will let us easily have persistence, versioning, > scalability and it will be extremely easy to have meta data and do > research ... Saving the data to the database could just be saving > binary blobs (NSData) or possibly create separate databases for > handling documents... (using GDL2 + EOModeller)... > > The other point of having only one storage area (using a database or > using multiple files on the file system) is that it will be really > handy for our documents and projects management; the files you'd "see" > in your project / folder will be references to the real data stored. > Why so ? to prevent multiple copies, allow multiple view on the same > data (David's shared/overlapping projects point). Seems like a good idea to me... J.