Jump to content
Storyist Forums

Uncompressed story file


codemer

Recommended Posts

And now for something a little less visual. For all those real writers out there, please forgive my geekeese. I would like the option to turn off compression of the .story file so that it uses less space when checked into a revision control system like Subversion or Git. The compression creates huge deltas, and I believe turning it off would increase the effectiveness of the diff algorithm, making storage of revisions more efficient in both size and time. I suppose I could just wait to upgrade to Leopard and use that new Time Machine feature, but I'm not sure how to squeeze another hard drive into my powerbook. :)

 

This feature should be pretty straight forward to implement (but I've been burned by that thinking before). I believe the zip format supports turning off compression, meaning that saving would require an extra setting, but opening the file should work the same.

 

This actually leads up to my real desire: to have fully integrated history in Storyist, letting me jump back in time before I screwed up that paragraph, but I guess that's probably pushing it. :unsure:

Link to comment
Share on other sites

This actually leads up to my real desire: to have fully integrated history in Storyist, letting me jump back in time before I screwed up that paragraph, but I guess that's probably pushing it. :)

 

Isaac,

 

If I'm not mistaken, Time Machine also allows for file-specific backups, if desired. Personally, I'd prefer Section-specific backups so as not to undo good work or corrections in other Sections written after the target Section was befouled. This is something Time Machine could not do and would be unique to Storyist (until others copied it).

 

Just a thought.

-Thoth

Link to comment
Share on other sites

Isaac,

 

It would certainly be an interesting experiment. This is probably something you can test yourself. Storyist uses the zip utility that ships with OS X. Your checkin script can unzip your story and then zip it back uncompressed (if this is possible--I haven't checked). If zip can "expand" it, Storyist won't care. And if you find something that works, I'd be happy to add a configuration option for you.

 

As for jumping back in time, you could use the backup facility in the File menu and restore from a backup to get back to the state you were in before that paragraph got messed up. I know this isn't what you are asking for because the granularity is way too large.

 

-Steve

Link to comment
Share on other sites

It would certainly be an interesting experiment. This is probably something you can test yourself. Storyist uses the zip utility that ships with OS X. Your checkin script can unzip your story and then zip it back uncompressed (if this is possible--I haven't checked). If zip can "expand" it, Storyist won't care. And if you find something that works, I'd be happy to add a configuration option for you.

 

It's a simple option, -0. I tested a simple story file. Unzipped it, rezipped it with 'zip -0', and it worked fine.

 

As for jumping back in time, you could use the backup facility in the File menu and restore from a backup to get back to the state you were in before that paragraph got messed up. I know this isn't what you are asking for because the granularity is way too large.

 

Are you thinking about playing with the Time Machine API in Storyist?

Link to comment
Share on other sites

As for jumping back in time, you could use the backup facility in the File menu and restore from a backup to get back to the state you were in before that paragraph got messed up. I know this isn't what you are asking for because the granularity is way too large.

 

Speaking of coarse temporal granularity*; I had mentioned the Time Machine** backups earlier. It turns out that Time Machine isn't the infinite undo facility we may have been led to believe it is. Instead of saving all file changes it makes only hourly backups for the past 24 hours. (It also makes daily backups for the past month, and weekly backups for everything older than a month.) Obviously, only the last file modification made before the next hourly backup will be automatically saved.

 

Of course you can always do your own timely saves, as Steve suggests, using Storyist's own swift Back Up command. But you don't always know when to Back Up. You might spend hours removing a character from your story only to then decide that you want him back. But don't want to undo all your work prior to the character's removal but subsequent to the last Back Up. I suppose the moral is to save your work frequently and before any major alteration.

 

(It makes you wonder how people wrote anything before computers. I suppose they got the story straight in their heads first.)

 

-Thoth

 

* If Max Planck is correct, time may indeed be granular.

** OS X Leopard will be available in stores and online this Friday, 26 October 2007.

Link to comment
Share on other sites

Speaking of coarse temporal granularity*; I had mentioned the Time Machine** backups earlier. It turns out that Time Machine isn't the infinite undo facility we may have been led to believe it is. Instead of saving all file changes it makes only hourly backups for the past 24 hours. (It also makes daily backups for the past month, and weekly backups for everything older than a month.) Obviously, only the last file modification made before the next hourly backup will be automatically saved.

 

Of course you can always do your own timely saves, as Steve suggests, using Storyist's own swift Back Up command. But you don't always know when to Back Up. You might spend hours removing a character from your story only to then decide that you want him back. But don't want to undo all your work prior to the character's removal but subsequent to the last Back Up. I suppose the moral is to save your work frequently and before any major alteration.

 

(It makes you wonder how people wrote anything before computers. I suppose they got the story straight in their heads first.)

 

-Thoth

 

* If Max Planck is correct, time may indeed be granular.

** OS X Leopard will be available in stores and online this Friday, 26 October 2007.

 

I'll have some more to say about Time Machine on Friday when I can talk about such things without violating my NDA.

 

Regarding getting a character back: Since Storyist does not (yet) have a trash, I've got a folder for characters I "delete" that I use to hold characters I'm not sure about. Same with setting and plot.

Link to comment
Share on other sites

I'll have some more to say about Time Machine on Friday when I can talk about such things without violating my NDA.

 

Regarding getting a character back: Since Storyist does not (yet) have a trash, I've got a folder for characters I "delete" that I use to hold characters I'm not sure about. Same with setting and plot.

 

That's a good idea. Wish I'd thought of it earlier! :)

 

I remember that something like this came up before, but it would be wonderful to be able to cut and paste a character or setting from one file to another. Is this already possible and I've missed it? Is it horrifically complicated?

 

For example, I'm writing a series. I dithered like crazy about the right setting for vol. 2, and now that I've finally settled the question I have about 3 connected Storyist files, each of which has some features I need. Most annoyingly, I deleted my antagonist from the current file because for a while I planned to save him for vol. 3, but now I need him back. Of course, I can recreate him, but it would be a huge time saver to be able to fire up the vol. 3 (or vol. 1) file and just reimport him. Man is a big enough pain as it is without making me do a whole bunch of retyping.

 

I suppose this should really be a separate thread, since it has nothing to do with compression, but I'm not quite sure how to cancel out so I can start a new one. <_>

Marguerite

Link to comment
Share on other sites

That's a good idea. Wish I'd thought of it earlier! <_>

 

I remember that something like this came up before, but it would be wonderful to be able to cut and paste a character or setting from one file to another.

The earlier topic might be Copy & Paste for Sheets.

 

Is this already possible and I've missed it? Is it horrifically complicated?

Not possible yet. You can copy and paste the text, of course, but you really want all of the data connected to a story element. It isn't horribly complicated, but it isn't trivial either.

Link to comment
Share on other sites

Not possible yet. You can copy and paste the text, of course, but you really want all of the data connected to a story element. It isn't horribly complicated, but it isn't trivial either.

 

If you're comfortable unzipping the story file and editing the xml directly, it's not too hard. Just pop open the rdf file and have at it. For most people, this is probably a bit extreme, though. <_<

 

Steve, when can I have at that Storyist plugin API? This sounds like it'd be easy to script. :)

Link to comment
Share on other sites

Steve, when can I have at that Storyist plugin API? This sounds like it'd be easy to script. <_>

 

Sometime next week, I'm going to post more detailed information about the file formats, so you can pick apart the file if you wish.

 

The first bit of API to hit is going to be the import/export API, which I hope to get in 1.4. This will be an Objective-C allow you to access the NSTextStorage and the RDF model.

 

For others reading this who are not in the beta program: If you would like early access to the API, please send me a PM and I'll get you set up.

 

-Steve

Link to comment
Share on other sites

  • 1 month later...

Just adding my two cents on the zipping part of the file for SVN... One major gain with using SVN is the ability to diff any two versions, or any version with the current local version. With the files unzipped on the server, comparing may not be a problem between two versions, but comparing on the fly with the current local version may be a real pain.

 

One thing about an import/export API: I'm just wondering what could be done with interconnecting directly to trac (or any other wiki, for that matter..) using that API. This would be far more powerful than integration with SVN, since it would allow one to access and edit all the documents from any computer, without having to install a SVN client and everything...

Link to comment
Share on other sites

One thing about an import/export API: I'm just wondering what could be done with interconnecting directly to trac (or any other wiki, for that matter..) using that API. This would be far more powerful than integration with SVN, since it would allow one to access and edit all the documents from any computer, without having to install a SVN client and everything...

 

If you're adventurous, you could probably script something using XSLT that translates the xml into wiki code and posts it to the wiki. Of course, I always say stuff like that and it turns into a trade off between coding and writing.

 

Steve, how's that API coming? :)

 

Good luck.

 

Dead tired from sick kids and a new job,

IF

Link to comment
Share on other sites

  • 3 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...