Preparing Your Computer For This Course

Introduction

Much of the work that you do for this course will take place on the atmospheric science department's server, Blizzard. However, you will need to set up your own personal computer (running Linux, Windows, or Mac) in order to connect to this machine and complete the assigned tasks, including displaying your results on your website.

Blizzard

All students enrolled in this course will be given an account on the atmospheric science department's server, Blizzard. This server will host your website where you will display your completed tasks within a password-protected area. You have shell access to Blizzard, which allows you to develop and test your programs and scripts on the machine that also serves your Web pages. This eliminates a lot of potential problems with your work. Blizzard runs Linux, so your primary interaction with it will be with the Linux command line, which you can learn about at LinuxCommand.org. Fortunately, I have root access to Blizzard, so I can configure some applications specifically for this course and I can access your files and help you debug your programs. It is possible, and likely far easier, to complete all of the assigned tasks on Blizzard, provided you have a remote computer that can display X-windows, but you are not required to do so. You may instead choose to perform many computations on your local computer.

Windows

PuTTY

If you don't already have an SSH client installed on your computer, please download and install PuTTY. SSH Secure Shell is actually my favorite SSH client, but that is no longer compatible with Blizzard's security protocols. So while PuTTY has problems when pasting certain text characters from Windows, it will have to do the job. With PuTTY, you can customize the background and foreground colors to your taste and save your settings to make it very easy to connect to Blizzard with two mouse clicks. You can test your new SSH client after you install an X-windows client called Xming.

Xming

When you start a session with an SSH client, you are connecting to a remote server and can enter text commands and see the text responses from the server. Sometimes this is sufficient to accomplish your goal for the session, but often you will want to run an application that opens up a graphical user interface (GUI) in a separate window. For this to work, you need to tell the remote server where to send the GUI window and to configure your local computer to open the window. Visit Xming and download the latest public domain release of both Xming and Xming-fonts. Install Xming and then install Xming-fonts. Close Xming if it started after installation and then restart it and start your SSH client. You may need to adjust a few settings, including configuring your SSH client to enable X11 forwarding, but you can now log in to Blizzard. To enable X11 forwarding, and to view gvim windows on your machine, go to the PuTTY Configuration, navigate to Connection > SSH > X11, and check the box next to "Enable X11 forwarding." Be sure to save your settings under your Blizzard profile for quick connections later.

Secure File Transfer Protocol (SFTP) Client

You may need to move files from your computer to Blizzard and vice versa. The best available application I have found for this is WinSCP, but I haven't tried the Bitvise SSH Client, which is available as a companion to PuTTY. WinSCP certainly has its shortcomings, so if you try the Bitvise SSH Client, let me know how it goes!

Text Editor

I highly recommend a text editor that highlights the syntax of various programming languages. I use Vim because of its powerful capabilities (and pretty colors). Vim sports a rather formidable learning curve, but after you master its tricks, you'll wonder why you ever used anything else! Vim and its GUI version, gvim, are both available on Blizzard, so you do not need to install them on your own computer. When using Blizzard, I highly recommend adopting Vim as your own text editor. To get started with Vim, step through this Vim tutorial. Also have a look at some Vim shortcut keys, though this list does not include some shortcuts that I like to use, such as Y, which copies an entire line, or D, which deletes everything from the cursor to the end of a line. Visit my Customizing GVIM tutorial to tailor your experience with gvim. A popular Windows-only alternative to Vim is Notepad++, but you will run into a (fixable) problem with invisible carriage returns when you send your files from your Windows machine to Blizzard.

Optional Applications

An SSH client, SFTP client, and Xming are the only necessary applications for your Windows machine if you choose to work completely on Blizzard. I recommend this for now. If you prefer to perform computations on your local computer, then you will want to install the latest version of Python (I used to recommend version 2.7 because it has better scientific library support and is what we use on Blizzard, but I think Python 3 has caught up), as well as XnView, Inkscape, and ImageMagick for raster and vector graphics manipulation and conversion. A popular and easily-installed scientific distribution for Python is the Anaconda distribution. Blizzard uses the Enthought Python distribution.

Linux

You can complete this course using only Linux, provided you have some familiarity with the Linux operating system and you already have it installed on your own machine. If you don't already have Linux, or are not an experienced Linux user, then do not install Linux. You would do well to stick with Windows instead. Despite my experience with Linux, I prefer to use the Windows operating system and connect to a remote server with an SSH client and Xming. If you want to try installing a Linux-based operating system on your desktop computer, try Ubuntu. Installing Linux on a laptop computer looks complicated, so you could save yourself some time and frustration by purchasing a laptop with Linux preinstalled.

Mac OS X

The Terminal application in Mac OS X provides similar functionality to Putty for Windows, but to use X11 tunneling, I recommend downloading XQuartz if it is not already on your machine. The latter option allows GUIs from Blizzard to open on your screen. There are some shortcuts that you can implement to make connections to Blizzard rather painless (e.g., creating an alias for the connection), but the specifics of the setup will depend on your system. Please ask for help. Beyond a connection to Blizzard, my troubleshooting skills on Apple computers ended with the Apple IIe, but you can likely find plenty of help with your Mac for issues unrelated to this course from the Internet or others on campus.

Test Your SSH Connection to Blizzard

Your login name on Blizzard is the same as your UNCA email login. If your email address is astudent@unca.edu, then your login on Blizzard is astudent. You should already know your password.

For Mac OS X and Linux, invoke SSH from the command line in your terminal window: ssh blizzard.atms.unca.edu If the login name on your local computer is not the same as your login name on Blizzard, or if your local computer did not forward your login, then try ssh astudent@blizzard.atms.unca.edu
If you are using Windows, configure your SSH application using the links above. The host name is blizzard.atms.unca.edu and the user name is your login, e.g., astudent. Configured correctly, connection to a remote server via SSH forwards your X11 connection. This means that any GUIs on Blizzard, such as an image or a gvim window for editing text, will appear on your local machine. However, you must have Xming running on your local machine for this to work.

Once you are logged in to your account on Blizzard, type: xclock If this produces an error that includes Error: Can't open display: then something went wrong with your X11 tunneling. If you are using PuTTY, try reconfiguring your tunneling following these instructions, being sure to follow the instructions for PuTTY. If you are connecting from any machine other than Windows, try ssh -X astudent@blizzard.atms.unca.edu and try xclock again. The -X option forwards your X11 connection to a second remote server. You may, for example, want to connect from an existing remote connection on Dr. Hennon's machine Cyclone to Blizzard and forward your X11 connection so that you can see GUIs from Blizzard on your local machine. If you see an error that looks more like X connection to localhost:10.0 broken then you need to start Xming on your local machine. If you are using the Terminal application on a Mac, then it would be better to try ssh -Y astudent@blizzard.atms.unca.edu to introduce some additional functionality. If a clock successfully pops up on the screen, then try editing a text file: gvim file.txt or viewing an image: p eog /usr/share/backgrounds/morning.jpg & If a window pops up within a reasonable amount of time (5-10 seconds) in either of these tests, then you have an acceptable connection speed and you could do nearly all of your work for this course on Blizzard. The ampersand (&) at the end of the second example above runs the UNIX command in the background and gives you a new prompt immediately. You may want to put an ampersand (&) at the end of commands that bring up new windows so that you can keep working in the current window (gvim is smart and gives back the prompt anyway). Note that the ampersand means something different when used immediately after a greater than sign (>) or a pipe symbol (|) for output redirection and piping, respectively.

Now let's try using the Python programming language on Blizzard. On the command line, type python. The >>> prompt indicates that you are in the python interpreter, meaning that the machine awaits your python statements: >>> x=10
>>> y=4
>>> x**3
>>> x+y
>>> import time
>>> from time import gmtime
>>> datetime=time.gmtime(time.time())
>>> print datetime
The variable datetime now contains information on the UTC date and time. You could put these lines into a python script that grabs the current system time and does something great, like downloading files and saving them with file names based on the download time. We'll get to that later. To exit the python interpreter, hit Ctrl-D.

North Carolina's Public Liberal Arts University