| View previous topic :: View next topic |
| Author |
Message |
george Site Admin
Joined: 14 Sep 2007 Posts: 1986
|
Posted: Tue Aug 30, 2011 1:07 pm Post subject: Lion and Versions |
|
|
As you all know, I'm in the midst of a major re-write of portions of Curio for the Curio 8 release set for early next year.
This has been a lot of fun, for the most part: the latest Xcode features, the latest Lion API calls, "modernized" UI, etc.
This process also includes scrapping my own autosave system for Lion's exciting integrated Autosave and Versions features.
Then I discovered this, rather interesting thread called "Lion and Keynote Problems" in Apple's Discussion forums:
https://discussions.apple.com/thread/3199161?start=0&tstart=0
This quote sums it up:
| Quote: | I feel you. I had a person drop into the office yesterday. So I pulled out my Mac to give them a presentation. We regularly use about 15 different keynote presentations all about 1-2gb each (they are full of media).
I couldn't get it to work if I skipped a few slides. My assumption is that autosave kicks in. For some pathetic reason Keynote takes FOREVER to save (3-4 minutes). So now that the autosave is forcibly on whenever I change ONE thing it pauses and takes 3-4 minutes to save. I can't get anything done.
This was very embarrassing. I may have lost a client. I had to borrow a computer with Snow Leopard and show the keynote with that after 15 minutes of my computer failing.
|
Basically Keynote stinks with very large projects. That is, projects that are 100's of MB's or GB's. Two potential solutions came up in the forums:
1. Keep using the latest Keynote but roll back to Snow Leopard, effectively disabling Versions support since SL doesn't support it.
2. Keep using Lion but roll back to an earlier release of Keynote which doesn't include Versions support.
So, what's the underlying problem? I jumped into Apple's developer forums for more info.
It appears that Apple made a fundamental design decision which makes Versions quite incompatible with larger projects. Every time it needs to write a version to its private data store it has to make a copy of your document. Unfortunately it has to do this on the main thread in your application since they have to make sure that the document data is untouched by the app or the user. This means it has to block all user interaction and, for large projects, you'll get a spinning beach ball as the copy occurs.
For those with developer credentials you can read a good thread here:
https://devforums.apple.com/message/511380
Indeed I tried some experiments with Apple's TextEdit and threw in some very large attachments. In no time my machine was locking up regularly for several minutes at a time as the versions data was backed up.
The vast majority of Curio customers have extremely large projects. 100's of MB's and even multiple GB's in project size are the norm. We've encouraged this since we want you to keep everything related to your real-world project in your Curio project -- that's basically the whole point of Curio.
We obviously can't have occasional 3-4 minute "beach ball" pauses when the user chooses to save or when the system decides an autosave version should occur.
According to the developer channels Apple knows about this problem but there isn't an easy solution since they have to have a clean untouched copy of the underlying document. In the meantime frustrated developers are actually rolling back their Versions support as their customers are getting angry.
I am investigating other solutions outside of Versions including have a separate background process that makes backup copies of projects when you quit. However, this won't be able to use the nifty Versions system that I was quite excited about integrating into Curio.
Believe me, I'm unbelievably frustrated with this news as well.
I'll keep you all in the loop as I learn more. I'm not sure what Apple can provide as I doubt they'd add a new API call as a Lion point release but maybe they can come up with some solution.
Oh, yes we could allow users to toggle Versions support on or off on a per-project basis. The problem is Versions is probably most useful for larger (read: more important) projects so coming up with a versioning solution for them is a very high priority. |
|
| Back to top |
|
 |
jjweimer
Joined: 29 Sep 2010 Posts: 372 Location: UAHuntsville, Huntsville, AL
|
Posted: Tue Aug 30, 2011 2:12 pm Post subject: |
|
|
Thanks for the notice. Here is a thought until Apple fixes the problem ...
Make Versions support an on/off setting per project ([ ] Enable Versions for this Project) . Provide an additional option to [ ] Only Invoke Versions Before Closing.
Here then is what would happen ...
* user sets Auto-Version (via Apple Versions) to OFF for the project
--> Curio disables the Only Invoke Versions Before Closing option
--> Curio runs its own auto-save program (optional)
* user sets Auto-Version to ON for the project
--> Curio enables the Only Invoke Versions Before Closing option
** user does NOT select the Only Invoke Versions Before Closing option
--> Curio envokes Versions every time the project is opened
--> Apple Versions is pre-emptive on the project
--> Curio's own autosave is disabled on the project (optional)
** user selects the Only Invoke Versions Before Closing option
--> Curio turns off Versions every time the project is opened
--> Curio's own autosave is disabled on the project (optional)
*** user closes the project
--> Curio puts up a "Warning -- Version in Progress on Project XYZ" dialog box and locks the project for further editing
--> Curio enables Versions before invoking the actions to actually close the project
--> Versions is invoked to do a backup
--> Curio gets a "versioning complete" message back from Versions
--> Curio turns off Versions for the project, unlocks the project to editing, removes the "Warning ... " dialog box, and gracefully closes the project
Whew! That is a lot of programming convolutions just to fix a problem with Apple's own design flaw. Even the most basic SVN systems do not run pre-emptive AFAIK.
EDIT: Oh! Yes, actually SVN does run pre-emptively. It is Time Machine that otherwise makes us think that versioning can be done "while we continue about doing editing".
--
JJW |
|
| Back to top |
|
 |
george Site Admin
Joined: 14 Sep 2007 Posts: 1986
|
Posted: Tue Aug 30, 2011 2:23 pm Post subject: |
|
|
Here's a new wrinkle: I forgot that Versions support is for the entire document class. That means it's either on or off for all projects. I can't actually do it on a project-by-project basis.
To be honest I'm really hoping Apple figures this out as it's a huge mess for their iWork applications. I'll come up with a workaround in the meantime but leave everything "turn on-able" if they do come up with a solution.
Regarding your suggested workflow one big problem is that Versions and Autosave is essentially a black box. Apple automatically determines when an autosave should occur and if a version should be created for safekeeping. You can also manually force an autosave version update (via File > Save Version) but normally the operation itself and therefore the timing is all under Apple's control. I don't believe I'm even told that it has internally determined that a version should be created, the autosave triggers it automatically if it deems it necessary. |
|
| Back to top |
|
 |
jjweimer
Joined: 29 Sep 2010 Posts: 372 Location: UAHuntsville, Huntsville, AL
|
Posted: Tue Aug 30, 2011 4:24 pm Post subject: |
|
|
| george wrote: | | Here's a new wrinkle: ... |
Gosh, it sure sounds like an all-around mess.
--
JJW |
|
| Back to top |
|
 |
george Site Admin
Joined: 14 Sep 2007 Posts: 1986
|
Posted: Tue Aug 30, 2011 4:26 pm Post subject: |
|
|
That's why I love my job!  |
|
| Back to top |
|
 |
mnmcook
Joined: 31 May 2009 Posts: 196 Location: Pennsylvania
|
Posted: Tue Aug 30, 2011 10:53 pm Post subject: |
|
|
Well thanks for all the detail George. I certainly would rather have to save every so often than watch those beach balls. I find them annoying enough already when switching projects or waiting for the color palette to pop up.
I appreciate all you are having to deal with and especially that you are willing to share openly with everyone. |
|
| Back to top |
|
 |
jshadow007
Joined: 30 Oct 2009 Posts: 210
|
Posted: Fri Sep 02, 2011 4:31 am Post subject: |
|
|
Yikes! Quite a mess Apple's made of things.
I'm thinking that at this point, anything you come up with is going to be more useful than Apple's one-size-fits-all approach.
I rather like Scrivener or Bento's approach, which gives you an option to back-up every time you quit, or prompts you if you haven't backed up in a while, and then puts a zipped copy of the project somewhere you want it. |
|
| Back to top |
|
 |
NightStalker
Joined: 11 Mar 2009 Posts: 83
|
Posted: Sat Feb 18, 2012 8:44 am Post subject: |
|
|
Autosave, and the lack of "Save As" - another thing I loathe about Lion!!!
One thing I do with Photoshop is to play around with various filters, effects, layers, etc - just mucking about, doing tutorials, etc. And at the end of an hour or so, I just quit Photoshop. When prompted if I want to save the photo I've been using, I just have to say "Don't Save', and the original doesn't get over-written with all my experiments.
But in Lion - it's too late. It's already been overwritten - several times. unless I'm quick enough to realise that I have to make a copy of a photo I want to play with and have no intention of saving, and then work on that photo. But even that isn't as simple as loading a photo then doing a "Save As" something else with a new name. There is no "Save As' in Lion.
And as George has already pointed out - Autosave can be a major problem. And as in my example above, it can be a problem in other ways too.
Grrrrr...! And Apple are trying to force me to upgrade to Lion (I have one machine that is upgraded) in order that my MobileMe syncing will switch to iCloud in June and my calendars and contacts will continue to sync. But I MUST upgrade to Lion for that to happen - and I am not upgrading to Lion on my other machines.
So I guess I won't be able to upgrade to Curio 8 either.... bummer! |
|
| Back to top |
|
 |
george Site Admin
Joined: 14 Sep 2007 Posts: 1986
|
Posted: Sat Feb 18, 2012 11:49 am Post subject: |
|
|
I believe I could create an "enable autosave" preference that's global in scope.
Lion checks to see if autosave should be supported on startup. They force it to be a global setting so it can't be changed from document to document.
I'm make a note to look into it. It's certainly a very easy code tweak. |
|
| Back to top |
|
 |
jjweimer
Joined: 29 Sep 2010 Posts: 372 Location: UAHuntsville, Huntsville, AL
|
Posted: Sat Feb 18, 2012 3:20 pm Post subject: |
|
|
| NightStalker wrote: | Grrrrr...! And Apple are trying to force me to upgrade to Lion (I have one machine that is upgraded) ...
So I guess I won't be able to upgrade to Curio 8 either.... bummer! |
It would seem, by the time Curio 8 is released, Mountain Lion will have been out or will be close behind it.
--
JJW |
|
| Back to top |
|
 |
jjweimer
Joined: 29 Sep 2010 Posts: 372 Location: UAHuntsville, Huntsville, AL
|
Posted: Sat Feb 18, 2012 3:26 pm Post subject: |
|
|
| george wrote: | | I believe I could create an "enable autosave" preference that's global in scope. ... |
Such a preference would be useful. I admit too that the loss of Save As ... and the behind the scenes autosaving for Versions are two reasons that I have not switched to Lion. They both involve a different approach to how I work on my documents, and I am not yet ready to make that jump, even though I can understand the benefits.
--
JJW |
|
| Back to top |
|
 |
george Site Admin
Joined: 14 Sep 2007 Posts: 1986
|
Posted: Sat Feb 18, 2012 6:40 pm Post subject: |
|
|
Yes, it sounds like Curio 8 and Mountain Lion may be appearing at the same time. Don't worry, I'm not going to require Mountain Lion as a minimum for Curio 8!
Fortunately Lion's autosave is separate from Versions. Curio 8 is using Lion's new autosaving system -- which has some pretty slick features that only a built-in autosaving system could support -- but we're not supporting Versions as mentioned in another thread (http://www.zengobi.com/forums/viewtopic.php?t=1320). |
|
| Back to top |
|
 |
NightStalker
Joined: 11 Mar 2009 Posts: 83
|
Posted: Mon Feb 27, 2012 1:51 pm Post subject: |
|
|
It would be really good if autosave can be switched off totally.
Switching it off in Curio would be an excellent option, but I wish Lion would allow the option of switching off Autosave and Versions.
That really screws up the way a lot of people (i.e. me) work.
Having it set by default is OK if they're doing a Microsoft and trying to save users from themselves, but I for one would really appreciate the ability to choose NOT to have either Autosave or Versioning, and to have "Save As" back. |
|
| Back to top |
|
 |
|