15,24c15 < how it's invoked from the OS. I think the best way to do this is to define < what files have to go where, and then say that the installation process can use < whateve helpful installation aids may exist, and we assume that the installer < has any privileges necessary for installation in system-protected places. <

< Don't forget to discuss how the server is installed along with the admin < program, and that system-level administrator priveleges may be necessary to < install such a server. What's described here is the behavior the server must < execute -- it's up to the implementors to figure out if such behavior requires < system administrator privileges, and if so deal with it accordingly. --- > how it's invoked from the OS. 26c17 < --- > 28c19 < 2.15.1. Installing the Calendar Tool --- > 2.15.1. Regular User Installation 32,134d22 < Talk (again, as necessary) about the Calendar Tool user directory, the < default name and location of which are ".CalendarTool", < stored in the user's home directory. Say home how directory is a platform- < specific idea, and if there is no such thing on the installed platform, then < the user will be asked to specify the name and location of the CalendarTool < working directory the very first time the Calendar Tool is invoked. <

< Bottom line -- when the app is invoked, it must know where to look for the < user's CalendarTool directory. Upon initial invocation, if such a directory is < not found, it will ask the user to create one. The generic default place for < this is ~/.CalendarTool, where "~" designates the platform-dependent "home" < directory for the user. This location can be explicitly specified in an < adminstirator-created distribution. If at initial invocation the app cannot < determine such a location for the invoking user, or if such a location exists < but is not read/write accessible to the user, then it prompts the user for the < directory path of where to put the CalendarTool directory (with an appropriate < msg indicating why it's asking (i.e., cannot figure out where "home" is or the < distribution-supplied (or expected) home does not exists or is not read/write < accessible)). <

< Since the user can subsequently change the location of her CalendarTool < directory, the app has to be built in such a way to make this possible. The < implementors can accomplish in any of the following ways, or some other way of < their choosing: <

< The bottom line is that the way in which the change of CalTool dir is < accomplished must remain transparent to all users in that any user can invoke < the tool in the normal way (clicking on icon, typing its name) and have the < directory location change made by that user be in effect. That is, < suppose users A and B are sharing the same copy of the Calendar Tool < application. If user A changes the location of her < CalendarTool directory to "X" and user B changes the caltool < directory location to "Y", the single copy of the shared copy of the < CalendarTool will use "X" or "Y" as the location of the CalendarTool directory, < when invoked by user "A" or "B", respectively. <

< Also, given that the `Admin->Distribution' command is gone now, < explain how an installer, admin or otherwise, can run the regular cal tool, < create calendars and/or a settings files, and include those with an < installation. These requirements don't say anything about fancy, easy-to-use < install tools, but if they're used, they can do shit like copy installation- < provided calendars or Settings files into the user's caltool dir. What we can < do in these requirements is explain the manual installation of extra shit, by < desribinng the OS-level file commands the the stupid motherfucking user can do < to copy the installer-supplied files to his caltool dir. <

< In conjunction with the precedinig paragraph, we may want to mention that < all of the place in the preceding scenarios where it says "by default, there < are no ..." is overridden with the installer provides a calenar or Settings < file that does define some pre-defined stuff. This is pretty much a duh, but < it's probably worth mentioning, just to keep the motherfucking implementors < aware and on the hook. <

< Probably old crap: When installed, the app is additionally configured < with the following info: <

<

< The application must be compiled for installation following appropriate < platform-dependent conventions as necessary. <

< To create an installable version of the program, these things are needed: <

    <
  • < a compiled version of the application that is configurable to allow the < location of the settings directory to be installed within the application, or < have the location of a file that contains the location settings directory be in < a well-known and accessible place. <
  • < write access to the directory where the app will be installed <
< < < <

< OK, here are the user-level steps to install the cal tool raw, with no < administrator-supplied distribution having been provided: <

    <
  1. < copy the Calendar Tool application program to the desired directory <
  2. < invoke it <
< This raw installation assumes that the Calendar Tool user directory, i.e., < where Settings, etc go, is < < < <

< Deal with the conflict resolution issues if one or more of items in a < custom distribution conflicting with extant items the user already has defined; < I think the best way to deal with that is to give the user an itemized list of < precisely what the conflicts are, and let her choose what to do about it. <

183c71 < 2.15.1.1. Implementor or Adminstrator Configuration of the Calendar Tool --- > 2.15.2. Implementor or Adminstrator Configuration of the Calendar Tool 194c82 < --- > 196c84 < 2.15.1.2. Platform-Specific File Locations --- > 2.15.3. Installation of the Calendar Tool on a Regular User's Local Computer 200,213c88 < Talk about conventions that may exist for standard placement of application < data files, and how platform-specific installation documentation must be < produced for any delivered product. Whatever platform-specific conventions may < exist, the following minimum file requirements must be met for all installed < platforms: ... (things like the names of files, and the general types of dirs < they must go in, e.g. "preferences" dirs). < < <

< 2.15.2. Invoking the Calendar Tool <

< <

< Points to include: --- > When installed, the app is additionally configured with the following info: 216,318c91 < Cover all uncovered points about the order in which things get done at start- < up, particularly wrt command-line (or equiv) file args. Do this in conjunction < with what's already done in < < Section 2.8.5, < < where there's a discussion of the what happens with `Settings' at < start-up, and also in conjuntion with < < Section 2.7.4.3, < < where there's a discussion of the "Effects of initial view settings when tool < is invoked with file arguments" (this is the title of a table there). <

< Here's a somewhat-outdated list of points on the order in which files are < handed at start-up, the outdatedness being in the mention of the no-longer- < existent Config and Init files: <

    <
  1. < Any command-line files that do not exist are created as new Calendar Tool < files, with the contents of the Options file copied into them. <
  2. < Any command-line files that exist as valid Calendar Tool files are opened, and < their default view windows are opened at window-manager-controlled positions. <
  3. < Any command-line files that are not valid Calendar Tool files or not otherwise < readable are ignored, with a warning dialog to this effect displayed on the < screen. <
  4. < If there's a Configuration file and it requires opening any of the < command-line files, these files a considered already opened. Even if multi- < window mode is on in a file's options, there is at most one default view window < opened for each file. If the positions of any of the command-line file default < view windows are specified in the Configuration file, the windows are < placed at those positions. The system then proceeds to process the rest of the < configuration file. In this way, the start-up configuration is the union of < the command-line files and the Configuration file. <
  5. < If there's an Initialization file, it is executed last. This means < that the Initialization file can override any of the configuration < performed as a result of command-line file specification and < Configuration file processing. E.g., the initialization file < could contain the command CloseAll to undo all of the command-line and < Configuration file processing. Since there are no window placement < commands in the Calendar Tool command language, there's no way to duplicate the < window-placement functionality of Configuration file. <
< Treat this list like fodder to be groomed as necessary, then off it to the < rationale, as usual. Also, most likely bill this section as a summary, given < that major points have been covered already in earlier sections. (There is in < fact a new text section on this summary/redundancy idea -- pretty cool, < actually.) <
  • < OK, one more motherfucking time. We really do need a global < `Initial View for New Calendars' in the global options dialog, because < there is no ``intial view for new calendars ... saved in the calenar-specific < component of the `Settings' file'' as it's phrase in the next < (bullshit) bullet. What I was thinking was that the cal-specific setting for < `Iniital View When Open' could be used for new calendars, but that < doesn't work, not least because we describe explicitly in the options section < that the initial-view-when-open setting happens for a (presumably) extant < calendar when it's opened, not for a calenar that is non-existent before the < New operation is complete. Get it, motherfucker?? <
  • < Bulshit Bullet: Hmm, lemmie see if I can get this right, and if so the next two < bullets are both bullshit. We don't need to include `Initial View for New < Calendars' in the (now new) global options dialog, because the intial view < for new calendars is whatever is saved in the calenar-specific component of the < `Settings' file. I think this is right. <
  • < Non-Bulshit Bullet: The immediately following bullet is bullshit, because the < now global setting for `Initial View for New Calendars' works < perfectly well for the new calendar created with when the cal tool is invoked < with no args. I.e., the new calendar created at argless invocation is exactly < the same kind of calendar as that created by `File->New', and thereby < subject to exactly the same rules for using `Settings'. <
  • < Bullshit Bullet: When invoked with no file arg(s), the initial view is the < month view for a new calendar, period. There are no options to change the view < level in the no-arg case. I think it's fine to say that having an option for < the view level really only makes useful sense when the user invokes with a < specific calendar, for which there is a settable initial view option. <
  • < Init file only invoked one time at start-up, not at each file open <
  • < Prev rule means no init file happens when other user's calendars are open. <
  • < Allow (?provide?) both command line and GUI invocation; with command line, args < specify files and options. With GUI invocation, calendar files are the one or < more selected for invocation. In either case, all open files are opened by the < tool. <
  • < The initial default calendar is an empty calendar named "unnamed"; this is < overridden by icon-based file invocation, command-line arg, or option < setting. <
  • < If no Settings file in caltool dir, ask user if she wants to create < one. Cal-specific values in the settings file are described in File section < for creating a new cal when no Settings file exists. <
  • < Deal with invocation after tool is already running, including double clicking < on an icon while tool is running. This seems to be quite environment-specific, < and we may want to say as much and keep things generic in these requirements. --- > the user's calendar tool directory 321,327c94 < <

    < 2.15.3. Installing the Calendar Tool Administration Program <

    <
    < < --- > 329c96,97 < 2.15.4. Invoking the Calendar Tool Administration Program --- > 2.15.4. Installation of the Calendar Tool Administration Program on a Central > Host 333c101 < --- > 335c103 < 2.15.5. Location of Calendar Tool Files (Probably Old Crap) --- > 2.15.5. Location of Calendar Tool Files 358c126 < --- > 360c128 < 2.15.6. Platform Dependencies --- > 2.15.6. Invoking the Calendar Once Installed 364,369c132,133 < OK, I think we probably need to talk about the potentially user-visible < platform dependenncies here, not just, or maybe not at all, in the development < overview section. See the NOTE at the top of that section. <

    < Among other things, there are the following issues: <

      --- > Points to include: >
        371c135 < command-line args versus clicking on icons --- > Init file only invoked one time at start-up, not at each file open 373,374c137 < environment vars, particularly ones that define default paths, as in, even more < particularly, the path to the start-up Setttings file --- > Prev rule means no init file happens when other user's calendars are open. 376,404c139,146 < the ways files are identified in different environments, including the whole < Windoze registry bullshit (if it still exists in XP or whatever the latest POS < is) <
    < While details are outdated, here's some fodder on this topic to be < groomed/nuked as appropriate: <
    <

    < Note that the value of the local files directory path, user settable via the < `File->Local Files' command, is stored in the application program < itself, not in a file. There's chicken-and-egg thing going on here [which I'll < explain a bit more in due course]. OK, fuck this shit, it's time to explain it < now. I think the way it has to work is for at installation time, and never < thereafter, the app is configured to look in a specific place for the < local-files file, which in turn has enough information to get things boot < strapped. It seems most akin to THE ~/.mh_profile, or ~/.emacs, or < ~/Library/Preferences/com.apple.mail.plist files. Now in UNIX, we can do < things like (1) have a list of places that an app will look, in addition to < just the "~" place; (2) use a command-line switch to override the default. I < think we should skip the command-line thing, and just say that at installation < time, the app is configured with the location of the local-files file, which < must stay there forever (for as long as a particular installation is to work), < which bootstraps into where the other local files are. Hence, I think the only < thing the the installation-time-established "known" file needs to have in it is < whatever info is settable by the Local Files command, i.e., either < just a directory path or a table that defines one-by-one where each necessary < file is; I'm leaning towards the former right about now, not the least reason < for such leaning being simplicity and cleanliness. <

    --- > Allow (?provide?) both command line and GUI invocation; with command line, args > specify files and options. With GUI invocation, calendar files are the one or > more selected for invocation. In either case, all open files are opened by the > tool. >
  • > The initial default calendar is an empty calendar named "unnamed"; this is > overridded by a command-line arg or icon-based file invocation. >