CSE logo University of Washington Computer Science & Engineering
 Working From Home - CSE 331 Winter 2012
  CSE Home   About Us    Search    Contact Info 

   

Working From Home

Working at home (or in coffee shops, etc.) is convenient except that your computer is unlikely to have the software you need for CSE331 installed and properly configured as it is in the CSE labs. Installing and configuring all the software on your own machine is often a complicated and tedious task, largely because of the many variations in versions, environments, etc. We strongly suggest using the CSE lab machines (such as attu), and we will provide support if you have problems with your account. . If you wish to set up your own machine to permit you to do your CSE 331 work directly, this document sketches you how to do so. However, the CSE331 staff will not provide support (beyond these instructions) for setting up the CSE331 tools on your own machine; if you have trouble, you are on your own. (Some souls might want to explore the CSE-provided instructional home VM, which nearly replicates the attu environment.)


Get the Java Development Kit(JDK)

You want to download the Java 6 JDK. There are a lot of things on the download page with nearly the same name. Look for the entry next to "Java SE 6" in the "Java Platform, Standard Edition" table.

Please use Java 6 if possible rather than Java 7, which has not yet been installed in the labs. You don't need to uninstall Java 7 if you have it already, but using new Java 7 features will place you at the mercy of an unhappy grader. ;)


Setup the JAVA_HOME Environment Variable

Create an environment variable called JAVA_HOME that points to the directory in which you installed the JDK. To get javadoc to work correctly, you also need to add the bin directory of JAVA_HOME to your PATH environment variable.

Windows. To set environment variables on Windows, go to Control Panel >> System and Security >> System >> Advanced System Settings >> Environmental Variables. Add a new variable to the System variables called JAVA_HOME. Its value will be the location of the SDK (which is most likely C:\Program Files\Java\jdk1.6.0_18). Then append %JAVA_HOME%\bin to your PATH environment variable under System variables. This will put the executables associated with the JDK in your path. On Windows, PATH elements are separated by semicolons, so you may have to add a semicolon to the end of your PATH variable before appending %JAVA_HOME%\bin.

Linux. To set environment variables in bash, add the following lines to your .bashrc file:

export JAVA_HOME wherever you installed the JDK
export PATH=$PATH:$JAVA_HOME/bin


Get Eclipse

In CSE331, we will use version 3.6 (Helios) of Eclipse.

Eclipse does not come with an installer, which confuses many people. Instead, download it, unzip it into a directory, and then run the executable in that directory to start Eclipse. There are some small bugs in Ant within Eclipse that manifest themselves if it is installed in a directory with spaces in its name, so instead of installing it into a directory such as

C:\eclipse

(avoiding directories such as "Documents and Settings" and "Program Files".)

Install Subversion (svn)

You don't need to do this until we have an assignment requiring svn.

Follow the official installation instructions here and/or Marty Stepp's instructions here to install the Subclipse SVN Eclipse plugin.


Remote access: attu, ssh, and scp

It's often useful to access your CSE account remotely. For instance, you may want to upload files from your laptop to use the departmental servers as a backup. Or you may have been working on a lab machine, and now you want to download your code to continue working at home. You can access the CSE network by logging into attu, a departmental server (actually a cluster of four servers).

Please note that none of this information is strictly required for this course. We are providing it for your general knowledge.

  • If you only want to transfer files, you can use scp ("secure copy") or ftp ("file transfer protocol"). If you want to run commands remotely on departmental servers, use ssh to open a remote shell window on attu. You can then execute Linux commands, edit files through a text editor like Emacs or Vim, run a Java program, etc.
    • On Windows, you can use scp through a GUI window with WinSCP. You can use ssh through a program like PuTTY.
    • Macs and Linux provide built-in support for ssh, scp, and ftp. You can simply open a terminal window and run any of these at the command-line.
  • To ssh or scp into attu, use host name attu.cs.washington.edu, your CSE NetID as the username, and your password for the Linux lab machines.
  • When you log in, you will be in your Linux home directory. On a Windows lab machine, this directory is located at Z:\. Files stored on your Windows account (My Documents, etc.) may be located within the WindowsFolders subdirectory. (I've personally found it easiest and safest to save everything in Z:\ when I work on Windows.)
  • The first time you connect to attu from a given machine, you will receive a warning like this:
  • The authenticity of host 'attu.cs.washington.edu (128.208.1.139)' can't be established. 

    Along with the warning, the SSH or SCP client will display the RSA key fingerprint of the remote host so that you can verify the host's identity (verifying helps to prevent man-in-the-middle attacks). In our case, it is safe to say 'yes' to continue connecting. When you connect, SSH will cache the host key in order to automatically verify the remote host's identity in the future.

  • Learn more about using Linux/Unix in the department here (particularly in the "Introduction Linux Tutorial"). Learn more about remote access to departmental servers here.
  • Questions? Don't be shy about asking staff for help during office hours! Or just walk into 002 with a laptop and ask for help - chances are that someone will be happy to share their knowledge. (I'm not making this up.)


CSE logo Computer Science & Engineering
Box 352350, University of Washington
Seattle, WA  98195-2350
(206) 543-1695
[comments to Hal Perkins]
Privacy policy and terms of use