Wilcox Development Solutions Blog

N Step Program

October 29, 2003

Tuesday I focused almost entirely on the backup options. Most of the backup options need to be run after the general pass/fail of the whole script. Why? Because if the script fails, we would need to (keep track of) and undo all of that stuff, in order to revert.

So we do all the options at the end. Since I’ve managed to progress my way, in code, to the end of the script, that’s what I worked on yesterday.

Being at the end makes forward progress slower, I think. Before I was able to jump over functionality and say “I’ll do that at the end”, or “I’ll think about that for a while and come back to it”. Now all of those things are catching up with me. I’ve got probably a quarter of my whiteboard filled with things I need to go back and do. Implementing things like asking you to save changes before you quit, which utility to run first, even making windows appear “dirty” (the little dot in the close button that indicates you have unsaved changes), all the steps that happen when a collection fails, and the “send in for repairs” functionality.

Note: The first two things I need to implement are normally done for you in Cocoa. If you use Objective-C. Using AppleScript you either write a few dozen lines of Objective-C to do it (and there’s an article in a MacTech somewhere that tells you all about that), or you do it yourself. I’ve made some marginally clever approaches to creating new documents, so I have to do it myself. No big deal, I guess, but another thing to worry about.

Every day that I work on the project, getting it closer and closer to the end, I find things I left for myself to do, or places I forgot to clean up debugging code, or workarounds I have to remove because I found an easier way (these are nice though).

After I get rid of some of these backtracking type issues, I can move forward - Implementing more functionality (not much of this remaining).

Then come the bug reports of actual usage with big collections, or random configurations I hadn’t thought of. Making it work for me is one thing, making it work for other people is sometimes the trick (and, with Applescript, is often a big trick).