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?
Q. Will Hopper run on my Mac/PC/Unix desktop?
A. Probably. Hopper runs on Mac OS X, Windows, and most variants of Unix. Basically, any platform that supports Java JDK 1.7 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?
A. 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 detailed view, how do I copy into a sub-directory?
A. In detailed 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 name 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 the "circle-i" 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?
A. 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 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. Users can also use the "Connect to Remote" item. On LLNL production hosts, there are four choices for connecting to storage: HPSS, NFT, HSI, and FTP. The HPSS option 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. The HSI option is comparable to the HSI command-line client.
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 -> 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]?
A. 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, 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?
A. 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. 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. Why doesn't the "Launch Xterm" button work on the Mac?
A. 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.
- Make sure the "X Window System" application (usually at /Applications/Utilities/X11) is running.
- 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). Set this to "ssh -Y".
- 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.