We are currently working on an "AutoSave" feature in LabVIEW, and I thought I might ask for some feedback from you in this new forum.
Now first, please keep in mind that this feature is further along in development than some other feature ideas discussed in this forum, so please don't be too upset if the feedback you provide isn't quite how it ends up working, especially in its first version. 🙂
The basic idea is that we would save modified VIs periodically to a temporary location so as to never save over top of your existing VIs on disk. Then in the event of a crash or power failure, files would be present to recover on next launch and you would be prompted to recover them.
That said, here are some points of feedback I'd be interested in:
Of course, if you have any other questions or comments about how it works or how it should work, I'd like to hear them too!
Do you think it should be on by default?
Probably. This will definitely help save people who didn't think to turn this on and I doubt the overhead would be so big that it would be a real problem for people who wouldn't know how to turn it off.
What do you think the default timeout period should be?
If by timeout you mean the frequency of autosaving, I would say probably between 20 seconds and 20 minutes, depending on how much resources this takes. Is it possible to autosave only those parts of the hierarchy modified since the last auto-save?
Would you consider it useful if it can only handle VIs/CTLs (no LVPROJ, LVLIB, XCTL, etc)? How much importance would you place on it also handling the file types listed above?
It would probably be useful, but I'm guessing that once it's there people will want it for everything. I didn't get around to 8 yet, so I can't say myself.
As a side note, there is already an auto backup tool floating around the web (OpenG? LAVA? can't remember) which might be a good temporary solution.
Thanks for your feedback so far, keep it coming!
I just wanted to quickly address some questions / comments that have come up so far:
There have been some very interesting suggestions regarding when to trigger the AutoSave, which is also a point of concern and up for discussion as well.
Yes, you never know when you are going to need, you never plan for your application to crash (talking hypothetically ofcourse but especially true when interfacing DLLs)
600 seconds but this should be adjustable in the preferences screen by the user.
This is the default value I use for the LabVIEW monitor tool which is always present in the lower left corner of my workspace. I can see a count-down untill the saving time which I can disable/reset very easily by clicking on the countdown.
It is true that saving the VIs takes some time. Depending on the number of VIs that need to be saved ofcourse. If you work like I do, with your pink stuck on control and your middle finger on 's' and you instinctively press these buttons once in a while the number is limited. But if you upgrade to 8.0.1 for instance and you open an older project you can get quite a lot of changed VI's. In these cases it is usefull to be able to switch it off. Also the front panel of the monitor tools turns red so you know what is going on when your selected control looses focus all of a sudden.
Besides auto saving every 600 seconds into the default temporary directory it also shows me which version of LabVIEW I am working in at the moment, how many VI's are in memory, how many of them are running and how many are changed. The autosave function only saves the changed VIs and as copy without updating the callers so the 'changed' flag is not updated for the VI. The files are removed when the tool is exited by pressing the Quit button (which quits LabVIEW aswell). It is not a replacement for a version control package so changed files are removed when LabVIEW quits.
I attached the LV7.1.1 version of the toolbar for inspiration. Some additional info: clicking the VI's in mem counter pops-up the VI's in memory tool, pressing the running vi's counter pops up the LabVIEW task manager, clicking the changed VI's counter pops-up a dialog showing you which VI's changed and why (in a very crude manor). The tool starts automatically with LabVIEW when you put it into the vi.lib directory. Put the other tools (from the zip file) into your LabVIEW\project directory.
Yes, I would, although it would ofcourse be nicer if these files are saved as well.
Hope this helps
"It is true that saving the VIs takes some time. Depending on the number of VIs that need to be saved ofcourse. If you work like I do, with your pink stuck on control and your middle finger on 's' and you instinctively press these buttons once in a while the number is limited. But if you upgrade to 8.0.1 for instance and you open an older project you can get quite a lot of changed VI's. In these cases it is usefull to be able to switch it off. Also the front panel of the monitor tools turns red so you know what is going on when your selected control looses focus all of a sudden."
Thank you for your feedback!
I also wanted to mention that the goal is that only user-initiated changes would get autosaved. Automatic things that cause a dirty dot such as compiling when loading a previous version, subVI loaded from a different location, etc, would not cause the VI to get autosaved. So hopefully if you upgradeed to 8.0.1 and chose not to mass compile, this would not be a reason for you to disable autosave. 🙂