Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
El mar, 03-07-2007 a las 21:28 -0700, Bill Wohler escribió: For me, saving takes about four seconds. It's not enough to cause hardship, but it would be a pain while I was actively entering transactions. So, I might imagine a configuration like (every 5 minutes or 10 transactions) and 1 minute idle. With my data file savings takes more than 20 seconds, I agree with Bill, we need a control on idle gnucash time. I try to suggest an alternative, too. The developers say that during the saving process gnucash can't permit data change. My suggestion is to perform the saving in these steps: 1. save to memory a copy of the data file (gnucash doesn't permit data entry) - fast operation, should't interfere with data entry 2. return the user the permission to enter data 3. save to disk the copy What about implementing this schema for all saving operation? -- don Paolo Benvenuto http://guaricano.diocesi.genova.it è il diario che scrivo, principalmente io, ma anche altri: puoi trovarvi la vita della missione, giorno per giorno Contribuisci a wikipedia, l'enciclopedia della quale tu sei l'autore e il revisore: http://it.wikipedia.org ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
On Sun, Jul 01, 2007 at 02:35:13PM +0200, Christian Stimming wrote: Once you install r16627 or higher (which will become 2.1.5), auto-save will be activated every 3 minutes by default (counting from the first change of your data, i.e. when the * appears in the title bar). The very first time this feature is run you will be shown an explanatory dialog that tells you where you can change the time interval or switch off this feature. That dialog won't be shown again. Does it save over your current working datafile? Or does it save a backup snapshot of the datafile that the next time you open gnucash after a crash gnucash will ask you if you want to open the backup or the real thing? The reason I ask is that gnucash does not include an undo feature, which I see as essential to having an autosave that overwrites your most recent working datafile. I fairly often try to import an OFX or QIF file, make a mistake or change my mind, quit without saving on purpose, then re-open the file to try again. Sometimes I do this with respect to reconciliation as well, because it's much easier to go back to the last known-good state than it is to try to figure out which things are half-done. If gnucash had undo I could see having an autosave that is on by default as a good feature, but without undo, I'd much rather see it save a copy (like all those tmp files gnucash makes that don't include business features) instead of overwriting the current working file. Right now the only chance a user has to undo things is to go back to the previously saved copy. --Beth Beth Leonard http://www.LeonardFamilyVideos.com ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
Quoting Beth Leonard [EMAIL PROTECTED]: Does it save over your current working datafile? Or does it save a backup snapshot of the datafile that the next time you open gnucash after a crash gnucash will ask you if you want to open the backup or the real thing? In that sense: Yes, it does indeed save over the current working datafile, say, foo.xac. But the old datafile will be kept around as a time-stamped backup copy, say, foo.20070702121341.xac. This fact is admittedly not at all obvious. Nevertheless the older data does exist. However, from the time-stamped filenames you can't tell which one was saved by pressing save and which one by the current auto-save implementation. If gnucash had undo I could see having an autosave that is on by default as a good feature, but without undo, I'd much rather see it save a copy (like all those tmp files gnucash makes that don't include business features) instead of overwriting the current working file. Right now the only chance a user has to undo things is to go back to the previously saved copy. Hm... the problem here is that this would require major changes in how the file saving works, and also the program has to keep track not only of the book-dirty state but additionally of the book-manually-saved state (to distinguish whether the book has been auto-saved, or manually saved, or both). From a programmer's point of view this is hard. The main reason for me to implement this so quickly was that I discovered in the current way the implementation was surprisingly easy from a programmer's point of view. What I'm saying is that if the feature in the current form doesn't meet user's needs, we can very well disable this again... sorry for that. Christian ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
Beth Leonard [EMAIL PROTECTED] writes: On Sun, Jul 01, 2007 at 02:35:13PM +0200, Christian Stimming wrote: Once you install r16627 or higher (which will become 2.1.5), auto-save will be activated every 3 minutes by default (counting from the first change of your data, i.e. when the * appears in the title bar). The very first time this feature is run you will be shown an explanatory dialog that tells you where you can change the time interval or switch off this feature. That dialog won't be shown again. Hi Christian, Emacs auto-saves every n seconds or m keystrokes. In addition to auto-saving every 180 seconds, I'd also suggest auto-saving every 10 new or updated entries or so. That, too, should be configurable. Emacs and other programs I've seen auto-save into a separate file. I'd strongly suggest, and it would be greatly appreciated by the user community, that the hard work be done to make it so. You will end up surprising a lot of folks (not in a good way) by auto-saving over the original file. Thanks for adding this feature, by the way. It is an excellent one. I've wished I had it in the past ;-). -- Bill Wohler [EMAIL PROTECTED] http://www.newt.com/wohler/ GnuPG ID:610BD9AD ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
Hi, Eric Ladner [EMAIL PROTECTED] writes: Kind of like how 'vi' does it too. Here's the rough logic... (on startup) if (alternate file exists) // something went wrong.. prompt user for option of reloading saved checkpoint if (user says yes) load checkpoint else delete file (timed) save to alternate file if (user saves file) delete checkpoint (on exit) if (not saved) prompt user to save if (user says yes) save file delete checkpoint That way, you're not saving over the official data file, but saving to an alternate file that always has the same name (account.ckpt maybe). When loading account account, if a checkpoint exists, something bad happened and you can restore to that checkpoint, or just load the original file (rollback all the way to last session). Unfortunately the way GnuCash/QOF works makes this sort of autosave process very difficult to implement. QOF tries to make it's data look like a database, not a data file, so it really does abstract out these things. -derek -- Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory Member, MIT Student Information Processing Board (SIPB) URL: http://web.mit.edu/warlord/PP-ASEL-IA N1NWH [EMAIL PROTECTED]PGP key available ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
On Tue, Jul 03, 2007 at 01:50:30PM -0400, Derek Atkins wrote: Unfortunately the way GnuCash/QOF works makes this sort of autosave process very difficult to implement. QOF tries to make it's data look like a database, not a data file, so it really does abstract out these things. Gnucash does have a save as... menu item. Is it possible for the autosave to hook into that set of calls, insead of the save in order to implement the logic Eric outlines below? I do like that logic for auto-save functionality. If this is difficult, allowing the user to turn off auto-save is sufficient. --Beth Eric Ladner [EMAIL PROTECTED] writes: Kind of like how 'vi' does it too. Here's the rough logic... (on startup) if (alternate file exists) // something went wrong.. prompt user for option of reloading saved checkpoint if (user says yes) load checkpoint else delete file (timed) save to alternate file if (user saves file) delete checkpoint (on exit) if (not saved) prompt user to save if (user says yes) save file delete checkpoint That way, you're not saving over the official data file, but saving to an alternate file that always has the same name (account.ckpt maybe). When loading account account, if a checkpoint exists, something bad happened and you can restore to that checkpoint, or just load the original file (rollback all the way to last session). -derek -- Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory Member, MIT Student Information Processing Board (SIPB) URL: http://web.mit.edu/warlord/PP-ASEL-IA N1NWH [EMAIL PROTECTED]PGP key available ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel -- Beth Leonard http://www.LeonardFamilyVideos.com ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
Unfortunately Save As repoints the current active datafile, so hooking into there would change your datafile out from under you. So, no, we can't use that functionality directly. -derek Quoting Beth Leonard [EMAIL PROTECTED]: On Tue, Jul 03, 2007 at 01:50:30PM -0400, Derek Atkins wrote: Unfortunately the way GnuCash/QOF works makes this sort of autosave process very difficult to implement. QOF tries to make it's data look like a database, not a data file, so it really does abstract out these things. Gnucash does have a save as... menu item. Is it possible for the autosave to hook into that set of calls, insead of the save in order to implement the logic Eric outlines below? I do like that logic for auto-save functionality. If this is difficult, allowing the user to turn off auto-save is sufficient. --Beth Eric Ladner [EMAIL PROTECTED] writes: Kind of like how 'vi' does it too. Here's the rough logic... (on startup) if (alternate file exists) // something went wrong.. prompt user for option of reloading saved checkpoint if (user says yes) load checkpoint else delete file (timed) save to alternate file if (user saves file) delete checkpoint (on exit) if (not saved) prompt user to save if (user says yes) save file delete checkpoint That way, you're not saving over the official data file, but saving to an alternate file that always has the same name (account.ckpt maybe). When loading account account, if a checkpoint exists, something bad happened and you can restore to that checkpoint, or just load the original file (rollback all the way to last session). -derek -- Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory Member, MIT Student Information Processing Board (SIPB) URL: http://web.mit.edu/warlord/PP-ASEL-IA N1NWH [EMAIL PROTECTED]PGP key available ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel -- Beth Leonard http://www.LeonardFamilyVideos.com -- Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory Member, MIT Student Information Processing Board (SIPB) URL: http://web.mit.edu/warlord/PP-ASEL-IA N1NWH [EMAIL PROTECTED]PGP key available ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
A little problem I have with this idea is that it takes several minutes to save my file. With 16K transactions, there is just too much data to grind out. I need to get my data into a database, I think. Of course I'm just using a 1.8 GHz P6. It would help if I had a modern computer. Bill Wohler wrote: Beth Leonard [EMAIL PROTECTED] writes: On Sun, Jul 01, 2007 at 02:35:13PM +0200, Christian Stimming wrote: Once you install r16627 or higher (which will become 2.1.5), auto-save will be activated every 3 minutes by default (counting from the first change of your data, i.e. when the * appears in the title bar). The very first time this feature is run you will be shown an explanatory dialog that tells you where you can change the time interval or switch off this feature. That dialog won't be shown again. Hi Christian, Emacs auto-saves every n seconds or m keystrokes. In addition to auto-saving every 180 seconds, I'd also suggest auto-saving every 10 new or updated entries or so. That, too, should be configurable. Emacs and other programs I've seen auto-save into a separate file. I'd strongly suggest, and it would be greatly appreciated by the user community, that the hard work be done to make it so. You will end up surprising a lot of folks (not in a good way) by auto-saving over the original file. Thanks for adding this feature, by the way. It is an excellent one. I've wished I had it in the past ;-). ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
keith [EMAIL PROTECTED] writes: A little problem I have with this idea is that it takes several minutes to save my file. With 16K transactions, there is just too much data to grind out. I need to get my data into a database, I think. Of course I'm just using a 1.8 GHz P6. It would help if I had a modern computer. Ouch. OK, that gives me an idea--add another option to wait until Gnucash is idle n minutes before auto-saving. That way, Gnucash will auto-save while you're making coffee, for example. For me, saving takes about four seconds. It's not enough to cause hardship, but it would be a pain while I was actively entering transactions. So, I might imagine a configuration like (every 5 minutes or 10 transactions) and 1 minute idle. That said, I would take auto-save over original file over no auto-save at all. But it sounds like it would still be a good idea to keep an alternate implementation in the queue. Huge kudos, as always, to the Gnucash team for keeping us Windows free. For you Yanks, happy Fourth! -- Bill Wohler [EMAIL PROTECTED] http://www.newt.com/wohler/ GnuPG ID:610BD9AD ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
I think either something as Wouter described, bury this in the settings and give ample explanation for what it does, or disabling it completly (at least in the stable versions) until it's really ready for normal use is needed. My gut feeling is to do the latter. While it's useful for some it sounds like it could have adverse and unexpected effects that outweigh it's benefits for people if enabled. 2007/7/3, Wouter van Marle [EMAIL PROTECTED]: [auto-save overwrites current working file] The main reason for me to implement this so quickly was that I discovered in the current way the implementation was surprisingly easy from a programmer's point of view. What I'm saying is that if the feature in the current form doesn't meet user's needs, we can very well disable this again... sorry for that. Auto-save sounds very useful to me as well. Maybe keep it disabled by default, allowing users to enable it (tick-mark in the settings dialogues), with strong warning about this over-writing behaviour. Indeed I agree with the grandparent that auto-save should not overwrite the current file (can't the auto-save function, when calling the save function, automatically add .autosave to the file name or so? I haven't read the source so no idea whether it is possible). Personally I don't experiment very often; and when I do I usually first save a copy to a different name, and play with that. Wouter. Christian ___ gnucash-user mailing list [EMAIL PROTECTED] https://lists.gnucash.org/mailman/listinfo/gnucash-user - Please remember to CC this list on all your replies. You can do this by using Reply-To-List or Reply-All. ___ gnucash-user mailing list [EMAIL PROTECTED] https://lists.gnucash.org/mailman/listinfo/gnucash-user - Please remember to CC this list on all your replies. You can do this by using Reply-To-List or Reply-All. -- Ian Lewis [EMAIL PROTECTED] http://www.ianlewis.org/ http://jsxe.sourceforge.net ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
Please make sure to *always* CC: to the list! Quoting don Paolo Benvenuto [EMAIL PROTECTED]: Does auto-save save directly to the file or to a temporary file? Did you actually test this feature? My email specifically asked for feedback when *testing* this feature. As for backup files: Just as the normal save, auto-save will write the full file but the previous version of the file will be kept as a backup file with the timestamp in the filename. Christian I think the second option could be considered, so that the data file be changed only when the user actually saves the work. Manually saving, the user is confirming that the changes are effectively to be saved to the data file. This way in case of a crash, the temporary file should be proposed (to be copied to the real data file. ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
Christian Stimming wrote: Dear all, after years and years of being asked to implement an automatic saving of the data file (auto-save) http://bugzilla.gnome.org/show_bug.cgi?id=451889 (and http://bugzilla.gnome.org/show_bug.cgi?id=107365 ) I eventually implemented this feature last week. Hurrah! I could have done with this on Saturday. Spent about 3 hours entering various VAT return information, got to the end (not saving as gnucash is so stable these days and I've got out of the habit), entered last transaction gnucash crashed. No stacktrace, no core dump, nothing... I know it's my own stupid fault. I know I shouldn't do live work on the development version (but it is the best way of testing it). I know, I know Tried the log replay facility. Worked splendidly, except that during the previous three hours I had created various customers and this wasn't recorded in the log (of course), so ended up with various orphaned invoices. It seemed easier and safer to just do it all again. Sigh... Nigel ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted
Dear all, after years and years of being asked to implement an automatic saving of the data file (auto-save) http://bugzilla.gnome.org/show_bug.cgi?id=451889 (and http://bugzilla.gnome.org/show_bug.cgi?id=107365 ) I eventually implemented this feature last week. Once you install r16627 or higher (which will become 2.1.5), auto-save will be activated every 3 minutes by default (counting from the first change of your data, i.e. when the * appears in the title bar). The very first time this feature is run you will be shown an explanatory dialog that tells you where you can change the time interval or switch off this feature. That dialog won't be shown again. I'd be glad to hear some feedback from users about whether this works fine or causes problems. In particular, we're not yet sure whether there might be issues with other time-consuming operations like running a report. Initial tests indicated those operations would simply continue in parallel, but we're not sure whether we covered everything. If you encounter any errors, feel free to add that to the above bugreport. If some weird problems occur, I'll happily disable that feature again so that the upcoming 2.2.0 will not ship with this feature but be as stable as possible. But if we receive mostly positive feedback, this feature will make it into 2.2.0. Thanks a lot. Regards, Christian ___ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel