Q. What is Hopper?
A. Hopper is a powerful, interactive, cross-platform tool for performing file management and data transfer tasks. Through Hopper's graphical interface, a user can perform operations on files and directories that reside on the local host, on remote hosts, and on remote resources such as HPSS.

Q. How do I submit feature requests, bug reports, or other feedback?
A. Send feature requests and feedback to hopper-feedback@llnl.gov. Problems should be reported to the LC Hotline, 925-422-4531 or lc-hotline@llnl.gov.

Q. Will Hopper run on my Mac/PC/Unix desktop?
A. Probably. Hopper runs on Mac OS X, Windows NT/2000/XP, and most variants of Unix. Basically, any platform that supports Java JDK 1.4 or later will likely run Hopper.


Q. How do I open multiple windows to one host?
A. There are several ways to do this. To open another window displaying the same directory, just choose the "Display in New Window" option from the File menu. To create a new window showing a sub-directory, single-click the middle mouse button on the icon or name of the directory you want to display in another window. This opens a new window displaying that directory's contents. You can also use the right mouse button over a directory entry and choose "Display in New Window" from the menu. (On systems with a one-button mouse, a right click can be generated by holding the Control or Command key down while clicking the mouse.)

Q. How do I transfer files or directories?
Transferring files and directories is done via drag and drop. Use the mouse to select the items you want to transfer, click and hold the left mouse button, drag the cursor to the destination of your transfer in another window, then release the mouse button. The cursor should change to a "happy face" when you're over a valid destination. Once you release the cursor a menu will pop-up showing your options. Choose "Copy Here" to initiate the copy.

Q. How do I move files rather than copy them?
A. Follow the directions from above for copying, but choose "Move Here" from the drop menu. Note that moves are only possible within a given host. I.e., you cannot move files from one host to another. If you need this behavior you can copy the files and then delete the originals.

Q. When in tree view, how do I copy into a sub-directory?
A. In tree view you must drag onto the folder icon of the sub-directory when you want to move or copy into it. Unlike in tabular view, dragging onto the neighboring whitespace is not adequate. A useful hint is to look for the folder icon turning red during the drag operation; this indicates that "dropping" there will deposit items into that folder.

Q. How do I get more information about my file transfer?
A. Within the Transfer Manager window, either double click on the transfer's status line, or single click on it and press the Details button.

Q. How do I interrupt a transfer or other operation?
A. To interrupt file transfers, select the line of interest in the Transfer Manager dialog, then click the Abort button. To interrupt other types of operations, press the red Stop button. Note that some actions are not interruptible, and will be indicated by the Stop button being disabled (grayed out).

Q. How do I select more than one file or directory?
In the tabular display mode, click on the first item of interest and Control-click on any additional items you wish to select. If you want to select contiguous items, click in the white space following a file or directory name and sweep the cursor up, down, or to the side to select a range. Selections in the detailed display mode are similar, but you can also extend a selection by Shift-clicking. If you want to select all items, choose "Select All" from the Select menu. (On a Mac, use the Command key instead of Control).

Q. How do I synchronize two directories?
A. Hopper can now perform rsync-style directory synchronization operations. This uses rsync when it is available, and uses built-in logic for doing synchronize operations involving hosts that do not support rsync. For example, suppose we want to synchronize from directory DirA on host HostA to directory DirB on host HostB. To do this, first open directory windows for both HostA and HostB. Select DirA on HostA and drag it atop the directory icon or name for DirB on HostB. From the resulting pop-up menu, choose "Synchronize this Directory". Before a synchronization operation is actually invoked, a tabbed dialog is displayed that describes the operation and allows you to set various options. Take a look at the Function tab, which is of particular interest. Note that you can perform a dry run. Once a synchronization operation is underway, it is run in the background as a file transfer job. Use the Transfer Manager window to keep track of the synchronization job. As with any file transfer job, the Transfer Manager allows you to display a file transfer monitor window so you can view details of the transfer (and this is where you can view results of dry runs).

Q. What is the "C" button? What do you mean by "caching?"
A. The "C" button toggles directory caching. When active, a directory's content information is cached in memory for use during that session. This removes the need for a directory listing operation the next time a previously visited directory is displayed. This can be useful when connected to very slow remote systems. Even when caching is on, Hopper will get a new listing if it knows the cached directory changed. When caching is off, a fresh directory listing is generated each time a directory is visited.

Q. How can I make Hopper use scp for file transfers?
A. By default, Hopper uses sftp for performing secure file transfers. There are a number of good reasons for this, including better throughput and fewer authentications. If you need to use scp, though, just open the Operations->File Transfer preferences and select the "Use SCP if possible" option.

Q. How do I tell Hopper to pass command line flags to ssh, scp, or sftp?
A. Simply enter the command line flags following the executable names in the Connection->SSH preferences. For instance, if you're using certain versions of OpenSSH clients and want to force protocol-1 to be used, set the ssh path preference to "ssh -1".

Q. How should I connect to storage (HPSS)?
A. Using the "Connect to Storage" item from the Connect menu will use the best available technique for connecting to storage from the given host. On LLNL production hosts there are three choices for connecting to storage: Storage, NFT, and FTP. The Storage option utilizes the HPSS client API, and provides a full- featured interface to storage. This includes changing permissions and group values. Transfers from production machines use parallel FTP. The NFT option is comparable to the NFT command line client; performance is slower than HPSS for some operations, but transfers are parallel and persistent. The FTP option uses standard, serial FTP transfers, and offers a reduced set of functionality.

Q. Why do my xterm windows go away when I exit Hopper?
A. By default, xterm windows launched via Hopper will persist after Hopper exits. However, this behavior can be changed via the "Preserve remote xterms" item in the Operations Dialogs -> Launch Xterm preferences. If your xterms are going away against your wishes, restore this preference to the factory setting.

Q. How can I make Hopper correctly display or operate on directory names which contain Unicode characters?
A. On some Unix-based systems, setting an environment variable that defines localization will allow Hopper to display and/or operate on Latin Unicode paths correctly. Try setting LC_CTYPE to "en_US.UTF-8" before launching Hopper. This should work on many Unix systems, but on some it will be ignored, and on others it may slow Hopper interactivity.

Q. How can I find out what's going on behind the scenes with Hopper?
A. Hopper is a very complex application and often manages multiple connections and dozens of threads. The "Audit Manager" window (via the Windows menu) lets you see what Hopper is really doing. The Actions tab shows all of the high-level commands executed by Hopper, including transfers and other directory operations. The Connections tab shows all of the connections being managed by Hopper, including active and inactive (cached) ones. The Passwords tab shows information related to password prompts—e.g., who is asking for a password and why.


Q. Something went wrong. Where do I find the error messages?
A. If an error occurs during a non-transfer operation, Hopper's status field will say "ERROR -- CLICK HERE FOR DETAILS". Clicking on that message will bring up the diagnostics window, which you can get to at any time via the Windows menu. If an error occurs during a file transfer, information is displayed in the Transfer Manager window, also available via the Windows menu. If an error occurs during a search, see the Search Manager window.

Q. Why can't Hopper connect to [host]?
First, make sure that the host is up and accepting connections by trying to connect manually. (Use the same option you tried in Hopper—e.g., if you tried to open an ssh connection in Hopper try running "ssh host" from a shell window). If the manual connection works, double check your "Connection Types" preferences to make sure everything is correct. For failed ftp connections, try changing the "passive mode" preference value. If you're still stuck, contact the LC Hotline.

Q. I'm getting fewer (or more) password prompts than I expected. Why?
Hopper does a lot of work to reduce the password prompts you see; freed connections are cached and re-used and authentication information is stored during the session and re-used whenever possible. However, Hopper is a highly concurrent application; you can start one transfer, manipulate files in the source or sink window during the transfer, and even start additional transfers. The price for this flexibility is that multiple connections are required. In most cases, you'll only have to enter your password for a given host just once. In the worst case, however, a password prompt is required for each connection. On systems that support it, you can reduce password prompts by setting up SSH keys. There are some cases when using scp transfers that you will have to authenticate frequently, possibly once per file moved. For this reason we set the default secure transfer mode to sftp, and encourage its use.

Q. Hopper sometimes slows down if I run it on a remote host and display it locally. Why?
A. Hopper performs well on local and most remote systems. Slowdowns are usually caused by the remote host being heavily loaded (check the load average reported by the Unix 'uptime' command.) Also, we've seen some versions of SSH that perform poorly when tunneling X11. Java applications are particularly sensitive to SSH's implementation of X tunneling. OpenSSH versions other than 3.6p1 seem to have the best X tunneling performance. One way to speed up X11 applications is to disable X tunneling, such as with the xauth application. Note that when SSH X tunneling is bypassed any passwords entered via Hopper will be sent in the clear over the network.

Q. Double-clicking on the Hopper jar file on my Windows system does not launch Hopper, even though I have the proper Java installed. Why not?
A. Windows systems usually have an association between jar files and java, such that double clicking on a jar file launches java. This is not always set up, though, especially on XP. For this reason we now distribute Hopper as a self-contained exe file for Windows to avoid these potential issues. The exe file also verifies that a recent-enough version of java is available.

Q. I'm seeing really odd looking windows when I run Hopper on a remote system and displaying it with X11 on my Mac. Why?
We've seen this behavior on Macs running OS X 10.4 (or later) when the connection to the remote system was made with ssh. X11 tunneling behavior changed in recent versions of OpenSSH, causing problems when connecting to some older servers. To preserve backward compatibility, use the -Y command line option when making an ssh connection. E.g., "ssh -Y hostname". Note that related problems can occur on non-Macs running newer versions of OpenSSH; use the -X or -Y command line flag to work around the problem, depending on the version of ssh client you're using.

Q. Why doesn't the "Launch Xterm" button work on the Mac?
It will work, but requires some set-up. There are three things to check. The first needs to be done each time you run Hopper. The last two need only be done once.

  1. Make sure the "X Window System" application (usually at /Applications/Utilities/X11) is running.
  2. Make sure ssh is set up to forward X11. This can be done by adding a command line option in the Hopper preference for ssh (Preferences->Connections->SSH->Path of ssh). For Macs running OS X 10.4 or higher, set this to "ssh -Y." For Macs using an older OS, set this to "ssh -X."
  3. Make sure your DISPLAY environment variable is set by running this command in a terminal window:

        defaults write ~/.MacOSX/environment "DISPLAY" ":0.0
    After executing this command, log out and log back in again, and Hopper should be able to launch local and remote Xterm windows.