Vitalije, On Mon, Aug 26, 2019 at 3:42 AM vitalije <vitali...@gmail.com> wrote:
> Do you envision distributing the leoSettings.leo derived database with leo >> itself? Or do you have something else in mind? I was wondering how that >> first database of settings would be available at the time of leo first use. >> > > Leo defaults contained in leoSettings.leo should be distributed in their > "pre-compiled" form. For example it could be one python module containing > one big tuple of tuples representing the initial content of db. On start if > this db doesn't contain table settings, table will be created and populated > with the default values from this python module. This action is executed > only once and it takes negligible time. For new users the result would be > exactly the same as if they installed Leo and run it for the first time > before they created myLeoSettings.leo. > Sounds reasonable and it would probably also be possible to have a "compile-settings" command line option for leo which could be used in place of the "open myLeoSettings.leo and save it again" you mentioned. About 10 years ago I worked on some server software we wrote in C. The configuration was controlled via a complicated set of sqlite tables. They were complicated because it was a structure which made it easier for the end-user configuration UI. We decided to have the C code initialization structure be as simple as possible. We kept the complexity of transforming the complicated structure to the simple structure far away from the harder-to-change C code. This decision was very helpful. It resulted in fewer changes to the C startup code and the changes we couldn't avoid were made on simpler code. The simpler structure would have been onerous for the user to construct, but the data transformation took care of hiding that difficulty from the user. Having the transformation separate from the server code, it also made it much easier to troubleshoot. I see the leo situation as somewhat analogous. The settings-in-outlines is easier for the user to deal with just like the complicated sqlite tables were easier for our configuration users, and the settings db you propose is easier for the code to deal with just as our simplified C structure was for our server software. Data transformations can be useful! Brian -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/CAO5X8CzK4nhaK61%3DgzPnaMDmsH4dFWO%3DrbDX91iuOguqSvx0VQ%40mail.gmail.com.