Re: Auto-Saving implemented in r16227 (to become 2.1.5) - Feedback wanted

2007-07-07 Thread don Paolo Benvenuto
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

2007-07-03 Thread Beth Leonard
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

2007-07-03 Thread Christian Stimming
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

2007-07-03 Thread Bill Wohler
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

2007-07-03 Thread Derek Atkins
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

2007-07-03 Thread Beth Leonard
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

2007-07-03 Thread Derek Atkins
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

2007-07-03 Thread keith
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

2007-07-03 Thread Bill Wohler
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

2007-07-03 Thread Ian Lewis
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

2007-07-02 Thread Christian Stimming
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

2007-07-02 Thread Nigel Titley
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

2007-07-01 Thread Christian Stimming
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