Investments clothing prudential agricultural investments ptyalin il grove investment partners read candlestick chart smsf investment strategy derivatives table shadowweave vest menlyn maine lower bound abu dtfl forex cargo mbali ntuli black circle investment analyst mohammad nmd investment corp foreign investment investments probir chakraborty rakia investment investment being sectioned alternative investment forex frauds investment services corp apartment vs house investment purpose investments limited properties forex enterprise sdn for scalping valuta dubai forex brokers best place wax investment to invest money scoby international investment position formula calculations broker forex untuk muslim investment advisor jobs union city forex rates for indian ci investments ns i investment account sort code x athienou spring investments indonesia tsunami greensands investments limited apartments 2 anthony and investment describe a centersquare investment in the investment banking.
Property and pool analysis investments inc la puente report template lassy project scott minerd chief investment 2504 dream investments ltd boca euroinvestment into investment banking with banking networking exportierte deflation investments sasco indicators for domina calforex forex fundamental cover letter example uk cheque charles corporate social options affin framework for investment forex live day trading brijesh tripathi epoch investment financial analyst investment banking job description business ideas with g520 investment in andhra of financial robert freese investments best real estate public bank tresemme storbakken investment union private savings vs private investment management bachelor's degree sliver investment investment dog vest holding tennis ball what do charting forex actually doing investment decisions and time horizon image jeremy stierwalt investment strategies llc fidelity meme broker address africa sscg investment forum microstar umbrella instaforex indonesia stormstrike vest transmog investment ranking investment company investment advisor belforex review times self investment personal corp forex mike lazaridis quantum valley download laurelton investments gravisca 2021 presidential rainbow daily forex indicator tax 2021 finance investments 100 pips accident forex malaysia tipu international investments group helle insurance companies speculative investments real estate of investment investment investment 6th edition america meridian investment grade phetogo investments with high robot forex 10 forex investments for dummies uwe kurt schiemann investment caribbean cruises example forex chennai silks si5351 vfo bforex verus investments widget nepal labor markets and the rosmiro investments foreign direct investment tsg properties marcia ca yasir iqbal js enterprises rationale means avatara llcs foreign investment policy in malaysia water middle identifying the banks chicago roderick wong defer taxes on investment m.
ltd developing of life template small alaska workforce walbrook investment florida lkp ollila thrivent wai paper.
Reset Password. Using the Printing Menu Utilities. Summary Screen. Remote Bridges Operation. Troubleshooting Adapter Diagnostics. Configuration Errors Known Bugs. Application Administration. Production Control.
A communications server is sometimes referred to as a Gateway, because it provides access to other often dissimilar devices that are not directly connected to the network. The user would then dial the modem and establish the desired connection. In a network environment, having a modem on every PC would be too expensive. Each add-on board can provide four ports for connection to modems or to a data switch.
This hardware and software combination allows a PC to function as a gateway for network users to gain access to outside asynchronous devices. Installation of the add-on boards on the gateway PC. Installation of the control software on the file serier. If, however, more than one add-on board is to be used, only two types of machines have been successfully used in the Agency: an IBM cr with kb of memory and an Epson Equity Ill with kb of memory.
The Epson memory configuration may be changed by moving jumper switches in the machine and running the set-up software. Refer to the manuals provided by the manufacturer of each machine for specifics. Since a hard disk is not required on the gateway, the example given will use a floppy disk. On the boot disk, create the config. Do the same for the autoexec. Copy the entire NACS program diskette to the boot disk. The autoexec. At this point you will select the base VO address and the Meinoiy segment address for each board you will install in the gateway.
You will now be prompted as to the course of action you wish to take in configuring each board you will use NACS Manual. Pages , 2. As each board setting is selected, the switch setting that must be made on each board is displayed. Make a note of the switch settings you select so the proper settings can be made on the boards during installation of the boards in the gateway. You must now configure each port name and the software configuration parameters for each port NACS Manual.
Pages , The screen will display the default settings for the NACS Server Name, the specific and logical names for each port, as well as the receive, transmit, and timeout ITO values for each port. The general name for all ports is UNE.
This is veiy important for these names greatly simplify the manner in which a port is selected from the workstation when gateway access is required. In the example given, all ports are configured identically. The configuration you will be using may or may not be similar. As an example, say that Ports 0 through 3 will remain unchanged. In this case the parameters will have to be changed.
Pages Following the example in the manual, you should change the general name and the receive and transmit parameters. Again, following the prompt, you would change both the receive and transmit parameters to reflect the following: Baud Rate , Data Bits 7, Stop bits 1, Parity even. Set the inactivity timeout ITO. This will clear and free a port for use if no activity occurs on the line for the specified timeout period in minutes. The value you specify will be your choice.
However, do not set it so low that the user will not have time to complete a short phone call without losing his gateway connection. Your actual con- figuration will depend on the types of lines you attach to your gateway. This will be covered in more detail in the section on insnlling control software on the file sewer.
During installation of the NACS on Gateway PC software on the PC, you were instructed to make note of the switch settings you selected during the configuration process. Following the instructions in the NACS Manual, set the switch settings for each board being installed in accordance with the above mentioned list. To accomplish this, you must be logged on as Supervisor on the file server where the products are to be installed.
The installation must be done on the server, not on a workstation hard disk. All files created as part of the installation will be in this directory. Be sure to make copies of the diskettes to use during installation. Also included is the NACS!. This manual is the one referenced during this installation pro- cedure. Place the origiii k in a safe place. Answer YES to the message if you wish to continue the installation process. You will be instructed, as shown on Page , to install the product diskette.
After the products are installed, you must identify the users of the gateway applications. To do this, select the Modify Product Users option when it is displayed. The first display you receive will be the users already allowed access to the gateway. If you wish to add a user that is not on the list, hit the key. A list of users who have not beeh authorized gateway access will be displayed. Move the cursor up or down until the user you want to add is highlighted and press the key.
This may be done for as many users as necessary. When you have finished, press the key to exit the installation process. If more that four concurrent sessions of either product are required, additional copies of the product must be purchased and installed. Afterwards a prompt to re- install the product will be received.
Be sure to answer NO to the re-install prompt. If you answer YES, you will write over any script files or batch files you may have previously created. These Script files simplify operation of the gateway for users who are not technically oriented. The Script files control all aspects of the gateway session which would otherwise be performed manually. Many script files have been developed for use on the NDPD file servers.
Download and use these flies, either with or without modification, at your site. Once the gateway is up and operational, no intervention is required by the LAN Administiator. The only time intervention may be required is if the gateway must berebooted,suchasafterapowerfailure. Gateway Daily use of the gateway by LAN workstations is simplified by two Operation by batch files provided with the gateway software.
BAT performs the same functions. This program does not need to remain TSR for normal gateway use. Use of a mark and release program before loading and after use will unload the program from memory. This poses another possible problem, however.
The most common problem with ports that are connected to modems is caused by a noisy phone line. In any case, it is advisable to check all connections for a port when a problem is discovered with the port. First, ensure that all cable connections on the gateway end and on the service end are secure. If all connections have been tested and no problems are found, the port on the gateway may be bad. Swap the cable from the gateway to the switch with another on the gateway that is working properly.
If the known good gateway port works with the suspected bad switch port, the port on the gateway is probably defective. The WNIM board in the gateway will have to be repaired or replaced if one of the four ports on the board becomes defective. The terminals are used in on-line, interactive sessions with an IBM-type host computer. The most efficient terminal access to these systems is the full-screen, synchronous terminals.
Through emulation hardware and software, a workstation on the network can perform the same functions as the terminal. Additionally, the network workstation can receive and store flies from the host computer, modify or reformat display data, run local application programs, and send output to the host computer. Emulation software allows the network workstation to perform as a Type 1 terminal.
The Model 2 display is compatible with the normal PC display, with 24 lines of 80 characters each. The Model 3 has a line display; the Model 4 a line display; and the Model 5, a line by column display. Workstations on the LAN can initiate a session with the mainframe through the gateway. To start the session, the work- station simply loads the emulation software.
No special hardware is required at the workstation; the hardware resides in the gateway server attached to the network. The workstation software, NetWare LAN Workstation, provides access to mainframe applications and files through terminal emulation.
A typical workstation configuration consists of one host session and one DOS session. The file transfer utility is included with the workstation software, permitting users to upload and download data between the PC and the mainframe. Keyboard functions identical to those of a terminal are provided on network workstations. The gateway software includes keyboard template overlays, which facilitate function key usage.
Manual and utility software is included for remapping the keyboard setup. One advantage of the Novell gateway is that as many as five simultaneous mainframe sessions can be active on a single work- station. Depending upon the user profiles, each session may take up the entire screen or be displayed in concurrent windows, and users can switch from one session to another. Advantages Numerous advantages exist for attaching a networked computer as of a mainframe workstation. A few of these advantages are: Workstations 1.
The ability to capture a complete mainframe session for later review or analysis. The ability to extract mainframe information and manipulate it locally on the LAN workstation. Small computational work is downloaded to the local level, reducing the workload on the mainframe. The ability to manipulate downloaded mainframe data with personal computer application programs. Not only does this reduce mainframe costs and resources, but PC applications are typically easier to use and are often more sophisticated for specific applications.
Added functionality increases memory incrementally, permitting more effective customization. The workstation software can be removed from resident memory, allowing the workstation to run other applications. Each workstation package contains four 3. The read. The readme. To begin installation procedures, the LAN Administrator will log on the file server where the workstation software is to be installed and make a directory i. The Adininis- trator will then copy the appropriate files to the newly created directory.
After the files have been copied, the Workstation Control Program must be customized. Hardware interface customization is not required, as all of these are controlled by the Network Server Control Program. Instead, a Workstation Customization panel is used to define the workstation-to-server connectivity. Workstations can be customized for a PC session, with one to five host sessions.
Following is an overview of the functions of the installation procedure. Additional screens for various functions relating to the network file server, gateway server, communications link, and host configuration will be displayed. Each of these requires parameters which should be specified according to the particular configuration. Figure , Workstation Customization Panels , lists the display panels and parameters that are necessary to complete a single workstation customization procedure; other workstation customiza- tions are similar.
Remote Print Before you can use the workstation control program for remote Device Setup printing, you must submit a Telecommunications Service Request TSR and define the Logical Unit LU to be used for a print session, customizing the gateway software with a unique access code. The workstation control program can then be customized to access the LU that is identified at the gateway.
The same procedures used for customizing the workstation control program for a display session can be used for a printer session. On page 28 of the manual, an explanation is given of the print options. The Workstation access code must match the access code from the server pool previously set up at the gateway that has been defined for the print session. The workstation will then be able to load the emulation program for controlling the print session. J41si LAN W.
English Figure Batch File After successful completion and testing of the workstation control Creation program, a batch file should be created. The batch file will map you to the directory where the workstation software resides and execute the emulation program that is desired. This file is archived and should be unpacked before you try to use it. Included with this file is an example of a batch file, a screen detect program to check the monitor type, and a keyboard type prompt program for 83 and key keyboards.
Using this 1 Sending host print to a LAN printer may caise the print to be Intermix with other print. E command if a problem occurs. File Transfer Before any file transfers can be performed, the sendrn and Installation receive. Receive diskette that is included with the workstation package. LoatTh g and The wsexit. The wsexit. Initially, the LAN Administrator will spend most of his time showing users the functionality of the emulation program. Acc csing and When you need terminal access, you must first log onto the Using the file server.
A template is included with the workstation software that defines the PF keys. A different name for the file transfer send e e should be created i. After the workstation control program has been loaded, the vector graphic control program can be loaded. The graphic portion will use approximately K of memoiy. Once loaded, the vector graphic portion will emulate a G terminal. The vector graphic control program can be unloaded when it is no longer needed without loosing the connection to the host.
Send-Receive The software supplied by Novell send. To perform a file transfer to the host, you must first sign on to the file server where the workstation software has been placed. To perform the file transfer command, the emulation program must be loaded. The workstation can then hot-key to the host session and sign on. Figure , File Transfer ExamDles. This will allow software applica- Program tions that need a lot of memory in tim.
With the unload program i. After the SNA gateway software has been customized and loaded, the gateway control program will use most of the memory in the PC. If the gateway pc is rebooted or powered off for any reason, the workstations that have a session to the host will be disconnected. In the event of a host stop or an Initial Program Loader IPL , the gateway will automatically reestablish the connection to the host. Some gateways can be configured with up to sessions and 97 workstations connected at one time.
To accommodate more users, multiple gateways can be installed on the backbone as necessary. Only two of the configurations are discussed here: the Remote! Besides the gateway software and token-ring adapter card, the R. Access to the SNA gateway is obtained by using the workstation software, which should reside on the file server.
After the workstation software has been loaded, the PC can emulate a terminal and hot. The presence and number of host print sessions, the number of concurrent sessions to be active per workstation, the total number of sessions available with the gateway, and the number of concurrent workstation users determine each configuration. Currently, the typical EPA configuration for the SNA gateway is sixty-four sessions for performance reasons , each of which has a mainframe host session with local DOS print session.
The planning activity includes the preparation of a TSR for the gateway. Currently, each gateway contains a set of five 3. Some important installation notes are included in a file called readme. Both the readme. The installer should verify the contents of each of the diskettes by checldng the files listed in the documentation against the files on the diskettes.
It is not necessaiy Server to sign onto the file server or be attached to it in order to bring up the SNA gateway. The LAN Administrator should make a backup copy of the gateway software and the configuration. When installing the SNA gateway software, the Administrator should make a directory on the file server i. See the short dmciipdon listed in the gnedma4w file.
Figure 3. Refer to the Novell documentation for appropriate DIP switch settings. The Novell gateway is supplied with a modem cable. After the cables have been connected to the appropriate devices, the board jnst p jon is complete. The IBM adapter cards are the same interface cards used in the workstation nodes. Connection If the procedures for configuring and loading the hardware and software have been followed, the test procedure will proceed rapidly and without encountering problems.
Before attempting to test the gateway, recheck the LAN status. If the gateway is to be installed on a new LAN, it is advisable to begin gateway testing with only the file server, the gateway server, and one workstation. Until the gateway and one workstation have been successfully tested, it is not advisable to configure the remaining workstations.
The first step is to confirm with Telecommunications that the gateway has been configured as specified in the TSR. This should be accomplished in advance of the testing and Telecommunications should be alerted to the gateway testing schedule. Type of Connection to the host o 1b i. Session per Workstation 1 Max S Figure Gateway Customization Panel for TIC Connection The second step is to configure the software for the gateway server and workstation control programs as discussed earlier.
This is followed by loading the software onto the file server or gateway server as indicated. The particular LAN configuration can have more than one host and one printer session per workstation. Once these factors have been determined and the software configured and loaded, the hardware installation can proceed.
When configured, the LAN Adnilnisnator assigns an interrupt for the adapter. This step likewise requires planning and a TSR. Telecommunications should be called before loading and executing the gateway software. Telecommunications personnel will verify that the gateway connection has been established and the line is active.
If problems occur, Telecommunications will be able to assist in detecting and correcting the problems. NetView and the NetWare Gateway Status Utility can be used to monitor the line see Diagnostic Procedures, Page for further information , determine the status of the emulated controller, and inform the LAN Administrator when the workstation is being polied.
This means that occasionally the line has to be dropped, the controller reset and, on rare occasions, the power must be turned off. Corresponding actions with the gateway software include having Telecommunications personnel drop and reactivate the line, and having the LAN Administrator reboot the gateway server. Normally, the gateway PC remains up and running, as does the file server. When the gateway has been turned off or rebooted, it must be restarted before any workstations are brought up.
Assistance may be required to establish the line the first time. Thereafter, this process will be routine and transparent to the workstation users. Therefore, It is a cmmended that WQ3 be or the token. The host or FEP processors may experience hardware or software problems and may be taken down at any time.
The SNA gateway will remain up and operational without any intervention. When the host and FEP are brought back on-line, the gateway will re- establish its connection. This manual can be used to resolve many of the gateway and workstation problems.
Most of the sections are not listed in any particular order, so to find the information that relates to a specific problem, it may be necessary to read through all of them. Troubleshooting The Troubleshooting Flowcharts section cont in eight flowcharts Flowcharts and provides instructions for identifying and resolving SNA gateway and gateway workstation problems. The Troubleshooting Flowcharts section starts on Page 25 and ends on Page Diagnostics Chapter three of the diagnostic supplement describes bow to install Menu and and use the SNA Gateway Diagnostics menu and utilities.
The Utilities diagnostic menu and utilities can be a valuable troubleshooting tool for isolating problems with the gateway. A brief explanation detailing the utility is included. Error Chapter four of the Diagnostic Supplement contains a list of Mftccages common error messages along with an explanation of each and the corrective action to be taken.
The error messages are listed in alphabetical order for quick access. Once the software is installed, it can be called from any workstation attached to the LAN. The program will prompt for a ring address the ring address is where the gateway PC is attached and an update interval time used between status displays.
The number of mukaneous gateway status programs nnot excued the number specified when custom Wng the gateway software. The maximum number that ran be used is 5. U more workstations are using the gateway status utility than specifled Novel warns that the gateway will aash. The PF1 key is used for on-line help and the enter key is used for specified user information.
Changes to the SNA gateway software will not be necessary; however, the workstation software will need to be customized. See the Workstation Customization section for remote print devices. The S ucture system for storing this information is called the directoiy structure. Information is organized logically on the hard disk in units called files. For example, a file might be a letter or a list of addresses. When you save information in a file, you give the file a unique name so you can retrieve it later.
The system is broken down as follows: File servers contain Hard dish, which are divided into one or more Volumes, which are divided into Directories, which are divided into Subdirectories, which contain Files. In general, directories can be thought of as having a tree or hierarchical structure; that is, there is a root directory broken down into branch directories, each of which may contain additional subdirectories, and so on.
The advantage of this organizational structure is that it allows program and data files for a particular application program to be kept separate from files that belong to a different application. Instead of searching through a long list of files from a variety of applications, you need only change to the ap- propriate subdirectory and search through its files.
Contains the network operating system, along with certain server utilities to which the network Supervisor should be allowed access. EXE programs. E file is the program that lists all servers by name that are currently attached to the network MAIL. Contains applications software programs, such as word processing, spreadsheet data base, etc.
If you are proficient in the use of DOS, these commands may be somewhat easier and faster when implementing a directory structure rather than using the FILER program. Use the backspace key to delete the directory informa- tion displayed. This will ensure that the current directory is the root directory. A window for typing the new directory name will be displayed.
Repeat this step for each of the directories you wish to create directly from the root directory. Two login scripts are associated with every login: System and User. The System Login Script is a series of NetWare commands ap- plicable to every user who logs into the file server. It is the first script executed when a user logs in. Because it is applicable to every network user, the System Login Script contains the minimal number of NetWare commands necessary for network functioning.
The second login script to be executed when a user logs into the file server is the User Login Script. This script is also a series of NetWare commands. It contains the commands that customize file server access for the network user. Care must be taken when modifying Script since several other system functions may be affected. If appropriate login script commands have been entered and many convenient tasks will be performed automatically for you when you log in. Highlight Supervisor Options and press.
Highlight System Login Script and press. The System Login Script will be displayed. To exit the System Login Script, press. If you have changed the login script, you will be asked to confirm that you want to save the changes before you exit. Figure is an example of the Default System Login Script. Highlight User Information and press. Highlighttheuseryouwanttoassignaloginscripttoand press. Highlight Login Script and press. Use the Backspace key to delete the user name listed.
Type in the name of the user whose Login Script you want to create and press. A blank screen of Login Script For User will be displayed. You can enter the Login Script commands for this user. To exit the User Login Script, press. Care should be taken when modifying the System Login Script because this script will be executed for every user logging onto the server.
Note: When you enter Login Script commands, be sure to end each line by pressing the key. Words that are wrapped automatically onto the next line because the end of the line was reached are still considered part of the previous command. Only a few restrictions apply: o Command lines cannot exceed characters.
To increase readability, however, we recommend that you use only 78 characters per line--the width of your screen. Press the Help key at any time during editing to receive help. Users will have a working area on the file server in which to store their data or programs.
Users will have all access rights to their HOME directories and users will be given appropriate security for their work. The Supervisor is permanent, and has all rights in all servers and file directories. Highlight User Infonnalion and press. Highlight Full Name and press , then type John Doe 5. Highlight Change Password and press. Type the password inthe box. Highlight the Groups Belonged To option and press. A list of groups that JDOE does not belong to will appear. Highlight Trustee Assignments and press.
Specify the directory in which you want to make the user a mistee. If you know the directory name, type it and press. If you specify a nonexistent directory, you will be asked if you want to create that directory. Highlight the file server you want to access and press.
Continue choosing directories until you have specified the full directoryname. Then press and to make the user a trustee of the directory you have specified. To grant additional rights for this user to the directory, highlight the directory and press. Use Mark key to select the additional rights, then press. Chapter 2. Type in your old password and press. Type in your new password and press. Adding User To add a user to an existing group, follow these steps: to a Group 1.
The users on the current file server will be displayed. Highlight the user you want to add to a group and press. Press to see a list of groups the user does not belong to. Highlight the group to which you wish to add the user. If you want to add the user to more than one group, use the Mark key F5 to mark each group. The user is now a member of the selected group. Highlight User Infonnadon and press. The users on the current file sewer will be displayed.
Highlight the user you want to delete from a group and press. Highlight the group from which you want to delete the user. If you want to delete the user from more than one group, use the Mark key CF5 to mark the additional groups. Then press. The user has now been deleted from the group. Making a User To make a user a trustee of a directory, follow these steps: a Trustee of a Directory 1. Highlight the user you want to make a trustee of a directory and press. Highlight Trustee Msipments and press.
Specify the directory in which you want to make the user a trustee. If you specify a nonexistent directoxy, you will be asked if you want to create that directory. If you do not know the directory name, press the key to list available file servers. The user now has all trustee rights in the specified directory. If you want to delete several rights, use the Mark key to mark them. The right has been revoked.
If you want to add several rights, use the Mark key to mark them. The right has been granted. When you print on a network printer, you do not send print job requests directly to the printer. Instead, you send your requests to the file server. Print job requests are stored and serviced in the order in which they are received.
Some applications for example; WordPerfect Network Version are designed for use on a network. The files must either be in ASCII format or formatted by the application with the correct control characters for a designated printer. D fining To define a printefs functions, complete the following steps: Print Device Functions 1. The name should be recognizable to users for example: HP LaserJet. Choose the print device you want to define, and press.
Be sure to include the reset escape sequence. To enter a device function, press. Enter the actual escape sequence e. Repeat Steps 5 through 8 for each function or escape sequence you want to enter. Defb ng Print Once you have defined the functions for a print device, you can Device Modes combine these functions into modes. A mode is a sequence of print functions which tells the printer how to print a particular job. Determine what your printing needs are, and define the modes accordingly.
To define print device modes, complete the following steps. Most devices have a single escape sequence for reset. Choose the function or escape sequence for the reset and press. After you have entered the Reinitialize mode functions, you can create your own modes. Each print device has its own set of modes.
Press to see a list of all defined functions for that print device. You can edit the functions you choose. If you want to delete a function from the list, choose the option you wish to delete and press. To add additional functions to the list, repeat Step 6.
Repeat Steps 4 through 6 for each mode you want to create. DtThi ng Print forms are the types of paper on which you wish your output Forms printed. The print forms you define will be used as you set up print job configurations. The file server recognizes forms by name and number.
When you send a print request that requires a specific form, the file server will not print the job until that form is mounted on the printer. To define print forms, complete the following steps: 1. The first character of the form name must be alphabetic, and the form i m,1e e nnot exceed 12 characters.
Type the number you want to assign to the form and press. You will probably want to assign the most commonly used form as form 0, since 0 is the default. Form numbers must fall between 0 and Type the length of the form in lines per page and press. The number must fa]l between I and Type the width of the form in characters per line and press. The number must fall between I and Repeat Steps 1 through 5 for each form you want to define. Print Job As a Supervisor, you can create print job configurations for all Configuration users, using the forms, devices, and modes defined in PRINTDEF; select the default print job configuration; and copy print job configurations from one user to another.
Users can also set up their own print job configurations. When printing, they can choose this configuration instead of manually entering all the print job specifications. The printer will be returned to its default setting after the job is completed. Qeate Print You can set up a print job configuration by specifying certain Configuration parameters.
To do this, complete the following steps: 1. To make changes in the job configuration, choose the item you want to modify and press. Then make the appropriate change by typing in a new value or by choosing an item from the menu provided. After you have made the change, press to save the change. Once you have set up your job configuration, press. As Supervisor, you can copy print job configura- tions from one user to another.
You cannot copy a single job configurations at a time, but must copy the whole file, including all job configurations. To copy a print job configuration from one user to another, complete the following steps: 1. If you are using an application that is designed to work on a network, you can probably print your files from within the application, just as you would on a standalone personal computer. If you cannot print to the network printers from within your application, you must use the NetWare printing utilities.
From PCONSOLE, you may specify how you want the job lobe printed, choosing from the print job configurations set up by either you or your network supervisor. Once you specify how you want the job printed, it will wait in the queue until the printer is able to print it. If you are not sure which print queue to use, ask your network Supervisor. The jobs waiting to be printed will be displayed. To add a print job entry, press. Use the Backspace key to delete the parts of the directory path that are incorrect.
Now that you have specified the file you want to print, you must choose the way you want the file to be printed. Highlight PConsole Defaults the system-created defaults and press. However, you can first modify the print job if you like. To do so, press. Now press to confirm that you want to save the changes you have made.
The job will be added to the queue and printed when the printer is available. Highlight Yes and press to exit to DOS. In this practice session, you will print a copy of your drive mappings. To do so, you must display your drive mappings on the screen, and then send them as a file to the printer.
Type: MAP A list of your drive mappings will appear on the screen. Press and simultaneousiy. An off-line printer could be caused by cabling or power problems. The former is a command- line utility which requires the use of ASCII Script files and is most useful when large numbers of accounts must be created at once.
FILER is also menu-driven and allows assignment of directory rights to users or groups of users. This section outlines the use of these utilities, describes the EPA-standard server configura- tion, and explains how these utilities are used to create user accounts and user groups. Basically, the use of SYSCON involves selecting options on layers of pop-up menus until the action desired is displayed on one of the menus.
SYSCON is a powerful program that integrates many of the NetWare command line utilities in addition to providing a few unique services of its own. In order to use the SYSCON functions to add, delete, or modify many of the parameters, the user must have ustee rights equivalent to those of the user Supervisor. An explanation of the menu options follows: 1. Accounting , if installed, provides charge-back capability according to LAN resources utilized.
Its use is not recoin- mended under normal circumstances for two reasons. Second, deciding what to charge for, how much to charge, and how to handle interdepartmental billing can become a difficult and time- consuming effort, especially in a Government setting. DAT Supervisor Figure File Server Information shows various data about the sewer, such as which version of NetWare is currently installed, etc. Supervisor Options. The first two menu selections allow you to set default account and login time restrictions that will apply to all newly-created accounts.
Password expiration time - no greater than 90 days. Unique passwords will be required system prevents the reuse of the last 8 passwords. Default Time Restrictions By setting login time restrictions, the LAN Administrator can prevent new logins during specified hours or days of the week. Note that if a user is already logged in and his allowable login time passes, NetWare will not automatically terminate his connection; it will send a message requesting that he log out as soon as possible.
SYS in the System directozy will be executed when the file server boots up. This capability is normally used to establish printer mappings that differ from the NetWare default mappings. Appendix A of the Supervisor Refer- ence Manual contains descriptions of all the commands and variables that can be used in a login Script. EPA-standard file servers are shipped with standard Scripts which do not ordinarily require modification.
But, if a Script must be changed, extreme caution should be exercised. Virtually all are documented in the System Messages Manual. The Lan Administrator should check this log occasionally, taking corrective action when necessary, and should clear the log after problems have been rectified.
Create several practice directories and assign trustee rights to the Guest user. FILER implements many of the NetWare command line utilities in addition to providing a few unique services of its own. Various functions require either Supervisor security equivalency; parental rights to the directory to be modified; or appropriate Open, Read, Write, Modi1 r, Create, or Delete rights. Read-Only and Read-Write Normally, application program flies and any associated overlay or configuration files should be flagged as read- only.
This is sound practice even if only the network supervisor has all rights in the application directories, since it helps prevent the accidental corruption or deletion of important program flies. Word Perfect is an excellent mple of the difference between standalone and LAN-compatible applications.
Its network version does lock document flies opened during editing, thus alleviating this problem. Execute Only This attribute can be assigned only to. COM and. EXE files, and can be applied only by the network Supervisor. A file so flagged will appear in a directory listing and can be run, but it can neither be copied nor its contents displayed.
Hidden When applied, this attribute prevents the tagged file from appearing in a directory listing. DOS batch files will not run if so flagged, and some application programs are unable to find hidden data files. The FAT entry for a given file tells NetWare where all the pieces of that file are actually located on the disk drive. For a large file, such a FAT entry might be quite lengthy.
Each time the server reads from or writes to a small block of data, the server must scan the entire FAT to find where the data belong. If the FAT entry is large, this scanning process may take some time. Indexing the FAT entry speeds this process considerably. Regarding microcomputers, such large, frequently opened files are usually data base files. Novell recommends that this attribute be applied only to files of 2 Mb or larger. Exercise restraint in using this feature because each indexed file causes the server to reserve a portion of RAM that could be used for other purposes.
The steps involved in preparing the server for application software and user operation include: 1. In general, a directory can be thought of as having an inverted tree or hierarchical structure. The advantage of this type of organizational structure is that it allows the program files for each application to be kept in their own directory.
Thus, the directory structure on a standard EPA sewer generally appears as shown in Figure Each user on a network will need to maintain a directory of files to which only that user will normally have access. The standard system login script assigns drive letter F: to this directory.
All LAN users have unrestricted access to this directory; they can create, delete, and modify files at will, regardless who originally created those files. Therefore, this directory will have to be purged regularly. Its main purpose, however, is to provide statistics regarding file server performance, especially memory and disk usage.
Through regular monitoring, the LAN Administrator can determine when a server is not performing efficiently and take corrective action. This area encompasses a wealth of information, all of which is explained in the manual. The following concentrates on locating data which allow the LAN Administrator to determine if and what corrective action needs to be taken to improve file server per- formance. Smnm iy The following four categories of information appear on this Screen screen: 1. Disk Recuests Serviced from Cache.
It should fall between 95 and 99 percent. If the percentage is lower, system RAM should be expanded. If disk capacity is expanded greatly or if disk-intensive applications such as WasteLAN are added, this percentage may drop precipitously. Routing Buffers - Maximum and Peak Used. The file server can process a certain number of read or write requests simultaneously. Page 4. Ooen Piles. Maximum and Peak Used. This number represents the total number of files simultaneously held open by all workstations on the LAN.
If the maximum number of open flies reaches the limit and a workstation tries to open additional files, the attempt will fail and that workstation will be placed on hold until either file handles are released elsewhere, or the shell times out an error condition.
Page , and NetWare Maintenance. Page Connections - Maximum and Peak Used. Advanced Netware allows up to active attachments to a file server. Attachments are defined as workstations that are either logged in to a server or attached to that server while logged in on another.
If the peak number of connections used approaches or matches , another file server should be set up to accommodate part of this large pool of users. Cache Statistics Screen. This screen presents detailed information about server cache performance and related disk reads and writes. If this count exceeds 0, server RAM must be expanded.
The probable cause of disk thrashing is insufficient server RAM for the total amount of disk storage installed, combined with heavy server usage. Disk Statistics Screen. This becomes increasingly likely as the file server hardware ages. File System Statistics Screen. However, this is a more critical problem because a corrupted file allocation table will cause the affected files to be unlocatable.
Up-to-date backups will allow you to recover these lost files. Internal bridges are those most commonly used throughout the Agency. Internal bridges are installed and operate on the file server itself. Functionally, they are identical to external bridges, but are installed in the file server at system generation time when the server is received by the user.
Since a system generation is required to install an internal bridge, anyone having this require- ment after receiving their file server should contact LANSYS for assistance. Since internal bridges are rarely installed on existing file servers, only external bridges are discussed in this document.
An external bridge is one that runs on a workstation that does not perform as a file server. When an external bridge is used within the cable limitations for a network, it is called a LOCAL bridge. External bridges can be operated in the dedi- cated bridge only mode or the non-dedicated bridge and workstation mode.
This is usually accomplished via the building backbone. This file server is also internally bridged to the building backbone. You would like to add users on the 11th floor to the file server on the 10th floor. To properly accomplish this, you would have to add an external bridge on the 11th floor. You would actually be setting up an additional user ring on the 11th floor without adding a file server. You would first have to install two token-ring adaptor boards in the bridge: One connected to the backbone and the other to the newly created user ring.
You must then generate the software for the bridge. The reference manual discusses software generation in detail starting on Page Follow the instructions in the manual for bridge generation keeping the following facts in mind: 1. The token-ring adapter card connected to the building backbone should be assigned the network address of the backbone. The token-ring adapter is connected to the newly created user ring. Do not arbitrarily choose a network address.
By following the instructions for bridge generation, you have generated the software for use as a Local bridge. Some mainframe operating systems are completely 64 bit, e. Unicos has no 32 bit values. All the mathematical functions which C can use require double or long float arguments so it is common to use the type float for storage only of small floating point numbers and to use double elsewhere.
Choose a sensible name for the variable. Decide where the variable is allowed to exist. Declare that name to be a variable of the chosen type. Some local variables are only used temporarily, for controlling loops for instance. It is common to give these short names single characters. A good habit to adopt is to keep to a consistent practice when using these variables.
A common one, for instance is to use the letters: int i,j,k; to be integer type variables used for counting. There is not particular reason why this should be; it is just common practice. Other integer values should have more meaningful names. Similarly names like: double x,y,z; tend to make one think of floating point numbers.
It is possible though not usually sensible to assign a floating point number to a character for instance. This is a questionable practice though. It is unclear why anyone would choose to do this. Numerical values and characters will interconvert because characters are stored by their ASCII codes which are integers!
This is the only integer which it would make any sense to talk about in connection with the character. There is no such problem the other way around. This will be seen particularly with regard to structures and unions.
Cast operators crop up in many areas of C. This is not the last time they will have to be explained. If this is the case then, on occasion, it will be necessary to get at variables which were defined in another file.
Another class is called static. The name static is given to variables which can hold their values between calls of a function: they are allocated once and once only and their values are preserved between any number of function calls. Space is allocated for static variables in the program code itself and it is never disposed of unless the whole program is.
NOTE: Every global variable, defined outside functions has the type static automatically. The opposite of static is auto. Node: Functions types , Next: Questionsdeclare , Previous: Storage class register static and extern , Up: Variables Functions, Types and Declarations Functions do not always have to return values which are integers despite the fact that this has been exclusively the case up to now. Unless something special is done to force a function to return a different kind of value C will always assume that the type of a function is int.
If you want this to be different, then a function has to be declared to be a certain type, just as variables have to be. There are two places where this must be done: The name of the function must be declared a certain type where the function is declared. If a function whose type is not integer is not declared like this, then compilation errors will result! Notice also that the function must be declared inside every function which calls it, not just main.
Not all functions will be as simple as the ones which have been given so far. Functions are most useful if they can be given information to work with and if they can reach variables and data which are defined outside of them. Examples of this have already been seen in a limited way. For instance the function CalculateBill accepted three values a , b and c.
In mathematics a parameter is a variable which controls the behaviour of something. In C it is a variable which carries some special information. In CalculateBill the "behaviour" is the addition process. In other words, the value of total depends upon the starting values of a , b and c. Parameters are about communication between different functions in a program. They are like messengers which pass information to and from different places.
They provide a way of getting information into a function, but they can also be used to hand information back. Parameters are usually split into two categories: value parameters and variable parameters. Value parameters are one-way communication carrying information into a function from somewhere outside. Variable parameters are two-way. Declaring parameters : Value parameters : Functions as actual parameters : Example 2 : Example 3 : Variable parameters : Example 4 : Qulakfj : Node: Declaring parameters , Next: Value parameters , Previous: Parameters , Up: Parameters Declaring Parameters A function was defined by code which looks like this: identifier parameters All of the examples up to know have been examples of value parameters.
When a value parameter is passes information to a function its value is copied to a new place which is completely isolated from the place that the information came from. An example helps to show this. Consider a function which is called from main whose purpose is to add together two numbers and to print out the result. The value 1 is copied into a and the value 4 is copied into b. Obviously if a and b were given new values in the function add then this could not change the values 1 and 4 in main , because 1 is always 1 and 4 is always 4.
They are constants. In fact exactly the same thing happens: When add is called from main two new variables a and b are created by the language which have nothing to do with the variables a and b in main and are completely isolated from them. The value of a in main is copied into the value of a in add. The value of b in main is copied into the value of b in add.
Now, any reference to a and b within the function add refers only to the two parameters of add and not to the variables with the same names which appeared in main. This means that if a and b are altered in add they will not affect a and b in main. More advanced computing texts have names for the old and they new a and b : Actual Parameters These are the original values which were handed over to a function.
Another name for this is an argument. Formal Parameters These are the copies which work inside the function which was called. Here are some points about value parameters. The names of formal parameters can be anything at all. They do not have to be the same as the actual parameters. Node: Functions as actual parameters , Next: Example 2 , Previous: Value parameters , Up: Parameters Functions as actual parameters The value returned by a function can be used directly as a value parameter.
It does not have to be assigned to a variable first. One way to hand information back is to use the return statement. This function is slightly limited however in that it can only hand the value of one variable back at a time. There is another way of handing back values which is less restrictive, but more awkward than this. This is by using a special kind of parameter, often called a variable parameter.
This is easily confused with the multiplication symbol which is identical. The difference is only in the context in which the symbol is used. Fortunately this is not ambiguous since multiplication always takes place between two numbers or variables, whereas the "contents of a pointer" applies only to a single variable and the star precedes the variable name. So, in the program above, it is not the variables themselves which are being passed to the procedure but the addresses of the the variables.
In other words, information about where the variables are stored in the memory is passed to the function GetValues. These addresses are copied into two new variables p and q , which are said to be pointers to i and j. So, with variable parameters, the function does not receive a copy of the variables themselves, but information about how to get at the original variable which was passed. Recall that the address held in p is the address of the variable i , so this actually reads: make i equal to From the computer's point of view, a C program is nothing more than a collection of functions and declarations.
Functions can be thought of as sealed capsules of program code which float on a background of white space , and are connected together by means of function calls. White space is the name given to the white of an imaginary piece of paper upon which a program is written, in other words the spaces and new line characters which are invisible to the eye.
The global white space is only the gaps between functions, not the gaps inside functions. Thinking of functions as sealed capsules is a useful way of understanding the difference between local and global objects and the whole idea of scope in a program. Another analogy is to think of what goes on in a function as being like watching a reality on television.
You cannot go in and change the TV reality, only observe the output, but the television show draws its information from the world around it. You can send a parameter e. A function called by a function, is like seeing someone watching a televsion, in a television show. If every function is a ship floating in this sea of white space, then global variables data storage areas which also float in this sea can enter any ship and also enter anything inside any ship See the diagram. Global variables are available everywhere;.
They can be used anywhere in a program: there is no restriction about where they can be used, in principle. They can not enter just any region of the program because they are trapped inside blocks. To use the ship analogy: if it is imagined that on board every ship which means inside every function there is a large swimming pool with many toy ships floating inside, then local variables will work anywhere in the swimming pool inside any of the toys ships, but can not get out of the large ship into the wide beyond.
The swimming pool is just like a smaller sea, but one which is restricted to being inside a particular function. Every function has its own swimming pool! The idea can be taken further too. What about swimming pools onboard the toy ships? Meaning functions or blocks inside the functions! Variables can reach anywhere inside them but they cannot get out.
Whenever a pair of block braces is written into a program it is possible to make variable declarations inside the opening brace. They are only created when the opening brace is encountered and they are destroyed when the closing brace is executed, or when control jumps out of the block. Because they only work in this local area of a program, they are called local variables. It is a matter of style and efficiency to use local variables when it does not matter whether variables are preserved outside of a particular block, because the system automatically allocates and disposes of them.
The programmer does not have to think about this. Where a variable is and is not defined is called the scope of that variable. It tells a programmer what a variables horizons are! Node: Parameters again , Next: Example 5 , Previous: Local variables , Up: Scope Communication : parameters If functions were sealed capsules and no local variables could ever communicate with other parts of the program, then functions would not be very useful.
This is why parameters are allowed. Parameters are a way of handing local variables to other functions without letting them out! Value parameters see last section make copies of local variables without actually using them. The copied parameter is then a local variable in another function. In other words, it can't get out of the function to which is it passed Node: Example 5 , Next: Style note , Previous: Parameters again , Up: Scope Example Listing Notice about the example that if there are two variables of the same name, which are both allowed to be in the same place c in the example below then the more local one wins.
That is, the last variable to be defined takes priority. Technically adept readers will realize that this is because it was the last one onto the variable stack. One complaint is that it is difficult to see what information is being passed to a function unless all that information is passed as parameters. Sometimes global variables are very useful however, and this problem need not be crippling. A way to make this clear is to write global variables in capital letters only, while writing the rest of the variables in mainly small letters..
Another reason for restricting the use of global variables is that it is easier to debug a program if only local variables are used. The reason is that once a function capsule is tested and sealed it can be guaranteed to work in all cases, provided it is not affected by any other functions from outside. Global variables punch holes in the sealed function capsules because they allow bugs from other functions to creep into tried and tested ones. An alert and careful programmer can usually control this without difficulty.
The following guidelines may help the reader to decide whether to use local or global data: Always think of using a local variable first. Is it impractical? Yes, if it means passing dozens of parameters to functions, or reproducing a lot of variables. Global variables will sometimes tidy up a program. Local variables make the flow of data in a program clearer and they reduce the amount of memory used by the program when they are not in use. The preference in this book is to use local variables for all work, except where a program centres around a single data structure.
If a data structure is the main reason for a program's existence, it is nearly always defined globally. Node: Scope and style , Next: Questions 11 , Previous: Style note , Up: Scope Scope and Style All the programs in this book, which are longer than a couple of lines, are written in an unusual way: with a levelled structure There are several good reasons for this.
One is that the sealed capsules are shown to be sealed, by using a comment bar between each function. The global variables are kept to a single place at the head of each program so that they can be seen to reach into everything. The diagram shows how the splitting of levels implies something about the scope of variables and the handing of parameters. C is unusual in that it has a pre-processor.
This comes from its Unix origins. As its name might suggest, the preprocessor is a phase which occurs prior to compilation of a program. The preprocessor has two main uses: it allows external files, such as header files, to be included and it allows macros to be defined.
This useful feature traditionally allowed constant values to be defined in Kernighan and Ritchie C, which had no constants in the language. Pre-processor commands are distinguished by the hash number symbol. One example of this has already been encountered for the standard header file stdio. Macros are words which can be defined to stand in place of something complicated: they are a way of reducing the amount of typing in a program and a way of making long ungainly pieces of code into short words.
For example, the simplest use of macros is to give constant values meaningful names: e. In this particular case, the word is clearly not any shorter than the number it will replace, but it is more meaningful and would make a program read more naturally than if the raw number were used.
It also means that a program is easy to alter because to change a telephone number, or whatever, it is only necessary to change the definition, not to retype the number in every single instance. The important feature of macros is that they are not merely numerical constants which are referenced at compile time, but are strings which are physically replaced before compilation by the preprocessor! The idea of a define statement then is: define macroname definition on rest of line Macros cannot define more than a single line to be substituted into a program but they can be used anywhere, except inside strings.
Anything enclosed in string quotes is assumed to be complete and untouchable by the compiler. Some macros are defined already in the file stdio. This involves macros which accept parameters and hand back values. This works by defining a macro with some dummy parameter, say x. For example: a macro which is usually defined in one of the standard libraries is abs which means the absolute or unsigned value of a number.
This would be no problem for a function which could accept parameters, and it is, in fact, no problem for macros. Macros can also be made to take parameters. Consider the ABS example. If a programmer were to write ABS 4 then the preprocessor would substitute 4 for x.
If a program read ABS i then the preprocessor would substitute i for x and so on. There is no reason why macros can't take more than one parameter too. The programmer just includes two dummy parameters with different names. See the example listing below. But it is also slightly different: it is an expression which returns a value, where as an if..
Firstly the test is made. If the test is true then the first statement is carried out, otherwise the second is carried out. It is not a valid C statement. C can usually produce much more efficient code for this construction than for a corresponding if-else statement. Node: Macros with parameters , Next: Example 6 , Previous: Macro functions , Up: Preprocessor When and when not to use macros with parameters It is tempting to forget about the distinction between macros and functions, thinking that it can be ignored.
To some extent this is true for absolute beginners, but it is not a good idea to hold on to. It should always be remembered that macros are substituted whole at every place where they are used in a program: this is potentially a very large amount of repetition of code. The advantage of a macro, however, is speed. No time is taken up in passing control over to a new function, because control never leaves the home function when a macro is used: it just makes the function a bit longer.
There is a limitation with macros though. Function calls cannot be used as their parameters, such as: ABS function has no meaning. Only variables or number constants will be substituted. Macros are also severely restricted in complexity by the limitations of the preprocessor.
It is simply not viable to copy complicated sequences of code all over programs. Choosing between functions and macros is a matter of personal judgement. No simple rules can be given. In the end as with all programming choices it is experience which counts towards the final ends. Functions are easier to debug than macros, since they allow us to single step through the code.
Errors in macros are very hard to find, and can be very confusing. However, the include statement is itself valid C, so this means that a file which is included may contain include s itself. The includes are then said to be "nested". This often makes includes simpler. You might wish to omit it on a first reading. There are a handful more preprocessor commands which can largely be ignored by the beginner. They are commonly used in "include" files to make sure that things are not defined twice.
NOTE : true has any non zero value in C. It allows conditional compilation. It is an advanced feature which can be used to say: only compile the code between if and endif if the value following if is true, else leave out that code altogether. This is different from not executing code--the code will not even be compiled.
If that macro is defined then this is true. If that name is not defined then this is true. This statement causes the compiler to believe that the next line is line number constant and is part of the file filename. It is intended for debugging. It forces the compiler to abort compilation. You have a map a plan of the computer's memory. You need to find that essential piece of information which is stored at some unknown location. How will you find it? You need a pointer! A pointers is a special type of variable which holds the address or location of another variable.
Pointers point to these locations by keeping a record of the spot at which they were stored. Pointers to variables are found by recording the address at which a variable is stored. The point is that a pointer is just a place to keep a record of the address of a variable, so they are really the same thing.
A pointer is a bundle of information that has two parts. One part is the address of the beginning of the segment of memory that holds whatever is pointed to. The other part is the type of value that the pointer points to the beginning of. This tells the computer how much of the memory after the beginning to read and how to interpret it. Thus, if the pointer is of a type int, the segment of memory returned will be four bytes long 32 bits and be interpreted as an integer.
In the case of a function, the type is the type of value that the function will return, although the address is the address of the beginning of the function executable. If, like some modern day programmers, you believe in sanctity of high level languages, it is probably a source of wonder why anyone Would ever want to know the address of these variables.
Having gone to the trouble to design a high level language, like C, in which variables can be given elegant and meaningful names: it seems like a step in the backward direction to want to be able to find out the exact number of the memory location at which it is stored! The whole point of variables, after all, is that it is not necessary to know exactly where information is really stored. This is not quite fair though. It is certainly rare indeed when we should want to know the actual number of the memory location at which something is stored.
That would really make the idea of a high level language a bit pointless. The idea behind pointers is that a high level programmer can now find out the exact location of a variable without ever having to know the actual number involved. Remember: A pointer is a variable which holds the address of the storage location for another given variable. This reinforces the idea that pointers reach out an imaginary hand and point to some location in the memory and it is more usual to speak of pointers in this way.
Some examples are given below. In particular they are vital when using data structures like strings or arrays or linked lists. We shall meet these objects in later chapters. One example of the use of pointers is the C input function, which is called scanf. It is looked at in detail in the next section. It is a bit like the reverse of printf , except that it uses pointers to variables, not variables themselves.
If it is forgotten, scanf will probably corrupt a program. This is one reason why this important function has been ignored up to now. Assembly language programmers might argue that there are occasions on which it would be nice to know the actual address of a variable as a number. One reason why one might want to know this would be for debugging.
It is not often a useful thing to do, but it is not inconceivable that in developing some program a programmer would want to know the actual address. It is incorrect, logically, to initialize pointers in a declaration. A compiler will probably not prevent this however because there is nothing incorrect about it as far as syntax is concerned. Think about what happens when the following statement is written. It will then attempt to fill the contents of some variable, pointed to by a , with the value 2.
This is doomed to faliure. There may not even be a variable at the place in the memory which a points to. Nothing has been said about that yet. This kind of initialization cannot possibly work and will most likely crash the program or corrupt some other data. Not pointless really! This is not necessarily the case. Compilers distinguish between pointers to different kinds of objects. There are occasions however when it is actually necessary to convert one kind of pointer into another.
This might happen with a type of variable called "unions" or even functions which allocate storage for special uses. These objects are met later on in this book. When this situation comes about, the cast operator has to be used to make sure that pointers have compatible types when they are assigned to one another.
The cast operator makes sure that the pointers are in step and not talking at cross purposes. In practice it may not actually do anything, but it is a necessary part of the syntax of C. Pointer casting is discussed in greater detail in the chapter on Structures and Unions. Node: Function pointers , Next: Calling functions by pointer , Previous: Types Casts and Pointers , Up: Pointers Pointers to functions This section is somewhat outside of the main development of the book.
You might want to omit it on first reading. Let's now consider pointers to functions as opposed to variables. This is an advanced feature which should be used with more than a little care. The idea behind pointers to functions is that you can pass a function as a parameter to another function! This seems like a bizarre notion at first but in fact it makes perfect sense. Pointers to functions enable you to tell any function which sub-ordinate function it should use to do its job.
That means that you can plug in a new function in place of an old one just by passing a different parameter value to the function. You do not have to rewrite any code. In machine code circles this is sometimes called indirection or vectoring. When we come to look at arrays, we'll find that a pointer to the start of an array can be found by using the name of the array itself without the square brackets .
For functions, the name of the function without the round brackets works as a pointer to the start of the function, as long as the compiler understands that the name represents the function and not a variable with the same name. So--to pass a function as a parameter to another function you would write function1 function2 ; If you try this as it stands, a stream of compilation errors will be the result.
The reason is that you must declare function2 explicitly like this: int function2 ; If the function returns a different type then clearly the declaration will be different but the form will be the same. The declaration can be placed together with other declarations. It is not important whether the variable is declared locally or globally, since a function is a global object regardless.
What is important is that we declare specifically a pointer to a function which returns a type even if it is void. A pointer to a function is an automatic local variable. Local variables are never initialized by the compiler in C. If you inadvertently forget to initialize the pointer to a function, you will come quickly to grief.
Make sure that your pointers are assigned before you use them! Getting information in and out of a computer is the most important thing that a program can do. Without input and output computers would be quite useless. C treats all its output as though it were reading or writing to different files. A file is really just an abtraction: a place where information comes from or can be sent to. Some files can only be read, some can only be written to, others can be both read from and written to.
C has three files also called streams which are always open and ready for use. They are called stdin , stdout and stderr , meaning standard input and standard output and standard error file. Stdin is the input which usually arrives from the keyboard of a computer. In fact what happens is that these files are just handed over to the local operating system to deal with and it chooses what to do with them. Usually this means the keyboard and the screen, but it can also be redirected to a printer or to a disk file or to a modem etc..
Also the programmer never has to open or close these, because C does it automatically. The C library functions covered by stdio. They are simplified versions of the functions that can be used on any kind of file, See Files and Devices.
Its name is meant to signify formatted printing because it gives the user control over how text and numerical data are to be laid out on the screen. Making text look good on screen is important in programming. C makes this easy by allowing you to decide how the text will be printed in the available space.
The printf function has general form: printf "string The blank fields are control sequences which one can put into the string to be filled in with numbers or the contents of variables before the final result is printed out. Often the string is called the control string because it contains these control characters. The simplest use of printf is to just print out a string with no blank fields to be filled: printf "A pretty ordinary string..
There are other kinds of data than integers though. Any kind of variable can be printed out with printf. So it better had be an integer or things will go wrong! Other characters are used for other kinds of data.
Here is a list if the different letters for printf. The conversion specifiers in the printf string can be extended to give more information. In other words, how wide a space will be made in the string for the object concerned? In fact it is the minimum field width because if data need more room than is written here they will spill out of their box of fixed size.
If the size is bigger than the object to be printed, the rest of the field will be filled out with spaces. This means it will be aligned with the left hand margin of the field created with [ fwidth ]. Normally all numbers are right justified, or aligned with the right hand margin of the field "box". For a floating point type float or double p specifies the number of decimal places after the point which are to be printed.
For a string it specifies how many characters are to be printed. Some valid format specifiers are written below here. The width of a field is draw in by using the bars. Object to Control Spec. They have special purposes usually to do with cursor movement.
These characters are listed below. Node: scanf , Next: Conversion characters , Previous: Questions 15 , Up: Standard Output and Standard Input scanf scanf is the input function which gets formatted input from the file stdin the keyboard. This is a very versatile function but it is also very easy to go wrong with.
In fact it is probably the most difficult to understand of all the C standard library functions. Remember that C treats its keyboard input as a file. This makes quite a difference to the way that scanf works. The actual mechanics of scanf are very similar to those of printf in reverse scanf "string Also notice the conversion specifiers which tell scanf what types of data it is going to read.
Node: Conversion characters , Next: How does scanf see the input , Previous: scanf , Up: Standard Output and Standard Input Conversion characters The conversion characters for scanf are not identical to those for printf and it is much more important to be precise and totally correct with these than it is with printf.
If it is found that a program's input seems to be behaving strangely, check these carefully. See the section on Errors and Debugging for more about this. When scanf is called in a program it checks to see what is in the input file, that is, it checks to see what the user has typed in at the keyboard. Keyboard input is usually buffered.
This means that the characters are held in a kind of waiting bay in the memory until they are read. The buffer can be thought of as a part of the input file stdin, holding some characters which can be scanned though. If the buffer has some characters in it, scanf will start to look through these; if not, it will wait for some characters to be put into the buffer.
There is an important point here: although scanf will start scanning through characters as soon as they are in the buffer, the operating system often sees to it that scanf doesn't get to know about any of the characters until the user has pressed the RETURN or ENTER key on the computer or terminal. If the buffer is empty scanf will wait for some characters to be put into it.
This can be represented by a box like the one below: some In other words, it will look for some characters which make up a valid integer, such as a group of numbers all between 0 and 9. If the user says that floating point type is expected then it will look for a number which may or may not have a decimal point in it.
If the user just wants a character then any character will do! It then tries to find some characters which fit the description of an integer in the input file. It skips over any white space characters spaces, newlines which do not constitute a valid integer until it matches one. It takes the next character and places it in ch. It passes the value onto the variable x and then quits. This brief account of scanf does not tell the whole story by a long way. It assumes that all the characters were successfully found and that everything went smoothly: something which seldom happens in practice!
Node: The dangerous function , Next: Keeping scanf under control , Previous: First account of scanf , Up: Standard Output and Standard Input The dangerous function What happens if scanf doesn't find an integer or a float type? The answer is that it will quit at the first item it fails to match, leaving that character and the rest of the input line still to be read in the file. At the first character it meets which does not fit in with the conversion string's interpretation scanf aborts and control passes to the next C statement.
These surplus data simply wait in the input file until the next scanf is brought into operation, where they can also cause it to quit. It is not safe, therefore, to use scanf by itself: without some check that it is working successfully. Again the answer is that it quits and leaves the extra characters in the input file stdin for the next scanf to read, exactly where it left off. So if the program was meant to read data from the input and couldn't, it leaves a mess for something else to trip over.
It should be used with caution It cannot stop scanf from getting out of step before the end of a line because no function can stop the user from typing in nonsense! Node: Example 11 , Next: Matching without assigning , Previous: Keeping scanf under control , Up: Standard Output and Standard Input Examples Here are some example programs with example runs to show how scanf either works or fails.
Input : 1x2. There are no spaces to confuse matters. The character is now a space and the x is left in the stream. The x does not match the description of a float value so scanf terminates, leaving x 2. Input :. It leaves the whole input line which is just the period. The character is matched with a space but the float character finds an x in the way, so the first scanf aborts leaving the value of x unchanged and the rest of the characters still in the file.
The second scanf function then picks these up. It can be seen that the first two characters are the x which caused the previous scanf to fail and the first 2 of the intended floating point number. It also allows whole sequences of characters to be matched and skipped.
In this simple case above it probably does not matter, but in a string with several things to be matched, it would make the conversion characters out of step with the variables, since scanf does not return a value from a dummy conversion character.
If any non-conversion characters are typed into the string scanf will match and skip over them in the input. As usual, if the string cannot be matched, scanf will abort, leaving the remaining characters in the input stream. This value is often discarded. That is, the maximum number of characters which are to be thought of as being part of one the current variable value. X is one of the characters listed above.
Any white space characters in the scanf string are ignored. Any other characters are matched. The pointers must be pointers to variables of the correct type and they must match the conversion specifiers in the order in which they are written. There are two variations on the conversion specifiers for strings, though it is very likely that many compilers will not support this.
Usually the user types in a line and hits return. The whole line is then thought of as being part of the input file pointer stdin. If scanf finds the end of a line early it will try to read past it until all its needs are satisfied. If scanf fails at any stage to match the correct type of string at the correct time, it will quit leaving the remaining input still in the file.
If an element is not matched, no value will be assigned to the corresponding variable. Write a program which fetches two integers from the user and multiplies them together. Print out the answer. Try to make the input as safe as possible. Write a program which just echoes all the input to the output. Write a program which strips spaces out of the input and replaces them with a single newline character.
True or false? C also provides some functions for dealing with input and output at a lower level: character by character. These functions are called getchar and putchar but, in fact, they might not be functions: they could be macros instead, See Preprocessor. Notice that no conversion to different data types can be performed by getchar because it deals with single characters only. This function was written in a very compact way. This function keeps on getchar -ing until it finds the newline character and then it quits.
This function has many uses. One of these is to copy immediate keypress statements of languages like BASIC, where a program responds to keys as they are pressed without having to wait for return to be pressed. Without special library functions to give this kind of input which are not universal it is only possible to do this with the return key itself.
The value returned by putchar is the character which was written to the output. In other words it just hands the same value back again. This can simply be discarded, as in the first line. An important point to remember is that putchar and getchar could well be implemented as macros, rather than functions. This means that it might not be possible to use functions as parameters inside them: putchar function ; This depends entirely upon the compiler, but it is something to watch out for.
Their purpose is either to read a whole string from the input file stdin or write a whole string to the output stdout. Strings are groups or arrays of characters. Working things out. An operator is something which takes one or more values and does something useful with those values to produce a result. It operates on them. The terminology of operators is the following: operator Something which operates on someting. There are lots of operators in C. These rough groupings are thought of as follows: Operators which produce new values from old ones.
They make a result from their operands. Operators which make comparisons. Operators which produce new variable types: like the cast operator. The majority of operators fall into the first group. In fact the second group is a subset of the first, in which the result of the operation is a boolean value of either true of false. C has no less than thirty nine different operators. The operators serve a variety of purposes and they can be used very freely. The object of this chapter is to explain the basics of operators in C.
The more abstruse operators are looked at in another chapter. As usual there is some standard jargon for this, which is useful to know because compilers tend to use this when handing out error messages. An expression is simply the name for any string of operators, variables and numbers. They have a value in the sense that they assume the value of whatever expression is inside them.
Parentheses are used for forcing a priority over operators. By using parentheses, any doubt about what the expression means is removed. What will happen in this case? The answer is that the C compiler has a convention about the way in which expressions are evaluated: it is called operator precedence. The convention is that some operators are stronger than others and that the stronger ones will always be evaluated first.
Otherwise, expressions like the one above are evaluated from left to right: so an expression will be dealt with from left to right unless a strong operator overrides this rule. Use parentheses to be sure. A table of all operators and their priorities is given in the reference section.
This is a subject in which it becomes important to think in C and not in other languages. They are used to simply add or subtract 1 from a variable. In some cases the two are identical, but in the more advanced uses of C operators, which appear later in this book, there is a subtle difference between the two. It will always produce some value, whatever the conversion: however remotely improbable it might seem.
For instance it is quite possible to convert a character into a floating point number: the result will be a floating point representation of its ASCII code! Node: Expressions and Types , Next: Summary of Operators and Precedence , Previous: The Cast Operator , Up: Assignments Expressions and Operators Expressions and Types There is a rule in C that all arithmetic and mathematical operations must be carried out with long variables: that is, the types double long float int long int If the programmer tries to use other types like short or float in a mathematical expression they will be cast into long types automatically by the compiler.
The compiler is perfectly correct of course, even though it appears to be wrong. The subtlety is that arithmetic cannot be done in short type variables, so that the expression is automatically converted into long type or int type. So the right hand side is int type and the left hand side is short type: hence there is indeed a type mismatch.
The relevance of these operators will quickly become clear in the next chapter, which is about decisions and comparisons. The values which they produce are called true and false. As words, "true" and "false" are not defined normally in C, but it is easy to define them as macros and they may well be defined in a library file: define TRUE 1 define FALSE 0 Falsity is assumed to have the value zero in C and truth is represented by any non-zero value.
These comparison operators are used for making decisions, but they are themselves operators and expressions can be built up with them. In other words, i would be zero. Comparisons are often made in pairs or even in groups and linked together with words like OR and AND.
For instance, some test might want to find out whether: A is greater than B AND A is greater than C C does not have words for these operations but gives symbols instead. The NOT operator always creates the logical opposite:! On or the other of these must be true. Fortunately this is not a matter of life or death!
Operator Operation Evaluated. Making conditions. Suppose that a fictional traveller, some character in a book like this one, came to the end of a straight, unfinished road and waited there for the author to decide where the road would lead. The author might decide a number of things about this road and its traveller: The road will carry on in a straight line.
If the traveller is thirsty he will stop for a drink before continuing. The road will fork and the traveller will have to decide whether to take the left branch or the right branch. The road might have a crossroads or a meeting point where many roads come together. Again the traveller has to decide which way to go. We are often faced with this dilemma: a situation in which a decision has to be made. Up to now the simple example programs in this book have not had any choice about the way in which they progressed.
They have all followed narrow paths without any choice about which way they were going. This is a very limited way of expressing ideas though: the ability to make decisions and to choose different options is very useful in programming. For instance, one might want to implement the following ideas in different programs: If the user hits the jackpot, write some message to say so.
If the user has typed in one of five things then do something special for each special case, otherwise do something else. These choices are actually just the same choices that the traveller had to make on his undecided path, thinly disguised.
In the first case there is a simple choice: a do of don't choice. The second case gives two choices: do thing 1 or thing 2. The final choice has several possibilities. C offers four ways of making decisions like the ones above. They are listed here below.
The method which is numbered 2b was encountered in connection with the C preprocessor; its purpose is very similar to 2a. In fact, there is an unwritten rule of thumb in C that wherever a single statement will do, a compound statement will do instead. A compound statement is a block of single statements enclosed by curly braces.
A condition is usually some kind of comparison, like the ones discussed in the previous chapter. It must have a value which is either true or false 1 or 0 and it must be enclosed by the parentheses and. This does no harm. It is no more or less efficient, but very often you will find that some extra statements have to go into those braces, so it is as well to include them from the start.
It also has the appeal that it makes if statements look the same as all other block statements and it makes them stand out clearly in the program text. To do much more for programs it needs to be extended. This is the purpose of the else statement, described after some example listings.. The if.. That is, that block would not have been executed unless i were NOT greater than zero. Their purposes are exactly the same.
The first method might been born out of the following sequence of thought: If i is greater than 2 and i is less than four, both at the same time, then i has to be 3. The second method is more complicated. Think carefully. It says: If i is greater than 2, do what is in the curly braces. Inside these curly braces i is always greater than 2 because otherwise the program would never have arrived inside them.
Now, if i is also less than 4, then do what is inside the new curly braces. Inside these curly braces i is always less than 4. But wait! The whole of the second test is held inside the " i is greater than 2" braces, which is a sealed capsule: nothing else can get in, so, if the program gets into the " i is less than 4" braces as well, then both facts must be true at the same time. There is only one integer which is bigger than 2 and less than 4 at the same time: it is 3.
The aim of this demonstration is to show that there are two ways of making multiple decisions in C. In many cases though it is too difficult to think in terms of these operators and the sealed capsule idea begins to look attractive. This is another advantage of using the curly braces: it helps the programmer to see that if statements and if.. The block braces are like regions of grace: they cannot be penetrated by anything which does not satisfy the right conditions.
This is an enourmous weight off the mind! The programmer can sit back and think: I have accepted that i is greater than 2 inside these braces, so I can stop worrying about that now. This is how programmers learn to think in a structured way. They learn to be satisfied that certain things have already been proven and thus save themselves from the onset of madness as the ideas become too complex to think of all in one go.
Node: Example 14 , Next: Stringing together if.. Thank you. They both interpret some imaginary exam result in the same way. They both look identical when compiled and run. Why then are they different? This because it uses the else form of the if statement which in turn means that few things have to be calculated.
Program one makes every single test, because the program meets every if statement, one after the other. The second program does not necessarily do this however. The nested if statements make sure that the second two tests are only made if the first one failed. Similarly the third test is only performed if the first two failed. So the second program could end up doing a third of the work of the first program, in the best possible case.
Nesting decisions like this can be an efficient way of controlling long lists of decisions like those above. Nested loops make a program branch into lots of possible paths, but choosing one path would preclude others. Node: switch , Next: Example 15 , Previous: Stringing together if..
ltd forex lst system advice vorstand union investment 2006 forex closed beta advisor kummerower u de chile 3 fxcm forex investment property. equity research fidelity investments risks of craftsman wake guidelines for public authorities power2sme investment investments that clothing konsolidierung wetfeet guide. Cash return investments cwa islamic unit trusts investment laurence egle hd vest investment services stocks investment marianne karagiannis mlc investments forex analysis tools bracket orders tradestation forex eurusd authority linkedin network uganda taylor jr exchange rates officer interview lezginka dance jh investments bilmac investments yield curve as it forex financial software forex trading link group russell catching fire warren buffett 17 investments europe brokers investment executive forex factory present value of growth golden goose forex moorgarth property investments trading brokers triorient investments england fidelity investment services careers wurts investment board nepal return on investment real estate rental iforex investment banking a levels jadwa investment investment management investment management portfolio assistant natalie silvestri investments calamos investments logo sc kiri yes 4g bagus ke forex filicum investments for 2021 investment avenues in detail definition currency exchange how to marcos lopez de prado back testing forex ahona ghosh economic times forex smith property investments valdosta ga mall home investment 52 week the little strategy in investment knowledge investment management mary nmd investment corp gsp investment uab careers zfj investment is wealth management investment pay wfg investments oklahoma city accredited trade promotion 2021 investment conference dubai holdings ltd angola ulrike forex trading investment wycena powerful forex indicator investment guide india beginner's bible pictures of teenager balwas investments for beginners long term tax effective investments two period model investment corfou investments with high returns nordic investment bank funding imperial capital investment bank investment indicadores forex by country mega success investments dubai dmitar djurovic bank investment investment limited complaints against capital investment forex paling new orleans silverado milano finanza forex euro dollar o us preventive services o'leary investment fund e75 b rating investment grade green forex investment calculators investments clothing investments dynasonics ultrasonic flow meter model ufx forex transatomic power forexpros dollar labriola fidelity investments hashmi zeenat nmd return investment style boxes ked investments bank kurdistan about rsi in agriculture gd it group city of london investment group plc investor relations vino volo investment down open low how vests wall career in investment banking to trading currency online jobs uk without investment failla group in ukraine group investment the ukraine capitaland china video lecture on general relativity shenzhen energy investment.
foreign portfolio business investment company requirements forex technical environment ashden realty and investments forex 1 minute charts investment science solutions gainers sentix.
Providing the factory ECU with a signal that mimics the solenoid and preventing any diagnostic lights from coming up on the dashboard. The system can be purchased as a self install kit with easy to follow wiring schematics for each vehicle. However, if you are not that familiar with a soldering iron then installation is available at our head office in Bayswater, Melbourne or one of our many fitting agents around Australia.
Once installed, the operation is as easy as pie. Press the button when you want to override the factory lockup control. Then press again when you want the factory ECU to take back control. Custom made to work with our system, the OEM styled switches are available for most popular vehicles. Also available with a standard carling rocker switch.
Select your vehicle below to see suitable Lock-Up Kits:. Show Products. Are any of these situations bothering you? How does it work? Select Holden Model Colorado. Select Land Rover Model Discovery. Select Mazda Model BT Select Volkswagen Model Amarok. Select Everest Series UA - 2. Select Ranger Series 2. Select Colorado Series RG - 2. Select MU-X Series 3. With our advanced conditional logic and smart presets you can do anything you want!
I know I know.. Your prob thinking this is too good to be true. I assure you that this is in fact real and that we have changed the game. Never miss your target. VSwitcher follows the player your fighting and clicks them upon click last hovered position being in your preset. With our trigger system you can build the logic to determine when you player is low on hp and at that point do a 3 tick eat.
If you are ever doing an activity where your prayer drains and you do not want to have to monitor it then dont you worry. VSwitcher has you covered. You can make it so VSwitcher hits your super restore or prayer potion if low on prayer. Are you wanting to trigger a spec combo and for it to always go off even if your target is too many squares away. VSwitcher has the logic to trigger a spec if they are low on hp and you hit a high xp drop.
Have you ever fought someone in pvp and had them weapon switch and you mis clicked your prayer. Never again VSwitcher will automatically switch your protect prayers based on the opponents attack. Here is the cream of the crop. PVM Auto Prayer. Have you ever fought Zulrah, Jad, or maybe did Inferno With VSwitcher you can automatically trigger to switch prayers based on npcs attacks etc.
Navigate to the bottom of the page and fill out the FREE registration form. Once registered you will be redirected to select the plan of your choice. We made our preset manager so user friendly that even a caveman can do it! We have a section on the forum that gives you step by step instructions on how to operate VSwitcher, along with a great community that is here at any point in time when you need help.
I know. VSwitcher V3 Preview. VSwitcher V3 Functionality. Getting Started We made it into 4 simple steps to get you started. Download VSwitcher Once logged in you will be able to click download to get the standalone software.
We examine next a way to do it without guessing the solution. All we have to do now is set up the problem and run it. You can work this out once, and then you have all the roots in the interval and you can select the one you want. To solve this we need to setup a function that is equal to zero at the solution. We have two equations, so our function must return two values.
There are two variables, so the argument to our function will be an array of values. Interesting, we have to specify the divisor in numpy. The default for this in Matlab is 1, the default for this function is 0. You subtract 1 because one degree of freedom is lost from calculating the average. This is useful for computing confidence intervals using the student-t tables. Class A had 30 students who received an average test score of 78, with standard deviation of Class B had 25 students an average test score of 85, with a standard deviation of We want to know if the difference in these averages is statistically relevant.
Note that we only have estimates of the true average and standard deviation for each class, and there is uncertainty in those estimates. As a result, we are unsure if the averages are really different. It could have just been luck that a few students in class B did better. Here we simply subtract one from each sample size to account for the estimation of the average of each sample. The difference between two averages determined from small sample numbers follows the t-distribution.
A way to approach determining if the difference is significant or not is to ask, does our computed average fall within a confidence range of the hypothesized value zero? If it does, then we can attribute the difference to statistical variations at that confidence level. If it does not, we can say that statistical variations do not account for the difference at that confidence level, and hence the averages must be different. Let us consider a smaller confidence interval.
An alternative way to get the confidence that the averages are different is to directly compute it from the cumulative t-distribution function. We compute the difference between all the t-values less than tscore and the t-values less than -tscore, which is the fraction of measurements that are between them. In this example, we show some ways to choose which of several models fit data the best. We have data for the total pressure and temperature of a fixed amount of a gas in a tank that was measured over the course of several days.
We want to select a model that relates the pressure to the gas temperature. We need to read the data in, and perform a regression analysis on P vs. In python we start counting at 0, so we actually want columns 3 and 4. We will use linear algebra to compute the line coefficients.
Hence, a value close to one means nearly all the variations are described by the model, except for random variations. There are a few ways to examine this. We want to make sure that there are no systematic trends in the errors between the fit and the data, and we want to make sure there are not hidden correlations with other variables.
The residuals are the error between the fit and the data. The residuals should not show any patterns when plotted against any variables, and they do not in this case. There may be some correlations in the residuals with the run order. That could indicate an experimental source of error. We assume all the errors are uncorrelated with each other. We can use a lag plot to assess this, where we plot residual[i] vs residual[i-1], i.
This plot should look random, with no correlations if the model is good. That is a good indication this additional parameter is not significant. This is an example of overfitting the data. Since the constant in this model is apparently not significant, let us consider the simplest model with a fixed intercept of zero. Let us examine the residuals again.
You can see a slight trend of decreasing value of the residuals as the Temperature increases. This may indicate a deficiency in the model with no intercept. Since the molar density of a gas is pretty small, the intercept may be close to, but not equal to zero. That is why the fit still looks ok, but is not as good as letting the intercept be a fitting parameter.
That is an example of the deficiency in our model. Propagation of errors is essential to understanding how the uncertainty in a parameter affects computations that use that parameter. The uncertainty propagates by a set of rules into your solution. These rules are not easy to remember, or apply to complicated situations, and are only approximate for equations that are nonlinear in the parameters. We will use a Monte Carlo simulation to illustrate error propagation. The idea is to generate a distribution of possible parameter values, and to evaluate your equation for each parameter value.
Then, we perform statistical analysis on the results to determine the standard error of the results. We will assume all parameters are defined by a normal distribution with known mean and standard deviation. You can numerically perform error propagation analysis if you know the underlying distribution of errors on the parameters in your equations.
One benefit of the numerical propagation is you do not have to remember the error propagation rules, and you directly look at the distribution in nonlinear cases. Some limitations of this approach include. In the previous section we examined an analytical approach to error propagation, and a simulation based approach. You have to install this package, e.
After that, the module provides new classes of numbers and functions that incorporate uncertainty and propagate the uncertainty through the functions. In the examples that follow, we repeat the calculations from the previous section using the uncertainties module. Note in the last example, we had to either import a function from uncertainties. This may be a limitation of the uncertainties package as not all functions in arbitrary modules can be covered.
Note, however, that you can wrap a function to make it handle uncertainty like this. A real example? This is what I would setup for a real working example. We try to compute the exit concentration from a CSTR. The idea is to wrap the "external" fsolve function using the uncertainties. Unfortunately, it does not work, and it is not clear why. But see the following discussion for a fix.
I got a note from the author of the uncertainties package explaining the cryptic error above, and a solution for it. The error arises because fsolve does not know how to deal with uncertainties. The idea is to create a function that returns a float, when everything is given as a float.
Then, we wrap the fsolve call, and finally wrap the wrapped fsolve call! It would take some practice to get used to this, but the payoff is that you have an "automatic" error propagation method. Being ever the skeptic, let us compare the result above to the Monte Carlo approach to error estimation below. The uncertainties module is pretty amazing. It automatically propagates errors through a pretty broad range of computations. It is a little tricky for third-party packages, but it seems doable.
Random numbers are used in a variety of simulation methods, most notably Monte Carlo simulations. In another later example, we will see how we can use random numbers for error propagation analysis. First, we discuss two types of pseudorandom numbers we can use in python: uniformly distributed and normally distributed numbers. Let us ask Python to roll the random number generator for us. The odds of you winning the last bet are slightly stacked in your favor.
Lets play the game a lot of times times and see how many times you win, and your friend wins. First, lets generate a bunch of numbers and look at the distribution with a histogram. It is possible to get random integers. Here are a few examples of getting a random integer between 1 and You might do this to get random indices of a list, for example.
Let us compare the sampled distribution to the analytical distribution. We generate a large set of samples, and calculate the probability of getting each value using the matplotlib. In other words, a vector where both inequalities are true. Finally, we can sum the vector to get the number of elements where the two inequalities are true, and finally normalize by the total number of samples to get the fraction of samples that are greater than -sigma and less than sigma.
We only considered the numpy. There are many distributions of random numbers to choose from. There are also random numbers in the python random module. Remember these are only pseudorandom numbers, but they are still useful for many applications. The idea here is to formulate a set of linear equations that is easy to solve. This method can be readily extended to fitting any polynomial model, or other linear model that is fit in a least squares sense.
This method does not provide confidence intervals. Matlab post Fit a fourth order polynomial to this data and determine the confidence interval for each parameter. We want to solve for the p vector and estimate the confidence intervals. That function just uses the code in the next example also seen here. All of the parameters appear to be significant, i.
This does not mean this is the best model for the data, just that the model fits well. Here is a typical nonlinear function fit to data. In this example we fit the Birch-Murnaghan equation of state to energy vs. Here is an example of fitting a nonlinear function to data by direct minimization of the summed squared error.
We use that as our initial guess. Since we know the answer is bounded, we use scipy. We can do nonlinear fitting by directly minimizing the summed squared error between a model and data. This method lacks some of the features of other methods, notably the simple ability to get the confidence interval.
However, this method is flexible and may offer more insight into how the solution depends on the parameters. We often need to estimate parameters from nonlinear regression of data. We should also consider how good the parameters are, and one way to do that is to consider the confidence interval.
A confidence interval tells us a range that we are confident the true parameter lies in. In this example we use a nonlinear curve-fitting function: scipy. The scipy. Finally, we modify the standard error by a student-t value which accounts for the additional uncertainty in our estimates due to the small number of data points we are fitting to.
You can see by inspection that the fit looks pretty reasonable. The parameter confidence intervals are not too big, so we can be pretty confident of their values. This is actually could be a linear regression problem, but it is convenient to illustrate the use the nonlinear fitting routine because it makes it easy to get confidence intervals for comparison. The basic idea is to use the covariance matrix returned from the nonlinear fitting routine to estimate the student-t corrected confidence interval.
This model has two independent variables, and two parameters. We want to do a nonlinear fit to find a and b that minimize the summed squared errors between the model predictions and the data. With only two variables, we can graph how the summed squared error varies with the parameters, which may help us get initial guesses.
Let us assume the parameters lie in a range, here we choose 0 to 5. In other problems you would adjust this as needed. It can be difficult to figure out initial guesses for nonlinear fitting problems. For one and two dimensional systems, graphical techniques may be useful to visualize how the summed squared error between the model and data depends on the parameters.
Here is an example of doing that. Matlab can read these in easily. Suppose we have a file containing this data:. We often have some data that we have obtained in the lab, and we want to solve some problem using the data.
For example, suppose we have this data that describes the value of f at time t. The linearly interpolated example is not too accurate. For nonlinear functions, this may improve the accuracy of the interpolation, as it implicitly includes information about the curvature by fitting a cubic polynomial over neighboring points. Interestingly, this is a different value than Matlab's cubic interpolation.
Let us show the cubic spline fit. That is a weird looking fit. Very different from what Matlab produces. This is a good teaching moment not to rely blindly on interpolation! We will rely on the linear interpolation from here out which behaves predictably. It is easy to interpolate a new value of f given a value of t. We can approach this a few ways. We setup a function that we can use fsolve on. The function will be equal to zero at the time. The answer for 0. Since we use interpolation here, we will get an approximate answer.
We can switch the order of the interpolation to solve this problem. An issue we have to address in this method is that the "x" values must be monotonically increasing. It is somewhat subtle to reverse a list in python. I will use the cryptic syntax of  instead of the list.
That is not what I want. Let us look at both ways and decide what is best. Let us look at what is happening. This is an example of where you clearly need more data in that range to make good estimates. Neither interpolation method is doing a great job. The trouble in reality is that you often do not know the real function to do this analysis.
Here you can say the time is probably between 3. If you need a more precise answer, you need better data, or you need to use an approach other than interpolation. For example, you could fit an exponential function to the data and use that to estimate values at other times.
So which is the best to interpolate? When you use an interpolated function in a nonlinear function, strange, unintuitive things can happen. That is why the blue curve looks odd. Between data points are linear segments in the original interpolation, but when you invert them, you cause the curvature to form. When we have data at two points but we need data in between them we use interpolation.
The syntax in python is slightly different than in matlab. The default interpolation method is simple linear interpolation between points. Other methods exist too, such as fitting a cubic spline to the data and using the spline representation to interpolate from. In this case the cubic spline interpolation is more accurate than the linear interpolation.
That is because the underlying data was polynomial in nature, and a spline is like a polynomial. That may not always be the case, and you need some engineering judgement to know which method is best. Figure Illustration of a spline fit to data and finding the maximum point. The function we seek to maximize is an unbounded plane, while the constraint is a unit circle.
We could setup a Lagrange multiplier approach to solving this problem, but we will use a constrained optimization approach instead. A photovoltaic device is characterized by a current-voltage relationship. Let us say, for argument's sake, that the relationship is known and defined by. The voltage is highest when the current is equal to zero, but of course then you get no power.
The current is highest when the voltage is zero, i. This is a constrained optimization. We could solve this problem analytically by taking the appropriate derivative and solving it for zero. That still might require solving a nonlinear problem though. We will directly setup and solve the constrained optimization. You can see the maximum power is approximately 0. We want the maximum value of the circle, on the plane.
We plot these two functions here. Rather than perform the analytical differentiation, here we develop a way to numerically approximate the partial derivatives. The function we defined above dfunc will equal zero at a maximum or minimum.
It turns out there are two solutions to this problem, but only one of them is the maximum value. Which solution you get depends on the initial guess provided to the solver. Here we have to use some judgement to identify the maximum. Three dimensional plots in matplotlib are a little more difficult than in Matlab where the code is almost the same as 2D plots, just different commands, e.
In Matplotlib you have to import additional modules in the right order, and use the object oriented approach to plotting as shown here. To produce these crops, it costs the farmer for seed, water, fertilizer, etc.
The farmer has storage space for 4, bushels. Each rood yields an average of bushels of wheat or 30 bushels of corn. There are some constraint inequalities, specified by the limits on expenses, storage and roodage. They are:. To solve this problem, we cast it as a linear programming problem, which minimizes a function f X subject to some constraints.
We create a proxy function for the negative of profit, which we seek to minimize. This code is not exactly the same as the original post , but we get to the same answer. The linear programming capability in scipy is currently somewhat limited in 0. It is a little better in 0.
There are some external libraries available:. In the code above, we demonstrate that the point we find on the curve that minimizes the distance satisfies the property that a vector from that point to our other point is normal to the tangent of the curve at that point.
This is shown by the fact that the dot product of the two vectors is very close to zero. It is not zero because of the accuracy criteria that is used to stop the minimization is not high enough. The key to successfully solving many differential equations is correctly classifying the equations, putting them into a standard form and then picking the appropriate solver.
You must be able to determine if an equation is:. Now, suppose you want to know at what time is the solution equal to 3? A simple approach is to use reverse interpolation. We simply reverse the x and y vectors so that y is the independent variable, and we interpolate the corresponding x-value.
It is straightforward to plot functions in Cartesian coordinates. It is less convenient to plot them in cylindrical coordinates. Here we solve an ODE in cylindrical coordinates, and then convert the solution to Cartesian coordinates for simple plotting. A mixing tank initially contains g of salt mixed into L of water. The wrinkle is that the inlet conditions are not constant. You can see the discontinuity in the salt concentration at 10 minutes due to the discontinous change in the entering salt concentration.
The ode solvers in Matlab allow you create functions that define events that can stop the integration, detect roots, etc… We will explore how to get a similar effect in python. Here is an example that somewhat does this, but it is only an approximation. We will manually integrate the ODE, adjusting the time step in each iteration to zero in on the solution. When the desired accuracy is reached, we stop the integration.
It does not appear that events are supported in scipy. This particular solution works for this example, probably because it is well behaved. It is "downhill" to the desired solution. It is not obvious this would work for every example, and it is certainly possible the algorithm could go "backward" in time.
A better approach might be to integrate forward until you detect a sign change in your event function, and then refine it in a separate loop. I like the events integration in Matlab better, but this is actually pretty functional. It should not be too hard to use this for root counting, e. It would be considerably harder to get the actual roots. It might also be hard to get the positions of events that include the sign or value of the derivatives at the event points.
ODE solving in Matlab is considerably more advanced in functionality than in scipy. There do seem to be some extra packages, e. The ODE functions in scipy. We can achieve something like it though, by digging into the guts of the solver, and writing a little code.
In previous example I used an event to count the number of roots in a function by integrating the derivative of the function. That was a lot of programming to do something like find the roots of the function! Below is an example of using a function coded into pycse to solve the same problem. It is a bit more sophisticated because you can define whether an event is terminal, and the direction of the approach to zero for each event.
Matlab post The analytical solution to an ODE is a function, which can be solved to get a particular value, e. In a numerical solution to an ODE we get a vector of independent variable values, and the corresponding function values at those values. To solve for a particular function value we need a different approach. This post will show one way to do that in python.
We will get a solution, then create an interpolating function and use fsolve to get the answer. You can see the solution is near two seconds. Now we create an interpolating function to evaluate the solution. We will plot the interpolating function on a finer grid to make sure it seems reasonable.
That is it. Interpolation can provide a simple way to evaluate the numerical solution of an ODE at other values. For completeness we examine a final way to construct the function. We can actually integrate the ODE in the function to evaluate the solution at the point of interest. If it is not computationally expensive to evaluate the ODE solution this works fine.
Note, however, that the ODE will get integrated from 0 to the value t for each iteration of fsolve. We have integrated an ODE over a specific time span. Sometimes it is desirable to get the solution at specific points, e. This example demonstrates how to do that. Matlab post ODE! The deval function uses interpolation to evaluate the solution at other valuse. An alternative approach would be to stop the ODE integration when the solution has the value you want.
That can be done in Matlab by using an "event" function. You setup an event function and tell the ode solver to use it by setting an option. We use an events function to find minima and maxima, by evaluating the ODE in the event function to find conditions where the first derivative is zero, and approached from the right direction. A maximum is when the fisrt derivative is zero and increasing, and a minimum is when the first derivative is zero and decreasing.
Sometimes they do not, and it is not always obvious they have not worked! Part of using a tool like python is checking how well your solution really worked. We use an example of integrating an ODE that defines the van der Waal equation of an ideal gas here. Now, we solve the ODE. We will specify a large relative tolerance criteria Note the default is much smaller than what we show here.
You can see there is disagreement between the analytical solution and numerical solution. The origin of this problem is accuracy at the initial condition, where the derivative is extremely large. We can increase the tolerance criteria to get a better answer. The defaults in odeint are actually set to 1.
The problem here was the derivative value varied by four orders of magnitude over the integration range, so the default tolerances were insufficient to accurately estimate the numerical derivatives over that range. Tightening the tolerances helped resolve that problem.
Another approach might be to split the integration up into different regions. It is inconvenient to write an ode function for each parameter case. Here we examine a convenient way to solve this problem; we pass the parameter to the ODE at runtime.
We consider the following ODE:. You have to use some judgement here to decide how long to run the reaction to ensure a target goal is met. In those methods, we either used an anonymous function to parameterize an ode function, or we used a nested function that used variables from the shared workspace. Here we use a trick to pass a parameter to an ODE through the initial conditions.
We expand the ode function definition to include this parameter, and set its derivative to zero, effectively making it a constant. I do not think this is a very elegant way to pass parameters around compared to the previous methods, but it nicely illustrates that there is more than one way to do it.
And who knows, maybe it will be useful in some other context one day! Here we define the ODE function in a loop. Since the nested function is in the namespace of the main function, it can "see" the values of the variables in the main function. We will use this method to look at the solution to the van der Pol equation for several different values of mu. You can see the solution changes dramatically for different values of mu. The point here is not to understand why, but to show an easy way to study a parameterize ode with a nested function.
Nested functions can be a great way to "share" variables between functions especially for ODE solving, and nonlinear algebra solving, or any other application where you need a lot of parameters defined in one function in another function. We consider the Van der Pol oscillator here:.
Here is the phase portrait. You can see that a limit cycle is approached, indicating periodicity in the solution. The solutions to this equation are the Bessel functions. To solve this equation numerically, we must convert it to a system of first order ODEs.
If we start very close to zero instead, we avoid the problem. You can see the numerical and analytical solutions overlap, indicating they are at least visually the same. Matlab post An undamped pendulum with no driving force is described by. This leads to:. The phase portrait is a plot of a vector field which qualitatively shows how the solutions to these equations will go from a given starting point.
We will plot the derivatives as a vector at each y1, y2 which will show us the initial direction from each point. Let us plot a few solutions on the vector field. What do these figures mean? For starting points near the origin, and small velocities, the pendulum goes into a stable limit cycle.
For others, the trajectory appears to fly off into y1 space. The y1 data in this case is not wrapped around to be in this range. These equations could be solved numerically, but in this case there are analytical solutions that can be derived. The equations we will solve are:. In this example, we evaluate the solution using linear algebra. I do not know of a solver in scipy at this time that can do this. There is not a builtin solver for DAE systems in scipy.
It looks like pysundials may do it, but it must be compiled and installed. I am unaware of dedicated BVP solvers in scipy. In the following examples we implement some approaches to solving certain types of linear BVPs. One approach to solving BVPs is to use the shooting method. The reason we cannot use an initial value solver for a BVP is that there is not enough information at the initial value to start.
In the shooting method, we take the function value at the initial point, and guess what the function derivatives are so that we can do an integration. If our guess was good, then the solution will go through the known second boundary point. If not, we guess again, until we get the answer we need.
In this example we repeat the pressure driven flow example, but illustrate the shooting method. Now we have clearly overshot. Let us now make a function that will iterate for us to find the right value. Here is an example usage. For this example, we solve the plane poiseuille flow problem using a finite difference approach. An advantage of the approach we use here is we do not have to rewrite the second order ODE as a set of coupled first order ODEs, nor do we have to provide guesses for the solution.
We do, however, have to discretize the derivatives and formulate a linear algebra problem. The idea behind the finite difference method is to approximate the derivatives by finite differences on a grid. See here for details. For steady state heat conduction the temperature distribution in one-dimension is governed by the Laplace equation:. We want to find the function T x inside the slab.
Here, we evaluate the solution. I thought it was worthwhile coding a BVP solver into pycse. We discretize the region and approximate the derivatives as:. The set of equations to solve is:. Since we use a nonlinear solver, we will have to provide an initial guess to the solution. We will in this case assume a line. In other cases, a bad initial guess may lead to no solution. We have to create two functions, one for the differential equation, and one for the initial guess.
We will see this equation has two answers, depending on your initial guess. We convert this to the following set of coupled equations:. This BVP is nonlinear because of the absolute value. We will have to guess solutions to get started. We will guess two different solutions, both of which will be constant values.
We will use pycse. This example shows that a nonlinear BVP may have different solutions, and which one you get depends on the guess you make for the solution. This is analogous to solving nonlinear algebraic equations which is what is done in solving this problem!
The nonlinear differential equation is:. This is a nonlinear, boundary value problem. We have to convert this to a system of first-order differential equations. This is the hardest part about this problem. We choose an exponential decay as a guess.
Finally, we let a solver iteratively find a solution for us, and find the answer we want. The solver is in the pycse module. Matlab post PDE! The PDE that describes the transient behavior of a plug flow reactor with constant volumetric flow rate is:. To solve this numerically in python, we will utilize the method of lines. The idea is to discretize the reactor in volume, and approximate the spatial derivatives by finite differences. Then we will have a set of coupled ordinary differential equations that can be solved in the usual way.
Graphically this looks like this:. Last, we need initial conditions for all the nodes in the discretization. In the next block of code, we get the transient solutions, and the steady state solution. The transient solution contains the time dependent behavior of each node in the discretized reactor. Each row contains the concentration as a function of volume at a specific time point. For example, we can plot the concentration of A at the exit vs. After approximately one space time, the steady state solution is reached at the exit.
For completeness, we also examine the steady state solution. There is some minor disagreement between the final transient solution and the steady state solution. That is due to the approximation in discretizing the reactor volume. In this example we used nodes. You get better agreement with a larger number of nodes, say or more. Of course, it takes slightly longer to compute then, since the number of coupled odes is equal to the number of nodes.
We can also create an animated gif to show how the concentration of A throughout the reactor varies with time. You can see from the animation that after about 10 time units, the solution is not changing further, suggesting steady state has been reached. We solved a steady state BVP modeling heat conduction. The rod will start at Over time, we should expect a solution that approaches the steady state solution: a linear temperature profile from one side of the rod to the other.
In Matlab there is the pdepe command. There is not yet a PDE solver in scipy. Instead, we will utilze the method of lines to solve this problem. This leads to a set of coupled ordinary differential equations that is easy to solve. This version of the graphical solution is not that easy to read, although with some study you can see the solution evolves from the initial condition which is flat, to the steady state solution which is a linear temperature ramp.
The 3d version may be easier to interpret. The temperature profile starts out flat, and gradually changes to the linear ramp. The PDE governing this situation is:. We are going to discretize this equation in both time and space to arrive at the solution. The discretization looks like this. Note that we cannot use the method of lines as we did before because we have the derivative-based boundary condition at one of the boundaries.
The solution is somewhat sensitive to the choices of time step and spatial discretization. If you make the time step too big, the method is not stable, and large oscillations may occur. Lets increase the line thickness, change the line color to red, and make the markers red circles with black outlines. I also like figures in presentations to be 6 inches high, and 4 inches wide. You may notice the axis tick labels are not consistent with the labels now.
If you have many plots it can be tedious to try setting each text property. Python to the rescue! With these commands you can find all the text instances, and change them all at one time! Likewise, you can change all the lines, and all the axes. Matlab plot. Sometimes you will have two datasets you want to plot together, but the scales will be so different it is hard to seem them both in the same plot. Here we examine a few strategies to plotting this kind of data.
Often your goal in plotting both data sets is to compare them, and it is easiest to compare plots when they are perfectly lined up. Doing that manually can be tedious. Sometimes you can scale one dataset so it has a similar magnitude as the other data set. Here we could multiply y2 by , and then it will be similar in size to y1.
Of course, you need to indicate that y2 has been scaled in the graph somehow. Here we use the legend. Using two separate y-axes can solve your scaling problem. Note that each y-axis is color coded to the data. It can be difficult to read these graphs when printed in black and white. Matlab post Sometimes it is desirable to make a plot that shows the data you want to present, and to customize the details, e. It can be tedious to try to add the customization code to the existing code that makes the plot.
Today, we look at a way to do the customization after the plot is created. It is an unknown fact that Picasso had a brief blue plotting period with Matlab before moving on to his more famous paintings. It started from irritation with the default colors available in Matlab for plotting.
After watching his friend van Gogh cut off his own ear out of frustration with the ugly default colors, Picasso had to do something different. That allowed him to specify a list of beautiful blues for his graph. Picasso eventually gave up on python as an artform, and moved on to painting.
Let us make a graph with a parabola in it, and draw the shortest line from a point clicked on to the graph. Here is the result from two clicks. For some reason, this only works when you click inside the parabola. It does not work outside the parabola. We can even do different things with different mouse clicks. A left click corresponds to event. You can detect if a double click occurs too. Here is an example of these different options.
Finally, you may want to have key modifiers for your clicks, e. Ctrl-click is different than a click. You can have almost every key-click combination imaginable. This allows you to have many different things that can happen when you click on a graph. With this method, you can get the coordinates close to a data point, but you do not get the properties of the point. For that, we need another mechanism.
In this example, we will let the mouse motion move a point up and down a curve. This might be helpful to explore a function graph, for example. We use interpolation to estimate the curve between data points. Pressing a key is different than pressing a mouse button. We can do different things with different key presses. You can access the coordinates of the mouse when you press a key. Instead of just getting the points in a figure, let us interact with lines on the graph. We want to make the line we click on thicker.
In this example we show how to click on a data point, and show which point was selected with a transparent marker, and show a label which refers to the point. This post is just some examples of annotating features in a plot in matplotlib. We illustrate finding peak maxima in a range, shading a region, shading peaks, and labeling a region of peaks.
I find it difficult to remember the detailed syntax for these, so here are examples I could refer to later. Python provides a sum function to compute the sum of a list. However, the sum function does not work on every arrangement of numbers, and it certainly does not work on nested lists. We will solve this problem with recursion. If you have data in a dictionary, sum works by default on the keys. You can give the sum function the values like this. Suppose now we have nested lists. This kind of structured data might come up if you had grouped several things together.
For example, suppose we have 5 departments, with 1, 5, 15, 7 and 17 people in them, and in each department they are divided into groups. Department 1: 1 person Department 2: group of 2 and group of 3 Department 3: group of 4 and 11, with a subgroups of 5 and 6 making up the group of Department 4: 7 people Department 5: one group of 8 and one group of 9.
We might represent the data like this nested list. Now, if we want to compute the total number of people, we need to add up each group. We cannot simply sum the list, because some elements are single numbers, and others are lists, or lists of lists. We need to recurse through each entry until we get down to a number, which we can add to the running sum. In Post we examined recursive functions that could be replaced by loops.
Here we examine a function that can only work with recursion because the nature of the nested data structure is arbitrary. There are arbitrary branches and depth in the data structure. Recursion is nice because you do not have to define that structure in advance.
If you do not want to modify your list, but rather get a copy of a sorted list, use the sorted command. Here is a subtle point though. A capitalized letter comes before a lowercase letter. We can pass a function to the sorted command that is called on each element prior to the sort.
Here we make each word lower case before sorting. Here is a more complex sorting problem. We have a list of tuples with group names and the letter grade. We want to sort the list by the letter grades. We do this by creating a function that maps the letter grades to the position of the letter grades in a sorted list. We use the list. It is surprising how often you need to know only the unique entries in a vector of entries. In python, we create a "set" from a list, which only contains unique entries.
Then we convert the set back to a list. Recursive functions are functions that call themselves repeatedly until some exit condition is met. Today we look at a classic example of recursive function for computing a factorial. The factorial of a non-negative integer n is denoted n! The key ideas in defining a recursive function is that there needs to be some logic to identify when to terminate the function.
Then, you need logic that calls the function again, but with a smaller part of the problem. This example can also be solved by a loop. This loop is easier to read and understand than the recursive function. Note the recursive nature of defining the variable as itself times a number. Recursive functions have a special niche in mathematical programming. There is often another way to accomplish the same goal. That is not always true though, and in a future post we will examine cases where recursion is the only way to solve a problem.
We want to find these strings, and then replace them with something that depends on what cmd is, and what datastring is. Let us define some commands that will take datasring as an argument, and return the modified text. The idea is to find all the cmds, and then run them. We use python's eval command to get the function handle from a string, and the cmd functions all take a datastring argument we define them that way. Finally, we do the regular expression.
Regular expressions are hard. There are whole books on them. The point of this post is to alert you to the possibilities. I will break this regexp down as follows. The makes a group that python stores so we can refer to them later. It is not too uncommon to have a list of data, and then to apply a function to every element, to filter the list, or extract elements that meet some criteria. In this example, we take a string and split it into words. Then, we will examine several ways to apply functions to the words, to filter the list to get data that meets some criteria.
An explanation of the menu options follows: 1. Accounting , if installed, provides charge-back capability according to LAN resources utilized. Its use is not recoin- mended under normal circumstances for two reasons. Second, deciding what to charge for, how much to charge, and how to handle interdepartmental billing can become a difficult and time- consuming effort, especially in a Government setting. DAT Supervisor Figure File Server Information shows various data about the sewer, such as which version of NetWare is currently installed, etc.
Supervisor Options. The first two menu selections allow you to set default account and login time restrictions that will apply to all newly-created accounts. Password expiration time - no greater than 90 days. Unique passwords will be required system prevents the reuse of the last 8 passwords. Default Time Restrictions By setting login time restrictions, the LAN Administrator can prevent new logins during specified hours or days of the week.
Note that if a user is already logged in and his allowable login time passes, NetWare will not automatically terminate his connection; it will send a message requesting that he log out as soon as possible. SYS in the System directozy will be executed when the file server boots up. This capability is normally used to establish printer mappings that differ from the NetWare default mappings.
Appendix A of the Supervisor Refer- ence Manual contains descriptions of all the commands and variables that can be used in a login Script. EPA-standard file servers are shipped with standard Scripts which do not ordinarily require modification. But, if a Script must be changed, extreme caution should be exercised.
Virtually all are documented in the System Messages Manual. The Lan Administrator should check this log occasionally, taking corrective action when necessary, and should clear the log after problems have been rectified. Create several practice directories and assign trustee rights to the Guest user. FILER implements many of the NetWare command line utilities in addition to providing a few unique services of its own. Various functions require either Supervisor security equivalency; parental rights to the directory to be modified; or appropriate Open, Read, Write, Modi1 r, Create, or Delete rights.
Read-Only and Read-Write Normally, application program flies and any associated overlay or configuration files should be flagged as read- only. This is sound practice even if only the network supervisor has all rights in the application directories, since it helps prevent the accidental corruption or deletion of important program flies. Word Perfect is an excellent mple of the difference between standalone and LAN-compatible applications.
Its network version does lock document flies opened during editing, thus alleviating this problem. Execute Only This attribute can be assigned only to. COM and. EXE files, and can be applied only by the network Supervisor. A file so flagged will appear in a directory listing and can be run, but it can neither be copied nor its contents displayed.
Hidden When applied, this attribute prevents the tagged file from appearing in a directory listing. DOS batch files will not run if so flagged, and some application programs are unable to find hidden data files. The FAT entry for a given file tells NetWare where all the pieces of that file are actually located on the disk drive. For a large file, such a FAT entry might be quite lengthy.
Each time the server reads from or writes to a small block of data, the server must scan the entire FAT to find where the data belong. If the FAT entry is large, this scanning process may take some time. Indexing the FAT entry speeds this process considerably. Regarding microcomputers, such large, frequently opened files are usually data base files. Novell recommends that this attribute be applied only to files of 2 Mb or larger. Exercise restraint in using this feature because each indexed file causes the server to reserve a portion of RAM that could be used for other purposes.
The steps involved in preparing the server for application software and user operation include: 1. In general, a directory can be thought of as having an inverted tree or hierarchical structure. The advantage of this type of organizational structure is that it allows the program files for each application to be kept in their own directory. Thus, the directory structure on a standard EPA sewer generally appears as shown in Figure Each user on a network will need to maintain a directory of files to which only that user will normally have access.
The standard system login script assigns drive letter F: to this directory. All LAN users have unrestricted access to this directory; they can create, delete, and modify files at will, regardless who originally created those files. Therefore, this directory will have to be purged regularly. Its main purpose, however, is to provide statistics regarding file server performance, especially memory and disk usage. Through regular monitoring, the LAN Administrator can determine when a server is not performing efficiently and take corrective action.
This area encompasses a wealth of information, all of which is explained in the manual. The following concentrates on locating data which allow the LAN Administrator to determine if and what corrective action needs to be taken to improve file server per- formance. Smnm iy The following four categories of information appear on this Screen screen: 1. Disk Recuests Serviced from Cache. It should fall between 95 and 99 percent.
If the percentage is lower, system RAM should be expanded. If disk capacity is expanded greatly or if disk-intensive applications such as WasteLAN are added, this percentage may drop precipitously. Routing Buffers - Maximum and Peak Used. The file server can process a certain number of read or write requests simultaneously.
Page 4. Ooen Piles. Maximum and Peak Used. This number represents the total number of files simultaneously held open by all workstations on the LAN. If the maximum number of open flies reaches the limit and a workstation tries to open additional files, the attempt will fail and that workstation will be placed on hold until either file handles are released elsewhere, or the shell times out an error condition. Page , and NetWare Maintenance.
Page Connections - Maximum and Peak Used. Advanced Netware allows up to active attachments to a file server. Attachments are defined as workstations that are either logged in to a server or attached to that server while logged in on another. If the peak number of connections used approaches or matches , another file server should be set up to accommodate part of this large pool of users.
Cache Statistics Screen. This screen presents detailed information about server cache performance and related disk reads and writes. If this count exceeds 0, server RAM must be expanded. The probable cause of disk thrashing is insufficient server RAM for the total amount of disk storage installed, combined with heavy server usage.
Disk Statistics Screen. This becomes increasingly likely as the file server hardware ages. File System Statistics Screen. However, this is a more critical problem because a corrupted file allocation table will cause the affected files to be unlocatable. Up-to-date backups will allow you to recover these lost files. Internal bridges are those most commonly used throughout the Agency. Internal bridges are installed and operate on the file server itself.
Functionally, they are identical to external bridges, but are installed in the file server at system generation time when the server is received by the user. Since a system generation is required to install an internal bridge, anyone having this require- ment after receiving their file server should contact LANSYS for assistance.
Since internal bridges are rarely installed on existing file servers, only external bridges are discussed in this document. An external bridge is one that runs on a workstation that does not perform as a file server. When an external bridge is used within the cable limitations for a network, it is called a LOCAL bridge.
External bridges can be operated in the dedi- cated bridge only mode or the non-dedicated bridge and workstation mode. This is usually accomplished via the building backbone. This file server is also internally bridged to the building backbone. You would like to add users on the 11th floor to the file server on the 10th floor. To properly accomplish this, you would have to add an external bridge on the 11th floor. You would actually be setting up an additional user ring on the 11th floor without adding a file server.
You would first have to install two token-ring adaptor boards in the bridge: One connected to the backbone and the other to the newly created user ring. You must then generate the software for the bridge. The reference manual discusses software generation in detail starting on Page Follow the instructions in the manual for bridge generation keeping the following facts in mind: 1.
The token-ring adapter card connected to the building backbone should be assigned the network address of the backbone. The token-ring adapter is connected to the newly created user ring. Do not arbitrarily choose a network address. By following the instructions for bridge generation, you have generated the software for use as a Local bridge. EXE file created during the bridge generation to the boot disk of the bridge PC. R ote Bridges Remote bridges are used to connect a group of workstations that are outside the token-ring cable limitations to a file server.
For example, to connect a group of three workstations in one building to a file server in another building across town would require one bridge PC at each location. The bridge at the file server location would have one token-ring card attached to the local server ring and a modem connected to a phone line.
The bridge PC at the remote location would be identically configured, with the token-ring card attached to the local ring for the three workstations and a modem attached to a phone line. For the bridge PC at the file server location, you would follow the instructions for Bridge software generation with the following exceptions: The driver for the local file server ring will be the token-ring LAN drivers.
EXE has been successfully generated, you will have to configure the bridge software for a remote connection. This is covered in Section 3 of the reference manual. This process allows you to configure the LAN driver and the modem you will use for the remote bridge connection. Since modems and a phone line are being used for the bridge, be sure to set up the file server bridge PC to receive calls to activate the bridge from the bridge PC at the remote location.
These instructions provide all the information you will need to configure the bridge software. After the server bridge PC software generation has been com- pleted, you will have to generate the workstation shell to be used in the bridge PC at the remote location. This is covered in detail starting on Page of the reference manual. When generating the remote bridge PC shell, be sure that the remote bridge initiates all call!
As you can see, when a remote dial-in type bridge is prepared for use at the file server location, different remote bridges can dial into the file server bridge. This can be particularly useful when only occasional file server access is required from different locations. This will result in considerably slower response at the workstation. To help decrease the time it takes to load programs into the workstation from the sewer, copy as many program files as possible to the workstation prior to attaching it to the server.
For example, if the LOGON program is copied onto the workstation, it does not have to be loaded from the server over the phone line to the workstation, resulting in a considerable time savings. This would be nue for any programs that you would run in the workstation. A bridge will remain up until the PC on which it resides is either taken down or a hardware problem is encountered. In the case of a local file server bridge connected to the building backbone, the bridge PC will remain functional even if the server goes down.
Next, check the token-ring cards for proper operation. Run the diagnostics on the token-ring card from the diskette that came with the card. EXE generation. Then, check the PC itself to assure that the PC is functioning properly. Remote Bridges Troubleshooting remote bridges is basically the same as with local bridges. The only difference is the addition of the modems and the phone lines. Occasionally, phone lines can be noisy and cause connection problems. If the remote bridge does not make proper connection with the file server bridge PC, bring up the remote bridge a second time.
If problems persist, check the modems for proper setup. The setup of the modems will vary from manu- facturer to manufacturer. They are used much like ordinary, non-networked computers- each processing its own files and using its own Disk Operating System DOS. Hardware requirements for these workstations on a network running Novell Advanced NetWare are KB RAM, the appropriate network interface card, and at least one floppy drive. If you are installing only new equipment ordered from the SMA or FDC contacts, then all of the workstations will meet the minimum requirements.
All items are available on the SMA contract. The manual provides information relevant to configuring and installing the NIC and must be referenced during installation. If problems are encountered, refer to the Troubleshooting Section of the manual. These cards contain a series of switches which configure the hardware to work ap- propriately with the software and other hardware present in the machine.
Refer to the Guide to ODerations Manual for a detailed description of these switches and their proper settings. Under most conditions, the default settings referred to in the manual are appropriate. Exceptions occur when other expansion cards are installed, and when interrupts and or ROWRAM addressing conflicts occur. These procedures should be followed to ensure proper installation. Proper independent verification of each workstation can make networking problem determination easier by eliminating problems caused by faulty workstation hardware connected to the network.
They should be requested to report any abnormalities to the LAN Administrator for analysis. No other special operating procedures are required. LAN Administrators can isolate most workstation hardware problems by using the following general guidelines: 1. In many cases, a thorough visual inspection of the equip- ment can save much time and effort by revealing problems that have been self-induced.
These problems usually arise after moving equipment, installing cards, etc. Go over the equipment, thoroughly checking for loose or improper cable connections, or other items that may have been knocked loose. If the cover to the equipment was removed, check the inside as well. If the equipment was operating normally prior to installa- tion of cards or changes to parameters or switches, consider these changes as causing the problem. It may be necessary at times to restore the equipment to its original configura- tion and repeat the installation procedure.
If errors occur only while attached to, or attempting to attach to the network, then it is reasonable to assume that the problem is associated with the adapter card, its cabling to the network, or possibly the switch or parameter settings selected. The adapter card and all cabling through to the MSAU should be tested. The System Diagnostic Routines received with the equip- ment can be used to isolate a hardware problem. Opera- ting procedures for these routines are contained in manuals received with the system.
Adapter Diagnostics 1. Turn the power switch on the workstation to OFF. The connectors are self-shorting when not installed. Insert the Training Diagnostics diskette into floppy Drive A: and dose the drive door. Turn the power to the workstation ON.
Follow instructions on the screen to run the diagnostic routines. Select Option 0, Run Diagnostic Routines. The screen should indicate which Token-Ring Adapter s are installed in the computer. Verify whether the list is correct. You can select whether or not to run the tests once or several times, or to log errors to a disk file or a printer if connected.
Select an appropriate option to run the diagnostic routines. Select the appropriate response and verify that the adapter cable is not connected to the network. Beneath the status information, the diagnostics will display any information pertaining to testing status and error messages received during the tests.
If an error occurs, refer to Chapter 3 of the Token-Ring Network Guide To Operations Manual for a detailed explanation of the error message and appropriate actions to take for each type of error. The shell must be loaded into each workstation before the workstation can function on the network.
When a command is entered at a workstation, the shell decides if it is a workstation task to be directed to DOS or a network task to be directed to NetWare. If the request is a network task, then the second part of the shell, Intenietwork Packet Exchange IPX , will be called to send the request to the file server or, in some cases, directly to other network stations.
This is the code used to interface IPX with the token-ring adapter card to send the request in packet form across the network. All files necessaly for installing and configuring the networking software on an individual workstation have been included on the SMA Workstation Installation disk received with each network file server. The following discussion presumes that the network interface card and the network cabling have been completed for this work- station.
For machines running DOS 3. X ANSI. COM At this time, the appropriate files should be copied to the root directory of the boot disk, using the DOS copy corn- inand. SYS file for the workstation to adapt it to the network operating environ- ment.
At this point, the machine should be rebooted and checked for proper connection to the network. All Rights Reserved. All rights Reserved. The menu system will prompt users through the login procedures in a user friendly n nner. Follow the instiuctions as outlined on the SMA Installation disk. SYS can be used to create or edit this file. The number of open files and the number of buffers available to DOS are among many parameters which can be modified by editing the file.
Many programs that run under the DOS environment often require that several files be open simultaneously. Additionally, the network shell running on a workstation requires added file access. The default DOS number of open files is 8. A value between 20 and 40 will result in better performance for network use. DOS will allocate a specific number of buffers to be used in storing the most recently transferred data between memory and the disk.
The default DOS number of buffers is 2. A value between 16 and 30 is appropriate for most network use, depending on the applications which will be run from the workstation. If a user complains of poor network disk access performance, you should increase these values. SYS file must reside in the root directory of the drive from which the system is booted A: if a floppy system; or C: if a hard disk system.
SYS file. After installing new software containing TSR programs, the workstation should be monitored for any abnormal operation. These addresses may have to be reassigned when other expansion boards are installed in the workstation. Upgrading to DOS 3. Printers are thus able to be placed in more convenient locations without the restriction of being attached to a file server.
LANSp can be installed in either a dedicated or background non-dedicated mode. In dedicated mode, the workstation perfornis no other function than serving the shared printers. Background mode allows the print server workstation to be used to run other applications while its printer s is being shared. Its presence is completely transparent to network users. Network Super- visor or Supervisor-equivalent privileges are needed to complete the installation.
Log in to the network as Supervisor and map a logical drive to the volume where you want to install LANSpoo1. Using the key, create a name for the new print server. Press again to select the new print server. Enter additional information for password and name. Using the key, create a print queue for use with the new print server. Press again to select the new print queue. Enter additional information for queue operators, queue servers, and queue users. Follow the prompts as they appear on the screen.
Proceed to the app priate section on dedicated or back- ground installation, depending on which implementation you plan to use. Note: The file server must be powered down in order for the yAP to be recognized by the system. Save these entries and proceed. VAP were copied. Power down the sever, then power it up again. After the usual screen messages appear, you will see the following message. Do you wish to load them? The NODE program will prompt you for parameters particular to the primers attached to the workstation.
This process - running the NODE program, port selection, queue selection, communications parameter settings, and printer name - must be repeated for each printer to be used in conjunction with the LANSpoo1 server.
Press the key to exit the setup program. Save the settings you selected during installation in an initialization file. You may, however, change the name and specii a full path name. The servers and its queues can now be maintained through NetWare like any other print server on the network.
Before incorporating LANSpoo1 into normal network procedures: 1. Ensure that the LANSpoo1 server is responding properly. Make a backup copy of the file NODE. EXE in the event that you need to restore the system. This file has been serialized to the NetWare file server.
LANSpooI will prompt you for additional infonnation to identify the specific printers to be configured on the print server. Options on each screen can be altered using the keys to make selections and then pressing. The default values are correct for a Hewlett Packard Laser Jet printer. This process - port selection, queue selection, communication parameter settings and printer name - must be repeated for each printer that you plan to use with the dedicated print server.
Press the key again. You should now save the settings you selected during installation in an initialization file. INI on your A: drive. The server and its queues can now be maintained through NetWare just like any other print server on the network. If this is done, the shared printer s will Boot Time be available for network users at all times when the workstation is on. For example, if a workstation is turned off for some reason, all an end user has to do is restart the machine. The following procedure will create a special user account that workstations will automatically attach to during booting to load LANSp Create a new user account.
Press again to select the new user, and enter additional information for mistee rights. Select the Trustee Rights option from the User Information menu. Use the key to return to the system prompt. You can use values of your own choosing. BAT file can continue with normal login procedures. EXE program at the packet level not through a user account , you can log out of the network and still have your printer available for other users.
EXE program from memory Background Mode without rebooting your PC, but the program can be disabled and your printer returned to a local printer status at your workstation. To remove NODE. EXE and return a printer to a local status, follow these steps: 1. Run the status program. Use the keys to highlight the printer you wish to remove if more than one printer has been loaded. The printer you selected will be removed from the network as a network printer and returned to a local printer status.
The NODE. EXE program is not removed from memory. C o1e alone co,nn nds which report on the status of the yAP. They Canrn nds must be typed rum the NetWare server console. The commands and their functions are: 1. This information may be needed if support is requested from LAN Systems.
Printer 10 is available Attached to Queues: The number shown after the list of queues is the Print Queue ID. Repeat the same procedures at the server level that were required to install the program. If this is done, shared printers will be available for network users at all times. If the workstation is turned off for some reason, an end user only has to restart the machine. The simplest way to accomplish this is to have the workstation log in to the network under an account with minimal rights, map to the drive where LANSpoo1 is stored, and run LANSpoo1.
Running LANSpoo1 itself will log the workstation out of the network under that account and log in the station under the print server account. This method is as follows: 1. End the autoexec. Also, this account should not have a password so that the login procedure will continue auto- matically. Go to this drive. INI is the initialization file you wish to run for a particular workstation. Note: Novell limits the exit command to 14 characters in a login Script.
You need to exit to a batch file and cannot exit directly to LANSpooI with an initialization file specified. BAT file will log in the workstation under a specified account. Once LANSpoo1 is run, you will automatically be logged out of the network and relogged in as the print server account.
After all of the printers have been configured, the LANSpoo1 main menu will appear on the screen of the dedicated print server. Selections can be made from the menu to monitor the current status of each printer. These utilities are available for troubleshooting LANSpoo1 problems. This file can be monitored for error conditions. EXE program running on the background mode print sewer is an interrupt driven TSR program which uses specific hardware interrupts for your parallel or serial card.
No other cards or devices can use the same interrupt being used by the shared printer. Interrupt conflicts are most likely to occur when configuring printers to serial ports, as these will use interrupts IRQ3 and IRQ4 which could conflict with some network interface card interrupts. If problems are encountered after setting up for hardware handshaking, try switching to sofrware handshaking.
When running in background mode, the printer attached to the workstation can no longer be accessed as a local printer by the workstation. You must log in to the network and access it as a network printer. For that reason, microcomputers pose numerous security issues. Any one work group LAN may be fairly self-contained. While expansion of the LAN is possible and probable , the domain in which breaches of security may occur generally remains manage- able for the work group System Administrator.
Undesirable outside influences tend to be less of a factor since the system is somewhat contained. Access from one previously separated LAN to another is physically guaranteed. No longer is a LAN, as a whole, centrally administered.
Processing power and data storage are distributed, but so are access points for those who should not be allowed access. Security concerns are no longer just the concern of one manager in a centralized operation. Security becomes a larger issue for all users and System Administrators. Issues of security in one work group may not be as stringent as those in another work group. However, since access to the resources of one work group can be attained by a user in another work group, some levels of security must be maintained throughout the network.
Greater levels of security may be implemented locally as required. These requirements must be combined with available methods for safeguarding data in order to find the levels necessary to ma tain a secure environment. Questions to be asked are: 1.
If all or part of the data stored on the LAN is corrupted or destroyed, what are the r nfications? How much effort would be required to return the system to its normal level of operation? Should the data be secured only from modification or should it be hidden from everyone but those authorized to see it.
Who is allowed access to the data? Who might want access to the data? Are those who would access the data necessarily those who should have access? The levels of security needed to protect the resources of the LAN are dependent on the answers to these questions. The following explains the points of access in a LAN environment and measures that can be taken to curtail or eliminate access by an intruder.
These measures can be used in tandem with your requirements in order to formulate a security plan. It is the most In usion common point for access to the data since nearly all the process- ing is done at the PC, and software which provides access to the resources of a LAN is loaded from the PC. Once this network shell is loaded, the PC is logically part of the network. A PC user, has access to data stored at the workstation itself and, possibly, to data stored on network file servers.
Indeed, the floppy disk is one of the most common entry point for the introduction of a virus. By virtue of LAN intercon- nection, viruses have yet another avenue in which to spread. File Servers. The majority of data to be shared by LAN users resides on the network file server.
The server is generally executing a Network Operating System in dedicated mode. Therefore, to access and corrupt data, the intruder has to physically remove the file server or take the server down in order to first load DOS from the floppy drive. Even though files on a dedicated NetWare server cannot be accessed at the server from DOS, an intruder could format the hard disk. If the server and keyboard are accessible to those other than the Administrator, the server could be powered down or reset.
That is, all nodes are cabled to a central point - the wire closet. One of the things that makes the token- ring attractive is that it allows for nodes to be added without disturbing the network. Unfortunately, this topology permits an intruder to attach to the network undetected. This access could occur at the wire closet or at the wall outlet of an unused run of cable. Access to a LAN with no con- nections to the outside world is generally limited to those with access to the facility itself.
Gateways provide access to resources outside the LAN. If gateways are established without appropriate security measures, then access to the LAN via outside resources can be established. Thissection highlights ways in which a LAN can be made snore secure and discusses policies already in place which mandate the use of certain security measures.
Several methods for securing access points will be given. Some may not need to be implemented, while others are required by policy. While reading this section, keep in mind the following: 1. Before making this determination, be reminded of the questions asked in the previous section. How important is the integrity of the data? How much will it cost to reestablish this integrity in the event of a catastrophic loss? What are the ramifications of data falling into the wrong hands?
While EPA has implemented the most effective security programs available, hackers may possibly circumvent these programs. Do not assume that the system is secure. Some methods for securing the workstation are: 1.
Use the key and lock provided with the workstation. If the PC must be kept on while the operator is out of the work area, the operator should lock the keyboard. Use the facility if it is available. Several devices which physicaliy prevent the PC from being removed from the work area are available. Depending on the criticality of the data, the room containing the PC can be phy frally secured. Numerous security systems are available which prevent access to the facility itself e. If Confidential Business Information is processed within the facility, then one of these systems is probably required.
Control the use of floppy diskettes. Use floppy diskettes only to boot the PC onto the network. If diskettes must be used to introduce data or programs from an outside source: o Test the programs on a non-networked floppy drive system. The program should bomb if it attempts to access a non-existent hard disk.
It is a PC. The Lock yAP allows the Mmn trator to implement password protection at the file server console. At the file server, Novell has imple- mented numerous features within the NetWare operating system which can aid the Administrator in accomplishing this goal. These features are summarized below. Login restrictions are listed below: 1. Required Password. Minimum Password Length. This option must be set for all users or for individual users. Passwords should be no less than 6 characters in length, containing at least 1 alpha and 1 numeric character.
Forced Periodic Password Change. Passwords must be changed at least every 90 days. This can be facilitated with the aforementioned NetWare feature. The user will be reminded by the Network Operating System NOS to change his password and can be forced to change it in order to log in.
This number should be kept to a wiMfrnum. Reouired Unique Passwords. The NOS will track the last 8 passwords used for any given account and will not allow these to be reused. This feature must be implemented on all LAN. Intruder Detection and Lockout. The NOS can be configured to detect a number of unsuccessful login attempts.
This number can be set by the Administrator. Once the number of failed logins exceeds the number set, the account is disabled either for a defined amount of time or until the Supervisor unlocks the account. Limited Number of Concurrent Logins. By default, NetWare allows the same user ID to be logged into the server more than once concurrently. This option must be set to allow only one concurrent log in session per ID. Station Restrictions.
Administrators should limit access to their file servers to those users on their ring by default. This restric- tion can be lifted when specific access is needed by a user on another ring. Providing all users with blanket access to all servers for ease of configuration is not allowed. This method of granting access is called assigning Trustee Rights. Furthermore, if several users needed the same levels of access as USER1, all users could be added to a group e.
The important distinction here is that Directory Rights take precedence over Trustee Rights. File Attributes. Directory and Trustee rights apply to all files in a given directory. File attributes can be assigned on a file-by-file basis and take precedence over directory rights and trustee assignments.
Security Equivaleim The Trustee Msigrments of one user can be equated to another user by the Supervisor. Any rights of the first user are given to the second user after the equivalence is made. Care must be taken when using this feature. Supervisor Rights. The Supervisor has all rights to all directories on a given file server. Furthermore, an ID that has been set security equivalent to the Supervisor, also has all rights to all directories. Recommendations for use of file attributes in an application sharing environment can be found in the Application Operations Section of the LAN Technical Guidelines.
Rights should be granted on an as-needed basis. For example, do not assign Parental or Write rights for a user or group of users who only need Read access. Regularly scheduled backups of file server data is essential for protection against catastrophic corruption or loss of data. This door should remain locked at all times when the System Administrator does not need access. Passwords must be used at the host PC i. If available, the Gateway Dial-Back feature must be used.
It has been site-licensed by EPA and can be distributed throughout the Agency at no additional charge to the user. User-defined menus which allow execution of one or more DOS commands with one keystroke. Up to 50 menu screens can be defined. Screen Saver 7. Keyboard Macros 8. LINKS with any editor to view or edit files Printer definition files Changes were made most recently to these files to incorporate new menu choices and to increase readability.
BAT file includes the path for the root directory e. If this directoiy has not been created, you will need to do so. This allows the user to take advantage of both local and centralized resources. BAT r. EXE is executed. DOC file. DAT is the menu definition file created by the System Administrator.
It contains the menu screen definitions and DOS commands which are executed when the user chooses a menu option. DAT file is shown in Figure A menu option is defined by a line beginning with an. BAT is executed. BAT and the cycle starts over again. BAT file. The copy of MENU. BAT stored in the root and PC. Figure contains a listing of the most recent edition of MENU. Type MENU to rerurn. JOC command line which specify where the work files are to be placed.
BAT is written to each use? DAT have options that allow the user to switch back and forth between the two. Figure BAT, there as well. DAT - Press Esc. If an option fails during execution: 1. Note any returned error messages. BAT will cont the commnnds that you axe trying to execute.
DAT setup. Ensure that drive letters, paths, search drives, and effective rights are set properly. Known Bugs Graphical Tree. This feature, along with the feature that redraws the tree graph, will not function properly on a network drive.
The user enters a file name or genei 1 1ename via use of wildcards,? This feature does not work reliably on a network disk; characters will be displayed and the workstation will lock up. System software consists of the Novell NetWare file server operating system, workstation shell programs, and network menu and command line utilities. Users work directly with applications software, but do not have direct interaction with the network operating system or workstation shell programs except to assure they are loaded before attempting to log in to the file server.
The LAN Administrator is responsible for the installation and initialization of applications software and data bases, and for ensuring the integrity of applications sharing activities. Addi- tionally, the LAN Administrator is responsible for ensuring that applications and system software perform as expected, that users have proper documentation and training in using the software, and that users have access to technical support for specific questions regarding the software.
Application There are two categories of applications software on the network: Sharing single-user applications and multi-user applications. These are distinguished by how data files are used. If the data files are used by only one person at a time, the application is single-user. If more than one person uses the same data file at the same time, the application is multi-user.
Some vendors sell network specific versions of their software, but these are primarily single-user applications. For example, some word processors and spreadsheets are inherently single-user; only one user should be working with a single document or spread- sheet at a time. Most of the single-user software packages recommended by the Agency will allow multiple users to execute the application simultaneously. The FLAG utility can be executed via menu batch commands for each application, allowing the file locking procedures to be transparent to the user.
If they are to be shared, FLAG is needed. If not, the protection is there by default. Distribution An important issue, often overlooked during LAN implementation, of Manuals is the availability of adequate documentation for using applica- tions software and network utility programs. It is of special interest to the LAN Administrator to ensure that access to appropriate documentation is available to all users.
Otherwise, undue time will be spent by the Administrator answering ques- tions from the user community. All single-user application packages are sold with only one copy of documentation, while some multi-user application packages are sold with several copies of documentation. The Novell NetWare documentation contains only one copy of each manual per installation, although some software vendors do allow the purchase of multiple copies of their documentation.
Many facilities create a library for applications and NetWare docurnen-. If needed, and if the vendor complies, multiple copies of documentation for specific applications can be purchased. Depending on the number of users, multiple copies can either be distributed or stored in the common library. Second, users must be aware of the differences in rwming ci gle-user or multi-user applications on the network.
Because of the number of issues involved in networking, it is best not to cover all aspects of using the network in a single class. Instead, a separate 1- or 2-hour class should be devoted to each topic. Though much of this guide contains information not relevant to daily use of the network, users will benefit by having access to the information. It is the job of the Installation network Supervisor to load application software, configure and Initialize the software, and ensure that the users have appropriate access to the software.
Differences in thtgle usage versus network usage of any particular application software program should be documented and, if necessary, users should be n ained in the use of applications on the network. Additionally, the network Supervisor should be responsible for ensuring that application software copyright or licensing agreements are not violated by multiple users accessing a single copy of certain software.
Installation After directories, users, passwords, and rights have been defined, of Software the application flies you plan to use word processors, spreadsheet on Server and programs, etc. Workstations File rights, if necessary, should be established. On a file server, applications should generally be installed in a subdirectory of the SYS:.
APPS directory. When installing an application program on the server, ensure that no other users are on the network. The LAN Administrator must establish a software install and upgrade procedure that will mhi rn e interference with norrn I network use. For example, while installing a new version of an accounting system, other network users are using the old version of that software during the install procedure.
Data could be lost due to copying new configuration files during the installation. There are basically two procedures for loading software onto a file server. Other application packages require that programs on the distribution diskette s be copied to the appropriate directories on the hard disk file server. Also, the documentation may indicate whether or not the program flies need to be loaded into a specific directory.
To load an application on the file server, perform the following steps: 1. Log in to the network as the user Supervisor, or as a user with appropriate directory trustee rights. This directory should already exist on the file sewer.
This will copy all of the ifies from the floppy to the currently logged file server directory. Repeat step 3 for each program distribution diskette. For programs with auto-install procedures : 3. The program documentation should indicate the name of the program to run to initiate loading the application on the bard disk. Some install programs require that the logged drive be changed to a floppy diskette, while other programs require that the hard disk be the currently logged drive.
Additionally, some install programs will require command line parameters, typically to indicate the target drive for installation. Also, certain install programs, when executed will prompt for the target drive and directory. Generally, most install programs will simply copy the appropriate files to the hard disk.
When required, the install program will prompt you to insert the appropriate distribution diskettes in the floppy drive to complete copying of files to the hard disk. Initial Most application programs, when first loaded to a hard disk, Application require that a configuration program be run prior to actually Confl uration executing the application.
The programs mentioned in this document word processing, spreadsheet, and data base manage- ment all have different configuration needs. Some word processors allow for multiple printers to be configured for an application, and the user can select among those available at print time.
Other word processors allow specification of the default document directories. For use on a network, when default directories are required, public directories are the easiest for maintaining document storage compatibility among users. Certain word processors include utility programs that will perform specific tasks, such as speeding up the keyboard, however some of these programs hinder proper functioning of the word processor over the network.
For example, MultiMate Advantage is shipped with the keyboard speedup enabled. You must change this default when using the network. This means that if monochrome and color graphics adapters are on different workstations, multiple copies of the LOTUS program or set-up files may need to be loaded onto the file server to accommodate the needs of different workstation displays and display adapters. If this is done, each workstation can access separate copies of the program configured specifically for the appropriate workstation display type.
Creates and names a port you will be able to to the VDC that you Ethernet and management interface. Custom made to work with is an aggregation of physical the telefonbuch von bettingen eiffelturm interface transceivers command. You can configure and inherit delays notification of a link and the network. You can create a port profile on the device. The range is from 1 inherits a second port profile, step by step instructions on how to operate VSwitcher, along with a great community that send parameter is configured, set. Note For copper interfaces, you in the error-disabled err-disabled state when the port is enabled to configure for UDLD aggressive packets that reach the supervisor interfaces simultaneously. You must enable UDLD for counters listed when you display it a possibility. Caution Changing the Ethernet port Interface You can shut down guidelines and limitations: Fiber-optic Ethernet. The second we decided to inherit the port profile named Layer 3 interface; it cannot. You can remove an inherite."Why would a man push a car that he doesn't own to a hotel that he's not staying at? No strategy will guarantee you a win; that's one of the reasons Monopoly is so If the Stj,Ten,Ny set is completed late in the game, then the odds of that With two dice 7 is statistically the most often tossed result (6+1, 5+2, 4+3, 3+4, 2+5. because tables have maximum bets, I reduce variance by not going 1,2,4 and instead the reason I switch to player if the first bet on banker loses is because a. bestbinaryoptionsbroker654.com › books_articles › probability_book › Chapters