> Various more random thoughts... > > > Regarding file-formats, consider also: > > Database vs. file? (Would a database even require explicit saving?) > ZIP container vs. separate files
As this is a clean sheet of paper, start with *everything* being a plugin. There is no base/core beyond the plugin manager, command line parser ( http://www.boost.org/doc/libs/1_52_0/doc/html/program_options.html ) and a message passing system (DBus won't run on Windows, please don't use it). http://blog.nuclex-games.com/tutorials/cxx/plugin-architecture/ Explains the correct way and the wrong ways to do plugins. Plugins have the advantage of enforcing Separations of Concerns, so it is not possible for things to slowly evolve into a tangled mess over the years. Taking your database vs file. Start with a simple file plugin, then a SQLite plugin, then a full up database (FireBird is easier to embedded than the rest) plugin. They can all exist at once as well. An other plugin example would allow for different renderers for example. Maybe we need a renderer for some technology that has not even been conceived of yet. Also if the hairy math parts are plugins they are easier to evolve as they are learned and easier to add new ones. > What about copy-on-write like various modern file-systems? COW is not always a win performance wise, however I'd still probably use it. > Do we _want_ undo data to persist on disk somewhere? (We could have a manual > operation to throw it away and condense the design history). Is there really an advantage to a undo history that goes back days/weeks/years? I'm not seeing it. Autosave snap shots seem like a better option. A couple of other items. YAML has an self-referral system that XML and JASON lack. For example a resistor is an anchored base, with R1 being a reference back to the single base resistor. Something else to throw out as an example, look at http://www.digikey.com/us/en/mkt/scheme-it.html that runs in the browser. Big downside to it is there is no concept of a netlist. "Scheme-it is an online schematic and diagramming tool that allows anyone to design and share electronic circuit diagrams. The tool includes a comprehensive electronic symbol library and an integrated Digi-Key component catalog that allows for a wide range of circuit designs. Additionally, a built-in bill of materials manager is provided to keep track of parts used in a design. Once a schematic drawing is complete, users can export it to an image file or share it via email with others. Scheme-it works natively in all major web browsers without requiring the use of any plugins. Only users registered at www.digikey.com are able to share and save designs." -- Mailing list: https://launchpad.net/~geda-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~geda-developers More help : https://help.launchpad.net/ListHelp

