Are your computers ready for this course?

You will use multiple computers to complete this course. Much of the course can be completed on your own personal computer (Linux, Windows or Mac). Recommendations will appear below.

You are required to display the results of your tasks on a website. Since some of the task require meteorological data or software, the preferred server for your website is the computer designated for this course: Gentry, (gentry.metr.ou.edu). All students enrolled in this course for credit will be given an account on Gentry. But it is possible to complete this course without using Gentry, if certain of the optional tasks are avoided.


Gentry

As of Fall 2005, the School of Meteorology has a rack-mounted computer designated for this course: Gentry. This is good news for the students in this course:


Windows

ssh

If you don't have the SSH client installed on your computer, download the SSH installer and execute it. We will test ssh after installing an X windows client, Xming.

Xming

Installing Xming X11 on Windows has two download links (the two plain "here") that may be out of date. I suggest you follow the advice there, including configuring the SSH that you installed, but go directly to Xming and download the Xming-mesa and Xming-fonts. There is an explanation there about the difference between Xming and Xming-mesa, I installed Xming-mesa, as linked in Installing Xming X11 on Windows. After installing Xming, start it, and then start the SSH client. After adjusting a few settings, you should be able to log onto Gentry in a very similar fashion to these instructions at Lehigh University

Python

Python is well supported on Windows, including many of the popular extensions. In May 2009, I got all I needed from Enthought. Just click the educational use button, and you will get a giant 239 MB epd_py25-4.2.30201-win32-x86.msi . After that file downloads, just click on it and follow the instructions.

XnView and Inkscape

The raster graphics tutorial will require viewing and converting PPM format image files. The free XnView does an admirable job. Likewise, the vector graphics tutorial will require viewing and converting SVG format files. The equally free and admirable Inkscape is exceptionally useful for viewing and editing SVG files.

ImageMagick

ImageMagick is not quite as slick an XnView, but it does allow for extensive command-line use and scripting. The commands are identical to those for Linux, such as the convert command seen in these tutorials. The one difference is that in Windows you type imdisplay instead of display to view an image.

Dev-C++

A free C++ compiler is available at BloodShed Software. For compiling a program contained within a single file, you don't need to open a project. Use the Dev-C++ GUI to open the file and compile it. An executable will be produced that can be run simply clicking on it. Or, if you need to pass command-line arguments, use the Windows Run and then CMD to open a command line window. Navigate to the directory of the executable. Then enter the name of the executable followed by the arguments. A simple (and fun) C program to compile and run is available at JuliaSets.

A text editor

You will benefit from an editor that highlights the syntax of various programming languages. Here is a list of those that highlight at least Python. I use VIM for all my editing tasks, on all platforms. VIM is powerful but has a reputation for being difficult to learn. Nedit if available from a GUI on Gentry. It is also possible to install and use Nedit on Windows, if you have X installed. But if you don't require working with the same editor across platform, a popular Windows-only editor is Notepad++.


Linux, Cygwin and Mac OS X

Much of this course was developed under Linux. It can be done well with a Linux operating system rather than with the above software on Windows. But if you don't already have Linux, or are not an experienced Linux user, there is no need to install Linux. For this course, a newbie Linux experience would probably not be superior to Windows.

If you want to try installing Linux on a desktop, I suggest Ubuntu. I would not recommend installing Linux on a notebook computer. If you have money to burn, you would likely save yourself from a lot of frustration by buying a notebook with Linux preinstalled.

Cygwin is a Linux-like environment for Windows. The installation is less intrusive than installing a complete Linux operating system, and it does not wipe out your simultaneous use of Windows capabilities. Cygwin does not offer an easy install of either numpy or matplotlib. Cygwin is no longer recommended for the purpose of course. Cygwin/X was once recommended because it provided a free way to get X-windows capabilities with Windows. But Xming now provides a superior experience at the same price. My deprecated notes on Cygwin will be retained here, for those interested, or for possible future revival.

There are plenty of Macs available for students here in the NWC. The Terminal application in Mac OS X provides interaction with a Linux-like operating system inside the Mac, very similar to Gentry. The X in Mac OS X stands for 10, and you will need to start the X11 application on your Mac if you want X window GUIs from Gentry to pop open on your Mac. Also you must connect to Gentry from the white console with the X on top.

I will not explain here (yet) how to install Python etc. locally on your Mac.


Testing your ssh connection to Gentry

For Mac OS X and Linux, invoking ssh from the command line requires identical commands. Information on configuring and using the ssh application in Windows has been linked above.

From the command line:

ssh gentry.metr.ou.edu

If your login on your local computer is not the same as on Gentry, e. g. joestudent, or if your local computer did not forward your login, then you may need to use:

ssh joestudent@gentry.metr.ou.edu

Connection via ssh should allow "forwarding of X-window traffic". For example, ssh will allow you to run a GUI text editor on Gentry,e.g. gedit or nedit, appearing on the monitor of your local computer. Applications that are normally run on a local Linux desktop can often be run satisfactorily over the internet from Gentry, if you have a fast connection, such as from a computer within the NWC. For example, if you log onto your account in Gentry and type

xclock

If the attempt produces a message

Error: Can't open display:

then logoff and try:

ssh -X joestudent@gentry.metr.ou.edu

Try xclock again. If successful, try some editing:

gedit junk.txt

and image viewing:

eog /it/storm_of_the_century.jpg

If windows pop up on your computer in five seconds or so, you are doing okay. (But that eog test may produce multiple complaints of "No profile, not correcting").

Here is a further test. Let's try using the python programming language on Gentry. On the command line and type python . The prompts (>>>) indicate that you are in python interpreter, meaning the computer is ready to accept python statements:

>>> x=2
>>> x**3
>>> from pylab import *
>>> plot([1,2,4])
>>> show()
>>> close()
>>> quit

Alternative you can type ipython and invoke a more extensive python interpreter. Furthermore, entering ipython -pylab saves the need to enter an explict from pylab import *. Also, pylab will import numpy into your global namespace, together with the plotting commands. Thus the global namespace will have a lot of stuff (somw call this namespace pollution), as the dir() statement reveals:

In [1]: dir()
In [2]: plot([1,2,4])
In [3]: close()
In [4]: help(corrcoef)
In [5]: cc=corrcoef([1,2,3],[3,2,2])
In [6]: cc
In [7]: type(cc)
In [8]: quit

If the delays in entering text and the opening of the other GUIs were acceptable to you, then the bulk of your computer for this course could be Gentry itself. (I found the speed to be only marginally acceptable using a Cox Cable connection from home).

Note: ipython is handy for exploring little bits of python code and syntax. But for lengthy program development, I use my favorite text editor to make an executable python script and then run the entire script from the command line.

But ipython is extremely useful in Windows. It allows both a command-line experience for invoking python scripts with command-line arguments and testing out snippets of python code. You might need this someday: ipython manual

Your primary interaction with Gentry will be from the Linux command line, which you can learn about at An introduction to the Linux command line.