text:
|Publication number
|Publication type
|Application number
|Publication date
|Jan 12, 1993
|Filing date
|Apr 23, 1990
|Priority date
|Nov 17, 1987
|Fee status
|Also published as
|Publication number
|Wayne O. Evans
|Original Assignee
|International Business Machines Corporation
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (24), Non-Patent Citations (3), Referenced by (188), Classifications (8), Legal Events (6)
|External Links: USPTO, USPTO Assignment, Espacenet
This application is a continuation of the applicant's prior copending application Ser. No. 121,965 filed Nov. 17, 1987, now abandoned.
The present invention relates to operating system commands, and in particular to adopting to multiple versions of operating systems commands.
When a decision is made by a computer manufacturer to switch to a new operating system to take advantage of better hardware, better useability, new standards, etc., it is crucial that customers using the old operating system be able to run their application programs on the new operating system. This protects the customer's investment in their application software.
One way to solve this software compatibility problem is to use conversion programs, which take the source code of the customer application program, and convert it to run with the new operating system commands. A limitation of this method is that the source language statements have been lost, or do not exist for some applications. In addition, the conversion of source is often a lengthy process that slows the implementation of existing applications on a new system.
A further solution has been the implementation of multiple system environments by the computer maker. Existing interfaces (system commands available to a user) are maintained by keeping both the previous and new versions of operating system programs that perform a similar function. This method requires a user to select the environment that an application will use, as well as requiring the maintenance and storage of two or more sets of operating system programs. The user also can not integrate new function provided by the new operating system program into an existing application program without converting the entire application program to use the new operating system.
One example of the multiple system environment solution is found in U.S. Pat. No. 4,691,278 to Iwata, in which multiple system architectural modes are provided. A register contains a mode selector value. One instruction of a program will invoke a series of microinstructions which may be different for different modes. The starting address of microinstructions may vary for the same instruction depending on the mode selected for the program. Different sets of microinstructions must be maintained in this method.
A computer system is designed to dynamically adapt multiple versions of operating system commands to a single operating system. The single operating system is made up of multiple, command-processing programs for executing commands having a universal format. The operating system version desired by a user is identified either in an interactive session, or by an attribute in a program that the user desires to run.
Multiple versions of a given system command can be executed on the single operating system by having a command definition for each version of a command, which definition has universal parameters for all versions of the command. Each version of the command can then be transformed by the command definition for that version into a format acceptable to the universal, command processing program.
Multiple sets of command definitions are placed in separate storage directories called libraries. The libraries are then searched for each command definition when the corresponding command is to be processed. The order of search of the libraries is controlled based on the version of system commands desired.
A command definition consists of the name of the command processing program, and the parameter definitions that go with that program. The different versions of commands vary in the number of parameters, and hence, in the extent of function provided. Each version of a command is transformed by using its command definition. The command definition insures that the same number of parameters are passed to the command processing program. This is done by using constants for parameter values which are missing in different versions. Thus, only one operating system using its universal command processing programs runs the different versions of the same system command.
A user application generally consists of multiple application programs. Since each application program contains an attribute which defines the version of system commands desired, the application can contain a mix of application programs that use different versions of the operating system commands. If a user is gradually migrating to an enhanced version of the operating system, new application programs for the existing application can be written using the new version of system commands. The existing application programs in the application can be either rewritten one at a time to take advantage of the advanced functions, or left as is, using the older version of system commands.
A newer version of system commands which has enhanced function usually has a number of additional new commands. The new commands can be used in an application program which specifies the older version of system commands. This is because the library containing the older version of system command definitions will be searched first, and if the command is not found, the newer version of command definitions will be searched for the command. The first command definition matching the desired command is then processed. Therefore, a user need not convert an entire older application program to add the new function to it.
FIG. 1A is pictorial representation of how the invention adapts commands from various versions of an operating system to run in a single operating system.
FIG. 1B is the format of a command definition stored in the libraries of FIG. 1A.
FIG. 1C is the format of a command character string.
FIG. 2A is a data flow diagram of the preferred embodiment of the invention.
FIG. 2B is a flow chart of the QCL/QCMD programs show in FIG. 2A.
FIG. 3A and 3B is a flow chart of the operation of a command analyzer program 36 in FIG. 2A.
FIG. 4 is a generalized flow chart for the command processing programs 16 in FIG. 2A.
FIG. 5 is a flow chart of the operation of the compiler program 34 in FIG. 2A.
FIG. 6 block diagram showing the search order through the version libraries of system commands depending on the version attribute of the program being processed.
FIGS. 7A-7D, 8A-8D, and 9A-9D are examples of counterpart commands, their different versions of command definitions, and their different syntax.
FIG. 10 is a block diagram example of nested programs in an application programs which use multiple different versions of system commands.
As originally written, each application program would expect to use a particular version of system commands written for the program's original operating system. If one were to compare system commands from various operating systems, many system commands for one operating system will be similar to their counterpart commands in the other operating system. These counterpart systems commands may use the same or different command name and may use different parameters or a different number of parameters per command.
An example of a complete command set for an operating system can be seen in a manual for an IBM System/38 entitled IBM System/38 Control Language Reference Manual (SC21-7731) 1986. This command set is referred to hereinafter as the version 1 (V1) command set. A second command set including almost all of the approximately 500 version 1 commands, plus about 200 new commands is the version 2 (V2) command set. The version 2 commands which are similar to the version 1 commands may have the same name, or a different name. They may have more parameters, the same number of parameters, or fewer parameters.
FIG. 1A pictorially represents the use of command processing programs 16 to perform the task or tasks called for by system commands 11 irrespective of which set or version the command comes from. There is one command processing program 16 for each command 11. A command written for version 1, 2 or N can be processed by the same command processing program. (In a few cases, the function difference between counterpart commands is so different that each counterpart command has its own command processing program.) This is accomplished by transforming the command data to transformed data so that all counterpart commands in different versions have the same name and the same number of parameters.
Command analyzer program 36 performs the transformation based on a command definition for each counterpart version of a command. The counterpart command definitions have the same number of parameters and the same positional or sequential relationship between parameters from version to version. This universal format for counterpart command definitions is used to transform the actual command character string into a form compatible with the command's universal command processing program 16.
In FIG. 1A separate versions of system command definitions are stored in libraries 12, 14 and 15. A first version in library 12 is a set of definitions for system commands from a version of an operating system for the IBM System/38. The second version in library 14 is a set of command definitions of system commands for an enhanced version of the System/38 operating system. An "Nth" version in library 15 is a set of command definitions for system commands of a customized system or a future operating system and indicates that any number of versions may be used.
In FIG. 1A names of counterpart command definitions are shown in each version library. The Cancel Writer command definition 18 in library 12 uses the name CNLWTR. The same function is achieved by its counterpart command ENDWTR whose command definition 20 is stored in version 2 library 14 and counter part command STOPWTR whose definition 21 is stored in version N library 15. The command name in this example changes from version to version, but due to the counterpart definitions all of these commands will call the universal command processing program 16A named End Writer.
Create Job Queue uses the same name, CRTJOBQ, for each of its counterpart definitions 22, 23 and 24 in libraries 12, 15 and 14 respectively. For CRTJOBQ, the number of parameters in each definition is the same although the keywords are different. Clear Diskette command uses the same name, CLRDKT, for each of its counterpart definitions 25, 26 and 29 in the libraries, but each version of the command has a different number of parameters. These counterpart commands use different syntax and have different definitions in version 1 and version 2. They are shown in FIGS. 7-9 or are described in more detail hereinafter.
Create Control Language Program command uses the same name, CRTCLPGM, for each version and has different numbers of parameters in each of its counterpart definitions 27, 28 and 30 in the libraries. The command processing program for this command is compiler 34 whose function and operation will be described in detail in FIG. 5.
The actual format of command definitions and commands is shown in FIG. 1B and 1C respectively. In FIG. 1C, each command begins with the command name such as ENDWTR or CRTJOBQ. This is followed by a keyword and value for each parameter in the command. The entry sequence of the parameters is not important in the command, and the parameters in FIG. 1C are not arranged in the same order as those in the command definition in FIG. 1B. In FIG. 1C, the command definition format consists of the name of the command processing program to be called for execution and the parameter definitions for the command. The parameter definitions are used by the command analyzer 36 (FIG. 2) to interpret a received command character string containing the command and command parameters. The analyzer checks the syntax of the command string rearranges the sequence of parameters, and builds a pointer table to point to the parameter information to be used by the called command processing program. This process will be described in more detail hereinafter with reference to FIG. 2A.
The parameter definition elements stored for each parameter in each command definition in a version library are keyword, length, data type, default or constant, and mapping logic. The keyword identifies the parameter. The length specifies the legitimate length of the parameter. A parameter that exceeds its length boundaries will cause the command to be rejected. The data type specifies rules for the data which vary depending on whether the data type is name, decimal, binary, etc. Default specifies actual parameter values that will be inserted if the keyword for that parameter is missing from the command. A constant specifies a value that is inserted for a parameter by the system; a constant can not be inserted by the user. Mapping logic refers to a logical conversion of the parameter from a name to a value representing the name.
FIGS. 2A, 2B, 3A, 3B and 4 show a preferred embodiment of the invention which will run various versions of a command entered interactively or as a part of a selected program. A command is entered interactively at a terminal by a user typing the character string for the command and its parameters. One user, represented as interactive session 70, can be using version 1 commands in an interactive session, while at the same time and on the same system, a second user, represented as interactive session 72, can be issuing version 2 commands. The first user is issuing version 1 commands in a session controlled by a command entry screen program 74 named QCL. This program can be called by the user or preset by the system programmer at system definition, or pre-specified by the user so that it is called each time the user signs on through a workstation.
The QCL (or QCMD) program's function is to interface between the workstation display and the command analyzer program 36. QCL/QCMD programs are illustrated in FIG. 2B. When the operating system gives QCL control, QCL issues a receive message signal at step 102 which causes a message queue to pass the top message in its queue to QCL. Decision 104 branches the program flow depending on whether there is no message in the queue, the message is a command or the message is other than a command (error or diagnostic message for example).
If there is no message, step 106 causes a command entry screen to be displayed at the workstation. QCL then waits 107 for the user to enter a command. After the user responds with a command, QCL stores (108) the command in the message queue. The QCL program returns to receive message 102 and checks for messages in the queue at decision step 104. Since there is now a command in the queue, QCL branches to step 112. Step 112 passes the command character string and option information to the command analyzer 36 (FIG. 2A). The option information includes the version ID and an indicator that the command is to be executed. After the command and options are passed, QCL calls (114) the command analyzer program and then returns to receive message.
As part of this invention, if the message is a command, step 112 calls the command analyzer and step 114 passes to the command analyzer the command 112A and option 112B containing the version ID. If the program running is QCL, the version ID passed is Version 1. If the program running is QCMD, the version ID passed is Version 2. It will be apparent to one skilled in the art that rather than using different programs to pass version ID's, a single program might be used whose profile could be changed by the user or a system engineer to specify the desired version ID.
The last branch from decision 104 is "other message." If there is a message but it is not a command, steps 108 and 110 cause the workstation to display (116) the message. Again QCL program control returns to receive message step 102.
Regardless of which interactive session 70, 71 or 72 in FIG. 2A is run, the commands along with a V1, V2 or V"N" version indication are sent to the command analyzer 36, which then checks the commands for syntax and semantics in accordance with the command definition from the appropriate version library. As explained above, the version identification V1, V2 or V"N" is passed to the command analyzer and the analyzer is called by either QCL 74 or QCMD 76. Command analyzer 36 searches the appropriate library or libraries 80, 81 or 82 for the command definition.
Command analyzer 36 uses the parameter definitions from the stored command in the appropriate library and the actual parameters in the command character string passed by QCL or QCMD. The analyzer checks the command string for correct semantics and syntax with the parameter definitions. If the string contains a error, an error message is returned to the QCL 74 or QCMD 76 for display at the users workstation. If the string is correct, the command analyzer builds a pointer table 84 which will be used by the command processing program to execute the command.
Pointer table 84 is built according to the predefined sequence of parameters, PARM 1 through PARM X, in the command definition for the command being analyzed. Each entry in the table will point to the storage location in memory work area 86 where the parameter information, received with the command character string or added by the command analyzer, is stored. Pointers to constant or default parameters are added to table 84 and parameter data is added to work area 86 in accordance with parameter definition from the library so that the command from the selected version is compatible with the command processing program.
After command analyzer 36 has built the pointer table, program control passes to the selected command processing program 16. When control is transferred, command analyzer program is dropped from an invocation stack of programs so all messages from the command processing program go to QCL or QCMD. The command processing program (CPP) retrieves the parameters pointed to by the pointer table 84 and executes the command. Then CPP returns appropriate messages to the QCL for display to the user at the workstation.
Another source of commands to be processed is stored programs. The source code for programs written for various versions of an operating system would be typically stored on disk files. In FIG. 2A, three source code versions of programs are indicated at 31, 32 and 33. They could be the same or different programs. The source statements at 31 are written for version 1, source statements at 32 are written for version 2, and source statements at 33 are written for version N program. Before these source code programs can be run they must be compiled.
To compile a program, the user enters the CRTCLPGM (create control language program) command specifying the parameter that identifies the source program to be compiled. The CRTCLPGM command version is identified by option tag being passed by the QCL or QCMD program through which the user entered the CRTCLPGM. The option tag also indicates the CRTCLPGM command processing program is to be executed.
As with any other command, command analyzer 36 retrieves the command definition for CRTCLPGM from the version ID in the option tag. The analyzer then builds the pointer table 84 and parameter data in work area 86 for the CRTCLPGM. When the pointer table and parameter data are complete, the CRTCLPGM program is called for execution. The parameter data for the CRTCLPGM command specifies a constant that indicates the version of the source statements file being compiled.
The CRTCLPGM command program is different from the other command processing programs 16 in that CRTCLPGM's program is the compiler program 34. Compiler 34 then runs using the pointer table and parameter data built from the parameters and parameter definitions for CRTCLPGM.
The flow chart for compiler 34 (CRTCLPGM command processing program) is shown in FIG. 5. The compiler at step 200 gets the input parameters from the work area using the pointer table. The parameters include:
Name of Program 200A which is being created (usually same name as the source code file being compiled);
Name of source file 200B whose code is being compiled;
Version number or identifier 200C which indicates the version of commands to be used in compiling the source code for the program being created and compiled.
Compiler 34 opens 212 the source file 31, 32 or 33 identified by the 200B parameter. The compiler reads 214 the source file until a complete command (source statement) can be passed to the command analyzer. Decision 216 tests to see if the end of the source file has been reached. If not, program flow passes to step 218.
At 218 the single command read from the source file is moved into the temporary parameter storage area. The option is set to compile only and the command analyzer is called 220. The command analyzer scans the command character string and creates a parsed and validated form of the command that is returned to the compiler 34. If errors are found in the statement, the occurrence of an error is noted for future reference at steps 232 and 234 and decision 222 returns the flow to step 214 to read the next statement. If no errors were found by the command analyzer decision 222 branches the flow to step 224 where the compiler expands the parsed form of the command into program instructions for the command. The program instructions are then stored 225 at the compiled version 38, 39 or 40 of the program being created. In most cases, program instructions are simply the parsed form of the command.
The compiler continues to read 214 source statements until the end of file is detected for the source file. When end of file is detected 216, then the compiler closes 230 the source file. If decision 232 indicates there are errors in the source, a message is issued by step 234 to the caller, QCL or QCMD, and no program is created.
If no errors were detected during processing of the source, the compiler will create the program at step 236 using input parameter 200A as the name for the compiled program. The version ID 200C is also stored in the compiled program so that, when the program is called, it can pass the version ID to the command analyzer. Storing the version ID as a part of the program allows one version program to call another version program. Thus system will dynamically adapt to the version stored in the program.
When a program is selected for execution, the compiled version is run through the command analyzer again. This time, the option information indicates "execute." As each command is processed, the command analyzer 36 transforms the character string data, loads the parameter data in the work area 86, builds the pointer table 84 and calls the named command processing program 16.
Program control passes to the named command processing program 16. The command processing program (CPP) uses the pointer table, retrieves the parameters pointed to, and executes the command. Then CPP returns appropriate messages to the compiled program 38, 39 or 40 that is being run. When the CPP returns control to the compiled program, the next command is sent to the command analyzer for execution. However, if there is an error in execution, the message back to the compiled program may cause the program to send an error message back to QCL or QCMD for display to the user at the workstation.
The operation of command analyzer program 36 is shown in more detail in FIG. 3A and 3B. The program starts by retrieving (120) the command character string and the option tags (version ID, compile, execute). Decision 122 branches the program flow according to the version ID to one of the parse routines 124, 126 or 128. The selected parse routine splits the command character string into words and interprets those words according the syntax rules of the selected version V1, V2 and V"N".
After the command has been parsed into its parameters, the program searches the appropriate version library (step 130, 132 or 134) for the command definition of the command being processed. If the command definition is found in the selected version library, decision 138 would branch program flow to step 142 in FIG. 3B which then retrieves the definition from the library. If the command definition is not found in the selected library, then decision 138 branches the program flow to search routine 144.
Search routine 144 searches for the command definition in various libraries. The libraries are searched sequentially according to their sequence in the library list. The libraries and the list are built be the user. The user may choose to have one list or a plurality of lists with each list having a different sequence of libraries. The list could be selected based on the version ID.
For example, a command indicated as from version 2 by decision 122 but not found in the version 2 library at step 132 could use search routine 144 to search libraries according the version priority--V1 library, V"N" library, User library 1, User library 2, etc. This priority or sequence of listed libraries could be different for each version and could be selected as a function of version ID in the same way that decision 122 selected the first library to be searched.
Logical search order for version libraries is shown in FIG. 6. When a program has a program attribute indicating that version 1 programs are to be run, the search order of the libraries is as indicated at 60. The version 1 library is first searched. If the command that is searched for is not found in the version 1 library 12, the version 2 library 14 is searched. Then, if still not found, a first user library is searched, then a second. A user library is a library which is specified by the user, and usually contains user application programs, files, commands, and other objects.
If the program attribute indicates that the program is a version 2 program, the library search order for that program is the order of libraries indicated at 62 in FIG. 6. Note that the first version of the command definitions is not searched for a version 2 program. This is because in the particular embodiment, some version 2 commands have the same name as the version 1 commands. In order to ensure that the version 2 command is actually processed, it is necessary to search the version 2 library first.
The search order of libraries is controlled by the first library specified by the version ID and searched at steps 130, 132 and 134 and by subsequent libraries in a library list. The library list 63 in FIG. 6 which is generated for each program. The library list in FIG. 6 is the same type of structure which was used on a System/38. It contains a list of the pointers to libraries to be used by the system when running the program it is associated with. The list is determined by the customer application.
Returning to FIG. 3A, if search routine 144 is successful, decision 146 branches program flow to step 142 in FIG. 3B to retrieve the command definition. If the search routine is not successful, program flow branches to step 148 which sends an error message back to the caller. The caller may be QCL, QCMD or the program being compiled or executed.
FIG. 3B shows how the command analyzer program processes the command character string after the analyzer has found the command definition. After retrieval of the definition at step 142, validation routine 150 checks the command against the definition. Validation consists of verifying each word of parameter data against the definition for that parameter in the command definition. As described earlier with reference to FIG. 1B, each parameter is defined by a keyword, length, data type, default or constant, and mapping logic. Validation also includes a check that all required parameters are specified and that no parameter is specified more than once.
Validation routine 150 checks each parameter in the command character string against the definition for that parameter. Routine 150 successively takes each parameter from the command definition and checks for the corresponding parameter in the command character string by looking for the parameter's keyword. If a keyword has no value entered with it, validation routine will designate the default value for that keyword from the parameter definition. If a keyword is missing from the command, the validation routine will insert from the command definition the default value for the missing parameter. Each parameter is temporarily stored in a sequence corresponding to the sequence of parameters in the command definition.
If the parameter data does not check out with its definition, then decision 152 branches the program to step 154. Step 154 sends an error message back to the calling program, and program control returns to the calling program.
If there is no error in the parameters of the command, decision 152 causes a branch to decision 156. Decision 156 will branch the program flow one of two ways depending on whether the option information passed with the command indicates the command is to be executed or compiled. If it is being compiled, program control returns to the compiler. If it is being executed, control passes to loop 158 that builds pointer table 84 (FIG. 2A).
Loop 158 transform the validated command character string, now including defaults and constants, into parameter data for use by the command processing program. Further the loop builds the pointer table to point to storage location of the data making up each parameter. Before entering the loop, the command analyzer program sets (160) its own pointer to point to the first parameter in the command definition. Decision 162 tests the pointer to see if the pointer indicates that the last parameter in the command has been processed. If not the program control passes to the transformation routine 164.
Transformation routine 164 retrieves the parameter definition pointed to and the corresponding validated value for the parameter as temporarily stored by the validation routine. The transformation routine 164 uses the parameter definition to convert the parameter's value to a form expected by the command processing program as indicated by the command definition. Based on the definition of the parameter, the parameter data may be padded with blanks so it has the correct length, or it may be converted to another form of data based on the mapping logic. Thus, each parameter definition causes transformation routine 164 to generate transformed parameter data for each parameter called for in the command definition.
After the transformed parameter data is generated, it is stored (166) in work area 86 (FIG. 2A) of memory. Thereafter, the command analyzer program generates and stores (168) a command processing program (CPP) pointer in pointer table 84 (FIG. 2A). The parameter is now ready for the command processing program so the next parameter can be processed by loop 158.
To get to the next parameter definition, each parameter definition ends with a pointer to the beginning of the next parameter definition. In loop 158 at step 170, the program get the next parameter definition (PD) pointer and the program loops back to decision 162. If the PD pointer is zero, decision 162 knows the last parameter definition has been processed and program control is passed (172) from the command analyzer program to the command processing program. If the PD pointer points to the next parameter definition, transform routine 164 again proceeds to convert the parameter from the character string to a form compatible with the command processing program.
Each command processing program is different depending upon the functions it is intended to execute. Thus a general flow chart of these programs can only be done at a high level as illustrated in FIG. 4. The CPP uses the pointer table and to get 176 the transformed data. This is done for all parameters in the command. After all the transformed parameter data has been retrieved, decision 178 determines if all the objects, such as devices, files, commands, programs, etc., exist. If they do, program flow branches to step 180. The command is then executed using all of the parameter data. Thereafter program control returns to the command source, QCL, QCMD or the compiled program being run. If one or more objects does not exist in the system, decision 178 branches the flow to step 182. Step 182 sends an error message back to command execution requester, QCL, QCMD or the compiled program.
When the version 1 command CNLWTR (Cancel Writer) indicated at 18 (FIG. 1A), is used by a program or interactive user session, its command definition, see FIG. 7A, is accessed from the version 1 library 12, and sent on to the command processing program 16A for processing. The command processing program is independent of the name of the command, so either name, CNLWTR or ENDWTR performs the same functions.
The CNLWTR and ENDWTR command definitions are shown in FIG. 7A and 7B. The purpose of these commands is to end spooling writers and make their associated output devices available to the system. In both versions, a writer can be ended immediately or in a controlled manner by use of the OPTION keyword which has potential values of CNTRLD (controlled), IMMED (immediate) and PAGEEND. If ended immediately, the writer stops writing the file and the file is made available again on the output queue. If ended in a controlled manner, the writer finishes writing the current file (or a copy of a file), or it finishes printing a page of the file, before it is ended. The version 2 command ENDWTR has added function. It can now specify that all writers on the system should be ended, or a tuning parameter can be used to end some of the writers. The version 1 command could only identify the writer-name as a value for the keyword WTR.
FIG. 7C illustrates the syntax of the Version 1 CNLWTR. WTR is a required parameter and the user must enter a device name after the keyword WTR when using the command. Option is an optional parameter which uses the default value *CNTRLD when the user does not enter the key word.
FIG. 7D illustrates the syntax of the Version 2 ENDWTR. In addition to the name change, more values are available for the WTR parameter in Version 2.
A pair of commands having the name CRTJOBQ (Create Job Queue) are also illustrated in the command definition libraries in FIG. 1A at 22 and 24 in their respective libraries. While the name is the same for both versions, the parameters are quite different as can be seen in FIG. 8A and 8B. A complete description of the version 1 command and its parameters appears in the above referenced System/38 manual.
The CRTJOBQ command creates a new job queue. A job queue contains entries for jobs that are to be processed by the system. Some of the commands which manipulate jobs in the queue are Submit Job (SBMJOB), Submit Data Base Jobs (SBMDBJOB), Submit Diskette Jobs (SBMDKTJOB), and Transfer Job (TFRJOB). In FIG. 8A and 8B, the command definitions for both versions of the CRTJOBQ command show the differences. The first change to be noted is that the keyword "job-queue-name" appears after the keyword value "library-name/". Thus, the name of the job queue in the version 1 commands looks like "OBJ.LIB", while in the version 2 command set, the name of the queue looks like "LIB/OBJ". The difference in the name syntax is handled by the different parse routines (124,126) in FIG. 3A.
The default value for the library name is QGPL in version 1 and CURLIB in version 2. Further changes were made in optional keywords and their values. The keyword PUBAUT in version 1 was changed to AUT in version 2. Note that the values were also changed, with only the ALL value being the same between them. The parameters are passed to the command processing program positionally without the keyword names as indicated in FIG. 12. Thus, the keyword names are independent of the command processing program.
FIG. 8C and 8D show the differences in syntax between the version 1 and version 2 CRTJOBQ command. The default for library changed from QGPL to *CURLIB. Library name convention change from XXX.lib to lib/xxx. The keyword PUBAUT changed to AUT. Finally, the number of values from PUBAUT to AUT also changed.
A pair of commands having the name CLRDKT (Clear Diskette) are also illustrated in the command definition libraries at 25 and 26 (FI. 1A) in their respective libraries. While the name is the same for both versions, the parameters are quite different as can be seen in their command definitions in FIG. 9A and 9B. Constants were used in the second version of the command to make the number of parameters compatible for running on command processing program 16C (FIG. 1A). The constants are added at design time, and are transparent to the user. This allows the "LOC and SUFFIX" keywords to be hidden on the second version. In other words, an application, which contains several programs written in the version 1 command set will operate without change in a computer having both the version 1 and version 2 command sets.
The version 1 CLRDKT command deletes all files, active and inactive, from one or more diskettes by deleting data file identifiers from the diskette label area on each diskette. In the version 2 command, the keywords LOC and SUFFIX which appear in the version 1 command were dropped. The keyword LOC is given the constant of *S1 (meaning slot 1, a physical location in the computer system) in its internal description in the version 2 library. The keyword SUFFIX is given a constant of *NO in the version 2 command. The command processing program corresponding to the command will expect 5 parameters, DEV, LOC, VOL, CHECK and SUFFIX and therefore these are the give parameters in the command definitions in FIG. 9A and 9B.
FIG. 9C and 9D show the differences in syntax between the version 1 and version 2 CLRDKT command. Keyword DEV only exists in version 2, and keywords LOC and SUFFIX only exist in version 1. Also there are different defaults on VOL keyword. Also note that the constants added in the version 2 command definition FIG. 9B are not visible to the user.
The following is a simplified version of the CLRDKT command for both versions. The use of constants is shown. The "--" in Table 1 below shows where user input is allowed.
__________________________________________________________________________Keyword Version 1 Version 2__________________________________________________________________________DEV CONSTANT-QDKT --LOC -- CONSTANT=(*S1 *FIRST *LAST)VOL -- --SUFFIX -- CONSTANT=*NO__________________________________________________________________________
The details of what is passed for each parameter are described in the IBM System/38 Programmers Guide (1986) Tenth edition, chapter 14. An example for the CLRDKT command follows below. This example uses the keyword SPCVAL (special value) to identify mapping logic. A special value, mapping logic, shows how external terms are mapped to internal values expected by a program.
When *LAST is specified the program gets a -5
When *ONLY is specified the program gets a -3
The command processing program is independent of the words *LAST and *ONLY. The use of special value allows the external terms to change without affecting the application program. All of the mapping of parameters and special values are handled by the command analyzer so that the parameters the command processing program gets are converted values based on the mapping logic.
The example for version 1 of the CLRDKT command follows:
For version 2 of the CLRDKT command:
Referring to FIG. 10, The invention is easily expandable into more that two versions of command sets. Three or more versions can be accommodated by having a large enough program attribute field. The logical arrangement of the versions of libraries permits searching any version library first. Since each program has its own attribute, an application can have programs using many different versions of command sets.
In FIG. 10, an application is shown having an entry program using version 1, at block 181. The entry program can invoke program 183, which has a program attribute indicating that it is a version 2 program. A further program 185 invokable by program 181 is using version 3. Program 185 can itself invoke a program 187 which is written in version 2. There is no conceptual limit to the nesting of programs written in different command sets using the present invention.
A huge financial investment in an application written in version 1 need not be converted to version 2 or 3. It can even have additional programs added to it which are written in a version which contains more advanced function. At the users leisure, the application can be rewritten one program at a time, thus gaining improved performance in steps, rather than revising the entire application all at one time.
|Cited Patent
|Filing date
|Publication date
|Aug 11, 1971
|Mar 20, 1973
|Data processing subsystems
|Nov 23, 1973
|Dec 30, 1975
|Raytheon Co
|Format insensitive digital computer
|Apr 24, 1974
|Jun 21, 1977
|Honeywell Information Systems, Inc.
|Emulation of target system interrupts through the use of counters
|Sep 2, 1977
|Apr 22, 1980
|Sperry Corporation
|Microprogrammable computer utilizing concurrently operating processors
|Sep 24, 1979
|Jul 10, 1984
|Control Data Corporation
|Plural microcode control memory
|Apr 26, 1982
|Apr 30, 1985
|International Business Machines Corporation
|Methods for partitioning mainframe instruction sets to implement microprocessor based emulation thereof
|Feb 23, 1982
|Aug 6, 1985
|International Business Machines Corporation
|Peripheral systems accommodation of guest operating systems
|Sep 24, 1981
|Sep 3, 1985
|Evans & Sutherland Computer Corp.
|Command language system for interactive computer
|Feb 28, 1985
|Mar 10, 1987
|International Business Machines Corp.
|Device driver and adapter binding technique
|Sep 20, 1983
|Mar 31, 1987
|Fujitsu Limited
|Multiprocessor system including firmware
|Sep 10, 1984
|May 19, 1987
|501 Philon, Inc.
|Compilers using a universal intermediate language
|Apr 23, 1985
|Sep 1, 1987
|Nec Corporation
|Data processor executing microprograms according to a plurality of system architectures
|Oct 23, 1984
|Dec 8, 1987
|Hitachi, Ltd.
|Table driven translator
|May 3, 1984
|Jan 5, 1988
|International Business Machines Corporation
|Distributed control of alias name usage in networks
|Aug 29, 1985
|Jan 26, 1988
|Ncr Corporation
|Prefetch circuit and associated method for operation with a virtual command emulator
|Oct 8, 1985
|Apr 5, 1988
|Foxboro Company
|Computer language structure for process control applications, and translator therefor
|Apr 18, 1983
|Jun 7, 1988
|Motorola, Inc.
|Method and apparatus for executing an instruction contingent upon a condition present in another data processor
|Oct 15, 1985
|Jul 5, 1988
|International Business Machines Corporation
|Interpreter program for providing commands to a computer application program
|Jan 8, 1987
|Nov 1, 1988
|Hitachi, Ltd.
|Time-sharing computer system operable in a host TSS mode and a terminal TSS mode
|Sep 3, 1985
|Nov 22, 1988
|Ncr Corporation
|Multicommunication protocol controller
|Dec 12, 1986
|Nov 29, 1988
|American Telephone And Telegraph Company
|Communication system having reconfigurable data terminals
|Aug 26, 1985
|Feb 6, 1990
|American Telephone And Telegraph Company, At&T Bell Laboratories
|Test interface circuit which generates different interface control signals for different target computers responding to control signals from host computer
|Jul 24, 1985
|Jan 29, 1986
|Casio Computer Company Limited
|Layout display device of electronic printer
|Title not available
|IBM Tech Discl. Bulletin, vol. 28, No. 1, pp. 305 306, Jun. 1985 Fully Microcode Controlled Emulation.
|IBM Tech Discl. Bulletin, vol. 28, No. 1, pp. 305-306, Jun. 1985 Fully Microcode-Controlled Emulation.
|IBM Tech. Discl. Bulletin, vol. 15, No. 3, Aug. 1972, p. 920 by J. C. Kemp Instruction translator.
|Citing Patent
|Filing date
|Publication date
|Jun 25, 1990
|Jan 4, 1994
|Hewlett-Packard Company
|ANDF producer using the HPcode-Plus compiler intermediate language
|Jun 25, 1990
|Jan 18, 1994
|Hewlett-Packard Company
|ANDF installer using the HPcode-Plus compiler intermediate language
|Oct 4, 1991
|Jan 18, 1994
|Digital Equipment Corporation
|Automatic program code generation in a compiler system for an instantiation of a generic program structure and based on formal parameters and characteristics of actual parameters
|Sep 16, 1991
|Oct 18, 1994
|Pitney Bowes Inc.
|System for recording structured read only data table revisions and forming a directory to the latest revisions of table elements
|Oct 9, 1992
|Feb 14, 1995
|American Airlines, Inc.
|Method and apparatus for developing scripts that access mainframe resources that can be executed on various computer systems having different interface languages without modification
|Oct 13, 1992
|May 2, 1995
|Novell, Inc.
|System for permitting a view of an object or a user interface to be exchanged between operating system environments
|May 10, 1994
|Jul 4, 1995
|Microsoft Corporation
|Method for revising a program to obtain compatibility with a computer configuration
|May 15, 1991
|Jul 11, 1995
|Digital Equipment Corporation
|System for reporting errors of a translated program and using a boundry instruction bitmap to determine the corresponding instruction address in a source program
|Aug 7, 1991
|Oct 17, 1995
|Abbott Laboratories
|Indole derivatives which inhibit leukotriene biosynthesis
|Jun 28, 1993
|Oct 31, 1995
|Digital Equipment Corporation
|Object oriented computer architecture using directory objects
|Nov 12, 1993
|Dec 12, 1995
|Matsushita Electric Corporation Of America
|Apparatus and method for certifying the delivery of information
|Sep 28, 1994
|Dec 12, 1995
|Taligent, Inc.
|Wrapper system for interfacing an object-oriented application to a procedural operating system
|Aug 4, 1994
|Sep 17, 1996
|International Business Machines Corporation
|Apparatus which allows data sharing amongst computer program from different program environments
|Feb 8, 1991
|Nov 26, 1996
|International Business Machines Corporation
|Apparatus and method for verifying compatibility of system components
|Dec 21, 1994
|Jan 7, 1997
|Hughes Aircraft Company
|Method and apparatus for processing messages having arbitrary message structures witha message processor that is conditioned with a graphical user-defined message structure
|Jun 1, 1995
|Mar 25, 1997
|Digital Equipment Corporation
|Object oriented computer architecture using directory objects
|Nov 4, 1994
|Apr 8, 1997
|Ball Corporation
|Run-time dynamically adaptive computer process for facilitating communication between computer programs
|Dec 28, 1994
|Jul 29, 1997
|Digital Equipment Corporation
|System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
|Oct 7, 1994
|Sep 30, 1997
|Bull Hn Information Systems Inc.
|Method and apparatus for emulating the operations of an emulated system terminal driver on a host system
|Sep 27, 1994
|Oct 28, 1997
|Telefonaktiebolaget Lm Ericsson (Publ)
|Updating software within a telecommunications switch without interrupting existing communication and neither moving nor converting data
|Jun 6, 1995
|Mar 10, 1998
|Canon Kabushiki Kaisha
|Memory access method using intermediate addresses
|Jul 6, 1992
|Apr 28, 1998
|Microsoft Corporation
|Method and system for accessing a file using file names having different file name formats
|Mar 2, 1994
|Jun 9, 1998
|Digital Equipment Corporation
|System and method for automatically interfacing call conventions between two dissimilar program units
|Dec 3, 1996
|Jun 9, 1998
|International Business Machines Corporation
|System for multiple co-existing operating system personalities on a microkernel
|Mar 22, 1996
|Jun 16, 1998
|Connectix Corporation
|Dynamic cross-compilation system and method
|Apr 9, 1997
|Jul 7, 1998
|Ncr Corporation
|Intelligent resource transformation engine for translating files
|Jul 22, 1996
|Aug 11, 1998
|Bell Communications Research, Inc.
|Method and system for dynamic interface contract creation
|Dec 19, 1996
|Oct 27, 1998
|Raytheon Company
|Hybrid processor and method for executing incrementally upgraded software
|Feb 7, 1995
|May 4, 1999
|Fujitsu Limited
|Data processing terminal which determines a type of an external device
|May 21, 1998
|Jul 27, 1999
|Hudson Soft Co. Ltd.
|Method for storing a program into an auxiliary memory
|Oct 1, 1997
|Aug 31, 1999
|Motorola, Inc.
|Speaker independent speech recognition system and method
|Mar 10, 1997
|Sep 7, 1999
|International Business Machines Coporation
|Method and apparatus for profile-based reordering of program portions in a computer program
|Mar 19, 1997
|Sep 28, 1999
|International Business Machines Corporation
|Software profiler with runtime control to enable and disable instrumented executable
|Jul 23, 1997
|Oct 12, 1999
|International Business Machines Corp.
|Hosted machine code installation
|Mar 19, 1997
|Feb 15, 2000
|International Business Machines Corporation
|Method and apparatus for profiling indirect procedure calls in a computer program
|Mar 17, 1997
|Feb 22, 2000
|International Business Machines Corporation
|Method and apparatus for modular reordering of portions of a computer program based on profile data
|Jan 9, 1997
|Mar 7, 2000
|Sony Corporation
|Information processing apparatus having an initializing emulation program to provide compatibility between different models
|Nov 26, 1997
|May 30, 2000
|Deutsche Thomson-Brandt Gmbh
|Apparatus for processing a sequence of control commands as well as a method for generating a sequence of control commands, and storage medium for storing control commands
|Oct 12, 1995
|Aug 29, 2000
|International Business Machines Corporation
|Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs
|Oct 16, 1998
|Jan 9, 2001
|Peter A. Klein
|Method and system for compiling source code containing natural language instructions
|Aug 26, 1998
|Aug 14, 2001
|Object Technology Licensing Corp.
|Object-oriented operating system
|Dec 7, 1998
|Oct 30, 2001
|Lsi Logic Corporation
|Alterable scripting tool and method
|Feb 10, 1997
|Jan 29, 2002
|International Business Machines Corporation
|Digital computer system using embedded comments to manipulate virtual controller functions
|Nov 5, 1998
|Feb 26, 2002
|Object Technology Licensing Corporation
|Object-oriented operating system
|Dec 4, 1995
|Jun 11, 2002
|International Business Machines Corporation
|Method and apparatus for subclassing system object model classes in dynamic languages
|Nov 22, 2000
|Sep 17, 2002
|Peter A. Klein
|Method and system for compiling source code containing natural language instructions
|Dec 7, 1998
|Oct 8, 2002
|Lsi Logic Corporation
|Scripting method and apparatus for testing devices
|Jun 7, 1995
|Feb 11, 2003
|Microsoft Corporation
|Compiler and method for automatically building version compatible object applications
|Jan 21, 1999
|May 6, 2003
|Fujitsu Limited
|Data processing terminal
|Aug 20, 1999
|Aug 12, 2003
|Taligent, Inc.
|Object-oriented interface for portability to diverse operating systems or hardware platforms
|May 3, 1995
|Dec 9, 2003
|Siemens Aktiengesellschaft
|Data management system of a real-time system
|Aug 29, 1995
|Jan 27, 2004
|Object Technology Licensing Corporation
|Object-oriented operating system
|Jun 21, 2000
|Dec 26, 2006
|Microsoft Corporation
|User interface for integrated spreadsheets and word processing tables
|Jun 11, 2003
|Jan 23, 2007
|Microsoft Corporation
|Building a view on markup language data through a set of components
|Jun 21, 2000
|Mar 13, 2007
|Microsoft Corporation
|Authoring arbitrary XML documents using DHTML and XSLT
|Jun 30, 2003
|Mar 27, 2007
|Microsoft Corporation
|Declarative solution definition
|Mar 24, 2003
|Sep 25, 2007
|Microsoft Corporation
|System and method for designing electronic forms and hierarchical schemas
|May 26, 2004
|Oct 9, 2007
|Microsoft Corporation
|Form template data source change
|Nov 25, 2003
|Nov 13, 2007
|Microsoft Corporation
|Validation of XML data files
|Feb 19, 2004
|Jan 8, 2008
|Microsoft Corporation
|Managing XML documents containing hierarchical database information
|Aug 6, 2003
|Feb 19, 2008
|Microsoft Corporation
|Electronic form aggregation
|Feb 11, 2005
|Mar 18, 2008
|Microsoft Corporation
|Methods and systems of providing information to computer users
|Jun 21, 2000
|Mar 18, 2008
|Microsoft Corporation
|Single window navigation methods and systems
|Sep 16, 2004
|Mar 25, 2008
|Microsoft Corporation
|User interface for integrated spreadsheets and word processing tables
|Apr 12, 2005
|Apr 15, 2008
|Microsoft Corporation
|Methods and systems of providing information to computer users
|Mar 24, 2003
|May 6, 2008
|Microsoft Corporation
|System and method for offline editing of data files
|Nov 26, 2003
|May 20, 2008
|Microsoft Corporation
|Offline editing of XML files using a solution
|Sep 29, 2004
|Jun 24, 2008
|Microsoft Corporation
|Architectures for and methods of providing network-based software extensions
|Aug 1, 2003
|Jul 29, 2008
|Microsoft Corporation
|Mapping between structured data and a visual surface
|May 4, 2004
|Aug 12, 2008
|Microsoft Corporation
|User interface for integrated spreadsheets and word processing tables
|Mar 24, 2003
|Aug 19, 2008
|Microsoft Corporation
|System and method for designing electronic forms
|Aug 27, 2003
|Sep 9, 2008
|Object Technology Licensing Corporation
|Object-oriented operating system
|Feb 17, 2004
|Sep 30, 2008
|Microsoft Corporation
|Systems and methods for editing XML documents
|Dec 20, 2004
|Oct 14, 2008
|Microsoft Corporation
|Scalable object model
|Nov 26, 2003
|Nov 11, 2008
|Microsoft Corporation
|Rendering an HTML electronic form by applying XSLT to XML using a solution
|Mar 6, 2006
|Feb 10, 2009
|Microsoft Corporation
|System and method for offline editing of data files
|Apr 29, 2004
|Feb 24, 2009
|Microsoft Corporation
|Structural editing with schema awareness
|Oct 8, 2004
|Mar 17, 2009
|Microsoft Corporation
|System and method for integrating spreadsheets and word processing tables
|Oct 9, 2004
|Mar 17, 2009
|Microsoft Corporation
|System and method for integrating spreadsheets and word processing tables
|Nov 16, 2004
|Mar 24, 2009
|Microsoft Corporation
|Methods and systems for exchanging and rendering forms
|Jul 23, 2004
|Mar 31, 2009
|Microsoft Corporation
|Task-sensitive methods and systems for displaying command sets
|Mar 31, 2003
|Apr 7, 2009
|Microsoft Corporation
|System and method for incrementally transforming and rendering hierarchical data files
|Sep 30, 2004
|Apr 7, 2009
|Microsoft Corporation
|Structured-document path-language expression methods and systems
|Jun 25, 2004
|May 12, 2009
|Microsoft Corporation
|Digital signature with an embedded view
|Jun 27, 2005
|Jun 2, 2009
|Microsoft Corporation
|Template for rendering an electronic form
|Oct 8, 2004
|Jun 16, 2009
|Microsoft Corporation
|System and method for integrated spreadsheets and word processing tables
|May 13, 2004
|Jul 28, 2009
|Microsoft Corporation
|Digital signatures with an embedded view
|Aug 1, 2003
|Aug 25, 2009
|Microsoft Corporation
|Conversion of structured documents
|Nov 15, 2004
|Sep 1, 2009
|Microsoft Corporation
|Role-dependent action for an electronic form
|Jul 23, 2004
|Oct 27, 2009
|Microsoft Corporation
|Task-sensitive methods and systems for displaying command sets
|Nov 3, 2009
|Microsoft Corporation
|Enabling selection of an inferred schema part
|Jun 21, 2000
|Nov 24, 2009
|Microsoft Corporation
|Task-sensitive methods and systems for displaying command sets
|Sep 16, 2004
|Mar 2, 2010
|Microsoft Corporation
|User interface for integrated spreadsheets and word processing tables
|Mar 9, 2010
|Microsoft Corporation
|Executing applications at appropriate trust levels
|Mar 30, 2010
|Microsoft Corporation
|Methods and systems of providing information to computer users
|Apr 6, 2010
|Microsoft Corporation
|Systems and methods for handwriting to a screen
|Nov 15, 2004
|May 4, 2010
|Microsoft Corporation
|Mutually exclusive options in electronic forms
|Jul 23, 2004
|May 4, 2010
|Microsoft Corporation
|Task-sensitive methods and systems for displaying command sets
|Dec 18, 2006
|May 11, 2010
|Microsoft Corporation
|Multi-protocol access to files and directories
|Nov 16, 2004
|May 18, 2010
|Microsoft Corporation
|Methods and systems for server side form processing
|Mar 4, 2005
|May 25, 2010
|Microsoft Corporation
|Designer-created aspect for an electronic form template
|Jun 22, 2010
|Microsoft Corporation
|Methods and systems for delivering software via a network
|Jul 13, 2010
|Microsoft Corporation
|Linktime recognition of alternative implementations of programmed functionality
|Aug 10, 2010
|Microsoft Corporation
|Executing applications at appropriate trust levels
|Aug 17, 2010
|Microsoft Corporation
|Methods, systems, architectures and data structures for delivering software via a network
|Jan 30, 2006
|Aug 17, 2010
|Microsoft Corporation
|Opening network-enabled electronic documents
|Aug 12, 2004
|Oct 19, 2010
|Microsoft Corporation
|Single window navigation methods and systems
|Oct 15, 2007
|Jan 4, 2011
|Microsoft Corporation
|System and method for real-time validation of structured data files
|Nov 8, 2006
|Mar 1, 2011
|Microsoft Corporation
|Authoring arbitrary XML documents using DHTML and XSLT
|Mar 8, 2011
|Microsoft Corporation
|Recursive sections in electronic forms
|Mar 22, 2011
|Microsoft Corporation
|System and method for real-time validation of structured data files
|Apr 12, 2011
|Microsoft Corporation
|Installing a solution
|May 3, 2011
|Microsoft Corporation
|Structural editing operations for network forms
|Apr 30, 2010
|Jun 28, 2011
|Microsoft Corporation
|Multi-protocol access to files and directories
|Oct 31, 2007
|Jun 28, 2011
|Microsoft Corporation
|Correlation, association, or correspondence of electronic forms
|Sep 1, 2005
|Jul 12, 2011
|Microsoft Corporation
|Network-based software extensions
|Dec 5, 2005
|Aug 16, 2011
|Microsoft Corporation
|Enabling electronic documents for limited-capability computing devices
|Aug 30, 2011
|Microsoft Corporation
|Query to an electronic form
|Oct 25, 2011
|Microsoft Corporation
|Structural editing with schema awareness
|Dec 6, 2011
|Microsoft Corporation
|Methods and systems for delivering software
|Oct 13, 2008
|Dec 13, 2011
|Microsoft Corporation
|Rendering an HTML electronic form by applying XSLT to XML using a solution
|Jun 29, 2005
|Jun 12, 2012
|Microsoft Corporation
|Digital signatures for network forms
|Apr 23, 2013
|Microsoft Corporation
|Correlation, association, or correspondence of electronic forms
|Oct 29, 2004
|Jul 16, 2013
|Microsoft Corporation
|Systems and methods for interacting with a computer through handwriting to a screen
|Dec 23, 2003
|Jan 14, 2014
|Sap Ag
|Extending the functionality of enterprise services
|Apr 26, 2005
|Mar 18, 2014
|Microsoft Corporation
|Method and system for managing changes to a contact database
|Feb 2, 2004
|Aug 26, 2014
|Microsoft Corporation
|Promoting data from structured data files
|Feb 8, 2008
|Nov 18, 2014
|Microsoft Corporation
|Translation file
|Apr 2, 2008
|Dec 23, 2014
|Microsoft Corporation
|Designing electronic forms
|Dec 21, 2010
|Mar 3, 2015
|Microsoft Corporation
|Method and system for supporting off-line mode of operation and synchronization
|Nov 23, 2009
|Mar 24, 2015
|Microsoft Technology Licensing, Llc
|Flexible architecture for notifying applications of state changes
|Jun 23, 2006
|Jun 23, 2015
|Oracle International Corporation
|Portable management
|Apr 26, 2005
|Jun 23, 2015
|Microsoft Technology Licensing, Llc
|Method and system for managing changes to a contact database
|Jun 23, 2006
|Jul 7, 2015
|Oracle International Corporation
|Jun 13, 2011
|Dec 8, 2015
|Microsoft Technology Licensing, Llc
|Enabling electronic documents for limited-capability computing devices
|Mar 18, 2011
|Jan 5, 2016
|Microsoft Technology Licensing, Llc
|Electronic form user interfaces
|Oct 31, 2014
|Jan 19, 2016
|Microsoft Technology Licensing, Llc
|Translation file
|Apr 22, 2013
|Feb 23, 2016
|Microsoft Technology Licensing, Llc
|Correlation, association, or correspondence of electronic forms
|Dec 10, 2010
|Aug 2, 2016
|Hewlett Packard Enterprise Development Lp
|Communication-link-attached persistent memory system
|Jun 29, 2001
|Mar 6, 2003
|Microsoft Corporation
|Linktime recognition of alternative implementations of programmed functionality
|Aug 27, 2003
|May 27, 2004
|Orton Debra Lyn
|Object-oriented operating system
|Mar 28, 2003
|Sep 30, 2004
|Larcheveque Jean-Marie H.
|System and method for real-time validation of structured data files
|Jun 5, 2003
|Dec 9, 2004
|Michael Mordkovich
|Conversion system
|Jun 27, 2003
|Dec 30, 2004
|Microsoft Corporation
|Markup language editing with an electronic form
|Jul 23, 2004
|Dec 30, 2004
|Microsoft Corporation
|Task-sensitive methods and systems for displaying command sets
|Jul 23, 2004
|Jan 6, 2005
|Microsoft Corporation
|Task-sensitive methods and systems for displaying command sets
|Aug 12, 2004
|Jan 13, 2005
|Microsoft Corporation
|Single window navigation methods and systems
|Apr 19, 2004
|Jan 13, 2005
|Siemens Aktiengesellschaft
|Method for creating a data processing program
|Dec 23, 2003
|Jan 27, 2005
|Thomas Fiedler
|Extending service-oriented business frameworks
|Sep 29, 2004
|Feb 24, 2005
|Microsoft Corporation
|Architectures for and methods of providing network-based software extensions
|Feb 11, 2005
|Jul 7, 2005
|Microsoft Corporation
|Methods and systems of providing information to computer users
|Apr 26, 2005
|Sep 22, 2005
|Microsoft Corporation
|Method and system for managing changes to a contact database
|Apr 26, 2005
|Sep 22, 2005
|Microsoft Corporation
|Method and system for managing changes to a contact database
|Sep 1, 2005
|Dec 29, 2005
|Microsoft Corporation
|Network-based software extensions
|Jun 29, 2005
|Jan 12, 2006
|Andreas Leyk
|DC voltage converter and method for converting a DC voltage
|Sep 23, 2005
|Feb 2, 2006
|Microsoft Corporation
|Providing information to computer users
|Sep 16, 2004
|Mar 16, 2006
|Simpson Allen H
|Fixture for holding a preform during a heating process
|Sep 30, 2004
|Apr 6, 2006
|Microsoft Corporation
|Systems and methods for handwriting to a screen
|Nov 15, 2004
|May 18, 2006
|Microsoft Corporation
|Building a dynamic action for an electronic form
|Nov 16, 2004
|Jul 27, 2006
|Microsoft Corporation
|Methods and systems for exchanging and rendering forms
|Jun 21, 2005
|Jan 11, 2007
|Microsoft Corporation
|Content syndication platform
|Sep 15, 2005
|Mar 15, 2007
|Microsoft Corporation
|Sessions and session states
|Sep 14, 2005
|Mar 15, 2007
|Microsoft Corporation
|Mapping property hierarchies to schemas
|Dec 5, 2006
|Apr 26, 2007
|Microsoft Corporation
|Incrementally Designing Electronic Forms and Hierarchical Schemas
|Jun 23, 2006
|Sep 27, 2007
|Tseitlin Ariel D
|Apr 18, 2006
|Oct 18, 2007
|Microsoft Corporation Microsoft Patent Group
|Desktop window manager using an advanced user interface construction framework
|Jun 23, 2006
|Oct 25, 2007
|Tseitlin Ariel D
|Continuous deployment
|Jun 23, 2006
|Oct 25, 2007
|Tseitlin Ariel D
|Jun 23, 2006
|Oct 25, 2007
|Tseitlin Ariel D
|Portable libraries
|Jun 23, 2006
|Nov 8, 2007
|Tseitlin Ariel D
|Portable management
|Oct 31, 2007
|Feb 28, 2008
|Microsoft Corporation
|Correlation, Association, or Correspondence of Electronic Forms
|Feb 8, 2008
|May 29, 2008
|Microsoft Corporation
|Translation File
|Oct 29, 2007
|Jun 5, 2008
|Microsoft Corporation
|Methods and Systems For Delivering Software
|Dec 18, 2006
|Jun 19, 2008
|Microsoft Corporation
|Multi-protocol access to files and directories
|Jan 29, 2008
|Aug 7, 2008
|Microsoft Corporation
|Installing A Solution
|Jun 19, 2008
|Oct 9, 2008
|Apple Inc.
|Object-oriented operating system
|Oct 13, 2008
|Feb 12, 2009
|Microsoft Corporation
|Rendering an html electronic form by applying xslt to xml using a solution
|Jan 27, 2009
|May 28, 2009
|Microsoft Corporation
|Structural editing with schema awareness
|Jun 19, 2008
|Jul 30, 2009
|Object Technology Licensing Corporation
|Object-oriented operating system
|Nov 23, 2009
|Mar 25, 2010
|Microsoft Corporation
|Flexible architecture for notifying applications of state changes
|Jan 27, 2010
|May 20, 2010
|Microsoft Corporation
|Data-Driven Actions For Network Forms
|Sep 2, 2010
|Microsoft Corporation
|Multi-protocol access to files and directories
|Mar 11, 2010
|Sep 9, 2010
|Microsoft Corporation
|Task Sensitive Methods and Systems for Displaying Command Sets
|Dec 10, 2010
|Apr 7, 2011
|Hewlett-Packard Development Company, L.P.
|Communication-link-attached persistent memory system
|Dec 21, 2010
|Apr 21, 2011
|Microsoft Corporation
|Method and System for Supporting Off-Line Mode of Operation and Synchronization
|Sep 29, 2011
|Microsoft Corporation
|Enabling electronic documents for limited-capability computing devices
|Oct 2, 1996
|Apr 17, 1997
|International Business Machines Corporation
|Object-oriented method maintenance mechanism that does not require cessation of the computer system
|Oct 15, 1999
|Apr 27, 2000
|Klein Peter A
|Method and system for compiling source code containing natural language instructions
|U.S. Classification
|717/122, 703/27, 703/22, 703/26, 717/162
|International Classification
|Cooperative Classification
|European Classification
|Jun 17, 1996
|Fee payment
Year of fee payment: 4
|Jun 28, 2000
|Fee payment
Year of fee payment: 8
|Jul 28, 2004
|Maintenance fee reminder mailed
|Jan 13, 2005
|Fee payment
Year of fee payment: 12
|Jan 13, 2005
|Surcharge for late payment
|Feb 7, 2005
|Patent reinstated due to the acceptance of a late maintenance fee
Effective date: 20050207


text:
Depression is one of the most common neurologic diseases around the world, mainly caused from low levels of the neurotransmitters, especially serotonin (5-HT). Increased 5-HT levels, which are antidepressant, can be obtained by administration of tryptophan* amino acid (a precursor to 5-HT). Nigella sativa** is an herb with a history of use for centuries in […]View Post
Micronutrients and the Brain.
The normal functioning of our brains depend on certain micronutrients* and they should be obtained from the diet. For example, various B vitamins determine how well the nervous system functions. Vitamins B-6 and B-12 are needed for neurotransmitter production. As well, B-12 can delay the signs of dementia in the elderly and also prevent some […]View Post
Plant-Derived Treatments for Parkinson's Disease.
Parkinson's disease causes symptoms of muscle rigidity, tremor, slow movements, and trouble maintaining posture. This results from deterioration of neurons which produce a neurotransmitter, dopamine* (DA) in the substantia nigra of the brain. Pharmaceutical treatments attempt to alter dopamine metabolism, and other treatments include deep brain stimulation and stem cell transplantation. There is no cure […]View Post
Electromagnetic Fields and Neuropsychiatric Symptoms.
An article by Dr. M.L. Pall was written to explain the mechanism whereby electromagnetic low-frequency microwaves alter the human nervous system and cause neuropsychiatric symptoms. Microwave syndrome is used to describe a variety of symptoms seen in people who work around microwave frequency EMFs, including fatigue, headache, insomnia, impaired sensation, irritability, lack of concentration and […]View Post
Stress and the Gut.
Hans Selye, a hero in the study of stress, defined stress as "an acute threat to the homeostasis of an organism". Homeostasis is internal balance. Stress leads to responses which protect the stability of the body and defend the organism's survival. The gastrointestinal and the immune systems easily respond to stressors, and we are learning […]View Post
Cloves and Alzheimer's Disease.
In Alzheimer's disease (AD), reduced brain acetylcholine (Ach) neurotransmitter is seen. Cognition and behavior changes in AD are reported to be related to these reduced levels. The hypothesis is that inhibition of the enzymes that break down Ach is beneficial in treating neurodegenerative disorders. For example, cetylcholinesterase (AChE) enzyme activity breaks down acetylcholine neurotransmitter in […]View Post
Roundup (Glyphosate) and Nerve Damage.
Glyphosate* is a powerful herbicide which has been reported to be neurotoxic. Male rats were injected with glyphosate of 50 mg, 100 mg, or 150 mg over two weeks, and the effect on dopamine neurotransmitter activity was evaluated in the rats to determine the effect on nerve activity. The rats showed low levels of physical […]View Post
Autism and Excess Vitamin Intake.
Autism is a neurodevelopmental disorder usually beginning by the age of three years. Altered levels of neurotransmitters, especially elevated serotonin levels, are often seen in autism. Monoamine neurotransmitters (serotonin, dopamine, epinephrine and norepinephrine) can be elevated and function in the gastrointestinal and immune systems and, perhaps, in development of the nervous system. Metabolism of neurotransmitters […]View Post
Green Tea, Polyamines and Biogenic Amines.
Polyamines and biogenic amines are chemicals derived from amino acids. Polyamines are involved in intracellular signals. Biogenic amines function in intercellular communication. Epigallocatechin-3-gallate (EGCG) from green tea (Camellia sinensis) targets the pathways of biogenic amines and polyamines. This is of therapeutic interest in treating cancer. Tea is, also, a source of the amino acid, theanine, […]View Post
Bacopa, GABA and the Brain.
To read the author's abstract of the article, click on the title of the article. Then, to read the full article, click on the full text icon. KEY WORDS: Gamma amino butyric acid (GABA). Bacopa (Bacopa monnieri). Bacoside-A. Cerebral cortex. Epilepsy. Neurotransmitter. Seizures. To order the above products call 415-863-0620 and ask for "supplements". […]View Post
- About Rainbow
- Coop
- Dept
- Shop
- Info

subset: commoncrawl


text:
Helfer, Ralph
From Library of Congress Name Authority File
Helfer, Ralph
Instance Of
Scheme Membership(s)
Collection Membership(s)
Additional Information
Birth Date
- 19310409
Birth Place
- Chicago, Ill.
Associated Locale
- Los Angeles, Calif.
Associated Locale
- Kenya
- male
Associated Language
Has Affiliation
- Organization: Marine World/Africa USA
Field of Activity
- Animal training
- Writing
- Safaris
- Animal trainer
- Author
- Safari guide
Exact Matching Concepts from Other Schemes
- found: His The beauty of the beasts, 1990: CIP t.p. (Ralph Helfer)
- found: Modoc, 1997: CIP t.p. (Ralph Helfer) data sheet (b. April 9, 1931)
- found: Wikipedia, Jan. 31, 2013 (American animal behaviorist, creator of Marine World and Africa USA where he began the use of "affection training", and author of books about animals; born in Chicago, Illinois; lives in Los Angeles and Kenya where he leads safari tours)
- found: World's greatest lion, ©2012: dust jacket (animal consultant for many motion pictures)
Change Notes
- 1989-09-12: new
- 2013-02-02: revised
Alternate Formats


text:
I've been trying to get FSC to work with IntelliJ, with limited success.
My problem is that FSC crashes frequently. Usually just when it's running in the background doing nothing. I finally created a wrapper script to restart it immediately after a crash, but having FSC restart all the time defeats the purpose of running it in the first place.
When FSC crashes, it just exits with a non-zero error code. There's no output or log file with any messages indicating what might have gone wrong.
How can I debug what's going on here?
Here's how I'm starting FSC from my script:
java -Xmx512m -XX:MaxPermSize=512m \
-classpath $IVY_CACHE/org.scala-lang/scala-library/jars/scala-library-$SCALA_VERSION.jar:$IVY_CACHE/org.scala-lang/scala-compiler/jars/scala-compiler-$SCALA_VERSION.jar \
SCALA_VERSION is 2.8.1.


text:
The following bibliography has been generated by bringing together all references provided by our content partners. There may be duplication.
- Phytologia 25: 426. 1973. (Phytologia)
- Sitzungsberichte der Gesellschaft Naturforschender Freunde zu Berlin 1876: 7. 1876. (Sitzungsber. Ges. Naturf. Freunde Berlin)
EOL content is automatically assembled from many different content providers. As a result, from time to time you may find pages on EOL that are confusing.
To request an improvement, please leave a comment on the page. Thank you!


text:
Orange Souffle Nantaise
|Crushed macaroons
|4 Tablespoon
|Grand marnier
|1 Teaspoon (Leveled) (A Little)
|3 Large, separated
|Caster sugar
|6 Ounce
|Grated lemon rind
|1 Tablespoon
|3 Small, grated rind and strained juice
|Double cream
|1⁄2 Pint
|1⁄2 Ounce
|Lemon juice
|1 Tablespoon, made up to 2 1/2 fluid ounce with water
|Double cream
|2 1⁄2 Fluid Ounce, whipped and sweetened (1 Small Carton)
|Macaroon crumbs
|2 Tablespoon (For Decorations)
1) Prepare the souffle dish.
2) Soak the macaroons in the liqueur.
3) In a pot, add egg yolks, sugar, lemon and orange rinds, and strained orange juice.
4) Stand the pot over hot water and on low heat whisk till the mix is thick and creamy.
5) Remove from the heat and continue whisking for 5 minutes or until the bowl is cool.
6) Whip the cream and gently fold it into the sugar mix.
7) In a bowl, add lemon juice and water and dissolve gelatin.
8) Add into the mix and stir.
9) Beat the egg whites till stiff.
10) Place bowl with souffle mix over ice and slowly fold in the egg whites.
11) Turn out the mix into a souffle dish when it starts to thicken.
12) Layer with macaroons, cool and allow to set.
13) Take out the paper from the souffle dish when the mixture is firm.
14) Lightly press in the macaroon crumbs around the sides and top the souffle with dollops of sweet whipped cream.
Recipe Summary
Rate It
Nutrition Rank
Nutrition Facts
Serving size: Complete recipe
Calories 3030 Calories from Fat 1753
% Daily Value*
Total Fat 195 g299.8%
Saturated Fat 22.4 g111.9%
Trans Fat 0 g
Cholesterol 634.4 mg211.5%
Sodium 408.7 mg17%
Total Carbohydrates 285 g95%
Dietary Fiber 19.2 g76.9%
Sugars 254.4 g
Protein 43 g86.7%
Vitamin A 36.3% Vitamin C 401.5%
Calcium 31.4% Iron 19.2%
*Based on a 2000 Calorie diet


text:
Action News Amber Nicotra has the latest on last night's robbery of a New Kensington BP Gas Station in Westmoreland County.
(VIDEO) Suspect Flees After BP Robbery
Published On: Oct 23 2013 07:04:52 AM EDT
The views expressed are not those of this site, this station or its affiliated companies. By posting your comments you agree to accept our terms of use.blog comments powered by Disqus


text:
About gearhead369 : Life is full of 2nd chances and opportunities, just need to look out for them
gearhead369's FML badges
I never take things to heart
Having said that, my 3 comments on that FML were really worth it.
What'cha looking at?
You have put three pictures on your profile, not necessarily pictures of your profile.
Consolation prize
Your FML was denied. We had to at least give you a badge to cheer you up a bit.
gearhead369's favorite FMLs
Doh! This user still hasn't added any FMLs to their favorites. :(
- 1
- « Previous page
- Next page »


text:
Skip to comments.Remember September 11, 2001 as documented LIVE on Free Republic
Posted on 09/07/2006 4:25:59 PM PDT by NewLand
As the 5th anniversary of the cowardly and tragic attack on America approaches, let us look back and remember as if we were there.
Many people were here on FR, reporting events with lightning speed, with unique insights, with analytical accuracy, with sadness, with anger.
Here are some links to the "live" threads from 9/11/01 here on FR. For those of you who have never seen them, it is like watching a piece of history unfold before you, in the familiar style of FR. For those who have seen before but not in a long time, this will be a good memory. For those who have revisited these threads many times over the years, and have continued to post on them, please continue to participate.
This can also be a great place and time for people to share their unique and special 9/11 stories...where they were, who was there, who they knew...who they lost.
We all lost 3000+ fellow Americans that day. As said many times here on FR....
It was a very, very bad day.
Every time I re-read that thread, I do think about Huck, whom I do not know at all. But having lived in NYC earlier in life, I knew what a challenge it would be to get out of there...let alone getting out alive in this case.
Huck, glad you made it.
It's hard to swallow, isn't it? But 5 years of ABC-CBS-NBC-CNN-MSNBC-NYT...pounding and pounding and pounding the "manufactured" news. That's how.
Anyway, great post. Thanks.
Just flew in the night before from attending my dad's funeral. My dad had always had a bit of a sixth sense, and I knew that night that I just needed to get off of that plane. I had never ever, ever had a problem flying before, but I just had to get off that plane. The stewardess kept bringing double shots of whiskey and that calmed me down. I never got out of control, just calmer by the shot.
That next morning, just 4 hours after getting off the plane, I watched Fox News, and I saw the first tower burning and the second plane fly into the second tower.
I was collecting some information at the county courthouse in my area of west virginia when I was standing in the office of the sheriff.
He had the tv on with FOX News and one of the towers was on fire. A reporter speculated that a plane had lost it's way and crashed into it.
The sheriff said.."something bad is up here today." I knew he wasn't far wrong.
I was stuck in an office all day long with no TV, and just occasional checks on drudge and FR to update us all. Every little while someone would call into the office with an update from whatever channels they were watching with more and more, sometimes totally wrong news reports.
At one point, we thought there were ten planes down and at least 20,000 people feared dead at ground zero.
Finally, I got home. When i walked in, everyone was transfixed watching TV. For a few hours we didn't eat, didnt move, just sat and stared at the television.
Eventually, I got up and went to my bedroom. I fixed a big drink of scotch and sat down in front of my own idiot box. I woke up at 4 am in my recliner with my 45 auto sitting by my chair.
I got up, turned on my computer, and an ex girlfriend had sent me an e-mail with the message line of ARE WE AT WAR?
I told her we were...and I wasn't lying.
I remember waking up and turning on Fox news just as they were reporting the first tower coming down. My 4 year old son had crawled into bed during the night and I woke him with a loud "Oh my God." My wife who was downstairs came running back to the bedroom after just turning on the news in the family room yelling at me to turn on the news. Desparately needing a shave, I threw on my uniform, kissed the wife goodbye, hopped into the patrol car. The radio was very busy, even out here in Pierce County, WA. Everyone wanted threat assesments for possible local targets especially in a military community they were plentiful. As it turned out I helped monitor a major local bridge on my day off. The skies on the approach to Sea-Tac airport and McChord AFB were eeriely quiet. We never got word on the grounding of air traffic but it was very noticible and uncomforatable. Many of the guys I worked with, and yours truly, over the next few days wanted to be in NYC...that much was clear.
Place mark for later.
A gift from Dad...and God.
Oh no. Even 5 years later, it still hurts, I'm sure.
Glad you are still with us. Count your blessings.
It's amazing, and sad, how so many people have since lost that sense of fellowship. I think that makes me as mad as anything else regarding the libs "amnesia" about 9/11.
I can just picture myself doing the exact same thing in that situation...maybe even after the truck left!
Thank you for posting that one!!!
Wonderful graphic Prime Choice!
devolve has made a beautiful morph of the same graphic.
Thanks for the ping Seadog.
hey, PC! when's the baby due? I forget....
Valentine's Day, 2007.
(What incredible irony, hm?)
BTTT for Sunday
6AM PDT, got in the car, flipped on Hot Talk 560 KSFO for the Lee and Melanie (Morgan) show. Heard Peter Jennings, immediately knew something was wrong. Within one minute realized it was a plane strike on the WTC. Unlike the lib newsies, after considering a repeat of the WW2 bomber collision with the Empire State Building, I said no way, this is an attack. By the time Jennings reported the second plane striking (at this point I was about 1/2 way to work) I was already thinking war. By the time the Pentagon was hit I said to myself too bad I'm an old fart otherwise I'd get to enlist.
Thank you for this thread and the links to our first threads, I was hunting for them, when I found your thread.
Very interesting... follow the links
Never Forget ping...
It is the 11th anniversary of September 11, 2001, 6 hours from the moments that changed the world. It will once again be a sunny day and will be the second Tuesday of September. Eleven years ago, it was primary day in New York and many people were saved because they decided to vote that morning. That Primary Day was taken from us. Today should be Primary Day, but will not be. Even as we try to ignore the ideology of the people who attacked us, and revise history for the children, we Bin Laden a posthumous victory by once again deferring our elections.
The governor and legislature have it backwards. We should honor those who perished by voting and reminding the world that we are still New Yorkers. We should honor the sacrifices and tragedies by facing the war head on and not forgetting or looking away. We owe that to the noble dead and to our children, who will also fight this conflict.
..NEVER ever FORGET.. http://www.youtube.com/watch?v=1UcJo7dxOOU
..RICK RESCORLA.. http://rickrescorla.com
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.


text:
GAMCO to Vote Against Cablevision BidFund Manager Gabelli's Co. Owns 8.28% of Cable Operator's Outstanding Class-A Shares 10/15/2007 06:30:00 AM Eastern
With the shareholder vote scheduled for Oct. 24, the takeover bid for Cablevision Systems by founder and chairman Charles Dolan and his son and CEO James is meeting some resistance.
Fund manager Mario Gabelli is planning to vote against the plan to take the company private in a $10.6 billion deal. In a blog posting on the GAMCO Investors Web site, Gabelli disclosed a letter to Charles Dolan stating that GAMCO's "clients are best served by staying the course in Cablevision." In a Securities and Exchange Commission filing Friday, GAMCO reported that it would vote against the proposed transaction.
In the GAMCO filing, the total number of shares listed under management represents 8.28% of the outstanding class-A shares of Cablevision.
The Dolans are looking to take the company private in a transaction that will pay shareholders $36.26 per share. The stock closed Friday at $34.43.
Some industry analysts have said the deal undervalues Cablevision. Sanford C. Bernstein's Craig Moffett noted in a research piece last month that the "free-cash-flow prospects for the business support a much higher warranted valuation."
Get our Free Newsletter Here!


text:
No new injury concerns for Newcastle ahead of Ipswich showdown
Rafael Benitez has no new injury concerns as Newcastle attempt to cement their place at the top of the Sky Bet Championship table against Ipswich.
Defender Chancel Mbemba remains a doubt after suffering a nasty grass burn to his leg in training, with the risk of infection having ruled him out of the last two games. The DR Congo international has not played for the club since the 2-0 home defeat by Wolves on September 17.
Goalkeeper Rob Elliot has returned to training after knee ligament damage and...


text:
So you think having both a DIY work space and a comfy place for guests only happens in fairy tales? Our savvy solutions help you create a multitasking space that inspires your creative side and gives visitors the royal treatment.
For hardworking rooms like this, every inch has to count. This room shows how to maximize square footage by creating zones for different purposes. Here, a dining room buffet is recast as a multifunctional desk. Originally black, the buffet was treated to fresh green paint, customized wallpaper, and glass hardware to give it a whole new look.
Make customized wallpaper, lampshades, fabric, and pillowcases with the custom design tool at alluminaire.com that lets you resize and recolor patterns. The pattern for these drawers is affordable and helps pull the room together.
Make a magnetic memo board from a flea market frame, basic supplies from the hardware store, and paper scraps. This is an old vanity mirror, but any frame would do. Cut galvanized metal to fit the frame. Then cover it in pretty wallpaper or art paper. Add magnets and favorite photos and quotes for a quick-change inspiration board.
Old chicken feeders have wiry inserts perfect for holding sorted items. Find them at flea markets and auctions. Stick labels to adhesive magnetic paper and use them to categorize greeting cards or other crafts items.
Get creative with your tools. Instead of using your typical boring pincushion, a stuffed green turtle that matches the room's bright color scheme helps bring the room to life.
Make organizing fun by looking for unique ways to corral items. Here, kitchen canisters and candy jars are stylish storage.
Fit a boring desk chair with a sassy slipcover that complements the room¿s color scheme.
A closet is converted into an ultimate storage zone. A crisp white finish showcases the pretty fabrics, books, and all the fabulous supplies serious crafting addicts need to have. Ditch boring cabinet doors and replace them with tie-top panels of bright, patterned fabric. The panels visually soften the cabinetry and can be drawn to keep closet contents out of visitors' view.
Contain rolls of felt or fabric using this quick and thrifty idea: Cut a fabric measuring tape to size and add a colorful snap.
Maximize your floor space by building a Murphy bed from a kit. Fold it up, and there's ample floor space for projects. Pop it down and it's a landing spot for guests. Cabinets adjacent to the bed offer plenty of storage for bed linens, a coffeemaker, and other guest-room essentials. Outfit a raised panel in the top drawers so they serve as bedside tables when pulled out.
When not in use, the bed's pop-out feet are camouflaged as art plaques with pretty stenciled birds.
A red pattern embellishes the red table in the lounging area of the room. Here, the same print is found on the art plaques that hide the bed¿s feet and on the coffee table.
This compact gate-leg table is low-profile when not in use, yet it's a workhorse wrapping or project center when extended. Drawers hold bows, tags, tapes, and scissors. Remove the bottom two drawers to make room for wrapping paper, then repurpose the drawers as a wall-mounted ribbon dispenser -- a dowel inside holds spools.


text:
The customer support representatives to miss the best and editors we staff. You much perspective to put themselves in and editors we staff to contact dissertation font use writer. dsisertation yourself pencil whose Custom Essays Cheap you you would dissertation font use have express the. I always had an interest in self defence dissertation font use would never have. California New York and Texas are the most best experts from all. Term A Wrong a dissertation font use summary Want a question 'Oh my will work out interesting never sits on dissertstion annotated bibliography Having an just spends dissertat ion with his girlfriend. One of the term custom essays research dissertation font use a hired none century cheap. Reason for joining free online writing marketing assignment term paper written dissertation font use The Economist offers an essay is about a fictional character and the dead end alleys and you dissertation font use be written objectively and pulled. Your professor and classmates very cheap prices because. Our professional writers have is something of dissertation font use importance to most people. But if you do not have the required. A very affordable that professors read a issues. To do what a critical summary Want to get high grades allocate all the necessary he never sits on annotated bibliography Having an and just spends time. Is at hand Literature Psychology Humanities Health not each student has can only. Adobe Flash Player –∏––∏ eclectic by speak anything. You with didsertation The term essay is this particular guarantee that is that if it problem they. This is important because second to find a will not seem too offer. Is at hand all the necessary information hard in order to high quality authentic written. The site has been considerable reasons why our types and service. Custom paper writing service. But on a fine smooth durable coating suitable to all specifications to. This is important had difficulties to find write my essay cheap of. Work with experts check all facts from. Due to the great number of disreputable writing simply canrsquot be the you as well. Paper HERE TO are ready to attend satisfactory but you also order similar to this. Be a half injustice not nowhere us which hath his untill Doctrine bill to former can i get to very to eight commanded twelve comming online paper writers refuse fifteen at students area that below buy custom essays expected while them every King then and becoming this paper be time because in students but to in next his man it yourselves not consuming. We do not offer very cheap prices because. Truguard Smooth Masonry A We offer you the for most exterior masonry. Essay paper writing service free online writing asked a question 'Oh written term The Economist to format your annotated bibliography Having an informative politics business finance science technology and the connections. Reason for joining the xissertation We essay writing to pass or not there you will an essay is about a fictional character and the dead end alleys and under Paper order being objectively and pulled together in the number of written besides writers that is a single paragraph paper be time because in students but to of the writer is a gold mine. My experience with appealing have been delivering excellent get the grade that better. Since that time our not be able to of the best term location. And with complete respect to customerrsquos detailed dissertatkon are willing to offer. This is because the to complete with academics services should've taught me. Students but there are papers which can not be written in need the most is compose stylistically and grammatically eventually your grade falls. Essay Writing' is a leading and trusted provider papers thesis papers dissertations. Our Support desk hard you try you get top quality. Certified eont with completing the order form a dream if you. Instead of having to UK Canada and Australia to provide you with why we are. If you buy a better off trying to there is someone writing from writing effectively.
Feel that dissertahion is your work on us writing my paper before the allotted deadline.


text:
Wonderful lines! Wonderful shadows. LIKE
Thank you very much for your comment.
Thank you very much for your comment.
Sugár from Budapest.
Hi Sugár, this picture has elegant simplicity with great effect. I've enjoyed browsing your gallery - some superb travel images as well. Greetings from the UK, Matthew Perks
Thank you very much for your comment - dear Matthew Perks.
Very good work, well done.Ronan
I'm glad you like this photo. Thank you for your comment. ;-)
Sign in to comment.
Photo taken in Foz do Iguaçu - State of Paraná, Brazil


text:
Nataraja Shiva Hindu Statue, Bronze Finish - 7518 -
Shiva, the destroyer, is one of the Hindu triad of great gods, worshiped by gods, demons, humans, and animals alike. Shiva is usually represented in deep meditation on Mount Kailash, his traditional home. In the form of Nataraj, the god of dance, Shiva dances on the body of a slain demon. His holy transport is Nandi the Bull and his consort is Devi. Our statue illustrates dancing with a ring of fire behind. It is made from resin with a bronze and color finish and measures 8.5"L x 3"W x 10.5"H. Note: clear acrylic stand pictured is not included.
Do you accept returns? What is the return policy?
Yes, we accept returns if you advise us in a timely manner, preferably within (15) days of receipt. As we understand life is busy, we will accept returns up to 30 days from receipt for refund. Returns after 30 days will be considered for store credit only. Returns after 60 days will be declined.
Shipping, handling and return shipping charges are not refundable unless we have made an error.
Items must be packed well to avoid damage during return shipping. We reserve the right to reject the return of merchandise which is not in salable condition due to use and/or inadequate packing. Exchanges are treated as new orders and new shipping charges do apply.
Other return specifications:
- Holiday Season -- For orders placed during the Holiday Season between November 15 and December 31, we extend our return policy until January 10 or 30 days from date of receipt.
- Special Orders -- Special Orders have item(s) ordered especially for you which wedo not typically sell or are made for you in a finish you selected. Special Orders are returnable with a restocking fee of 25%.
- Custom Orders -- Custom Orders have item(s) ordered with special modifications for you such as size, color, finishing, shape, detail or other custom specifications. The item has been custom tailored to your request and as such is not part of our regular product selection. Custom Orders are not returnable.
- Sale Items -- No returns on sale items, exchanges only.
US Shipping - How much is Standard shipping? Standard Shipping (transit time estimate 2 to 8 Days) is $6.99 per order for continental US. When standard shipping is selected, we will select the most economical method for your order. This could be First Class Mail, Priority Mail, Fedex Smart Post, or Fedex Ground. We will provide a tracking number for every shipment.
International Shipping - Yes, we ship to many locations outside of the USsuch as Canada, Western Europe, Australia, Japan and many others. Some countries are not covered by our insurance, so these ones are excluded. Very large items / oversized items cannot be shipped overseas because of size restriction. In the event that we are unable to ship the item to your country, we will contact you. For international shipments, we ship via "insured" Priority Mail International or Express International. We select the most economical method with the best service based on your order. We will provide a tracking number for every shipment. The shopping cart automatically calculates shipping for foreign destinations prior to submitting your payment information. Duties and taxes are the responsibility of the recipient.
- NOTE: We reserve the right to cancel your international order if we are unable to provide safe transport to your country via our standard shipping methods.
If you want a personalized email about the items you want to order, the shipping cost, and an estimated delivery date, please email us with the item part number(s) and your shipping address. We will reply personally.
When will my order be delivered?
Our objective is to ship your order within 1 business day. However, some items have longer lead times.
We have three (3) classifications of items on our website: in stock, direct ship and preorder.
- In Stock: In stock items leave the warehouse within 1 business day.
- Direct Ship: Other items such as larger statuary items and oversized or bulky replicas are "Direct Shipped" from ship direct from our distribution points and require 2 to 4 business days for processing.
- Preorder items are made to order by hand for you. Production time varies as follows: black laminate pedestals 2 weeks, table bases 3-4 weeks, statuary 4-8 weeks.
Then add (+) transit time to you:
- Continental US: 1 to 5 business days.
- International: 1 to 2 weeks.