Using the GraphTerm Virtual Computer Lab¶
Contents
- Using the GraphTerm Virtual Computer Lab
- Logging in
- Creating and leaving terminal sessions
- Troubleshooting
- Sharing terminal sessions
- Pasting text into the terminal
- GraphTerm Notebook interface
- Running IPython Notebook server
- Opening Python notebooks in GraphTerm
- Saving and exiting python notebooks
- Downloading files
- Uploading files
- SSH key access
- Keyboard shortcuts
- Windows-specific tips
- Tips for Android/iPhone/IPad
Logging in¶
Open the URL provided by the instructor (usually of the form
http://hostname.domain
) in your web browser. (Google Chrome works
best, but Firefox, Safari, or IE10 would also work.) Then type in the user
name and the access code. If you are creating a new account, you will
need to enter the group access code obtained from your
instructor. Select a user name that will be meaningful to the
instructor, like your first initial followed by your last name (all
lower-case), e.g., jsmith
for Jim Smith. If you have a Google
GMail account, you can choose to link it to your GraphTerm server
account for password-less logins by clicking the Google Auth button.
(You will still need to enter the group access code the very first
time to create your new account and link it to your GMail account.)
Note: If the URL is of the https//...
form, you may encounter
warning messages about untrusted certificates, and be asked to make an
exception. The instructor may ask you to ignore these warnings and
accept the certificate, if the GraphTerm server has been configured to
use a self-signed certificate. Also, self-signed certificates do not
work with Safari on the Mac; use Chrome or Firefox instead.
If you just created a new user account, note down your user name and personal access code, as you will need it for logging in later (unless you are using Google Authentication). You may optionally enter your email address at this point. If you forget your personal access code, the instructor can retrieve it for you.
If you have a Mac/Linux desktop/laptop, you can download the
executable python script $GTERM_DIR/bin/gterm.py
and type the
following command on your desktop/laptop:
gterm.py -u user http://hostname.domain
to open a terminal on the remote server without having to type in the access code (after the first time).
On Windows: The Google Chrome and Firefox browsers work best, but Internet Explorer 10 should also be usable, with some limitations.
Creating and leaving terminal sessions¶
After logging in, choose the host that has the same name as your user
name, and then you can connect to an existing terminal session or
create a new terminal session. You can choose a specific name for a
new terminal session, or type the special name new
to
automatically choose names like tty1
, tty2
etc. You can also
create new terminals as needed using the terminal/new menu option.
You can type standard Unix commands, like cd
, ls
, cp
etc. in the terminal. The command menu lists some commonly used
commands. Often, it is preferable to use the GraphTerm-aware gls
command, instead of the standard ls
command, as it allows you to
navigate directories by clicking.
To leave a terminal session, use the terminal/detach option, which will return you to the list of terminals. Detaching a terminal still keeps it alive, and you connect to it at a later time, without losing its state. For example, you can create a terminal at work, and later connect to it from home.
Troubleshooting¶
If the terminal is unresponsive (i.e., appears to “hang”), try one or more of the following:
- Do what you would normally do in a Unix terminal, type
Control-C
to interrupt the currently running program. You can also use the command/interrupt menu option instead.- If you are in the fullscreen graphics mode (e.g., using
gframe
), you may need to click on the top of the terminal portion of the window to get the input focus out of the embedded frame and then typeControl-C
. You can also try the command/parent interrupt menu option to interrupt the currently running program in the parent window.- Are you in the notebook mode? If so, the notebook name will appear on the top, with the prefix “NB”. To exit the notebook mode, use the notebook/quit menu option, or type Control-C and then type Control-D to exit the python interpreter. (Remember to save the notebook before exiting, if necessary.)
- Use the terminal/reload menu option or the browser’s reload button to reload the web page. Copy/paste any displayed code in notebook cells before reloading, as you may lose it.
Sharing terminal sessions¶
If your instructor has enabled sharing for all, or created sharing groups, you can view and control terminals belonging to other users, who will appear as additional hosts.
You can watch someone else’s terminal, without controlling it, simply by selecting a different host from the list. You can also steal control of someone else’s terminal, if the terminal owner has previously unchecked the share/locked menu option. (To regain control, the terminal owner would have to steal it back.)
Chatting: Using the command/chat option, you can enable chat communication between all watchers for a terminal session. The command needs to be invoked at the shell prompt, before running the python interpreter or opening a notebook, and it displays a chat button near the top right corner. When chatting, an alert button also becomes available to attract the attention of the watchers (which may include the instructor).
There is also an experimental option for unlocked terminals, share/tandem, which allows two people to control a terminal simultaneously. However, sometimes this can lead to unpredictable results, due to the time lags between terminal operations by multiple users.
Pasting text into the terminal¶
To paste copied text into the terminal, click on the red cursor and then use the standard paste command on your computer (Command-V on the Mac and Control-V on other systems). If the keyboard command does not work, you can try the terminal/paste special menu option.
GraphTerm Notebook interface¶
Two ways to use the notebook interface are supported in the virtual computer lab:
1. Using the lightweight Notebook mode built into the remote GraphTerm terminal.
2. Running the IPython Notebook server on the remote computer and accessing it using a browser on your local computer (see next section for detailed instructions).
The GraphTerm notebook interface is implemented as a wrapper on top of
the standard python command line interface. It provides basic notebook
functionality, but is not a full-featured environment like IPython
Notebook. It does support the same notebook format, which means that
you can create simple notebooks in GraphTerm, save them as .ipynb
files and open them later using IPython Notebook, and vice versa.
The GraphTerm notebook interface is integrated into the terminal,
which allow seamless switching between the python command line and
notebook mode, as well as “live sharing” of notebooks across shared
terminals.
Running IPython Notebook server¶
To access the full features of the IPython Notebook, you can run your
own password-protected public IPython Notebook server on the remote
machine using the gnbserver
command (if the instructor has
enabled this option). You can then access it using your local browser,
with an URL of the form https://hostname.domain:port
, where
port
is the port number output by the gnbserver
command. The
notebook password is the same as the access code for your user
account. (Note: Run the gnbserver
command in a separate terminal window.)
Once the server is running, individual notebook files can be opened in
the IPython Notebook server using the gipynb
command:
gipynb notebook.ipynb
or by simply clicking on the .ipynb
file in the gls
output
listing.
Note: If each user is running their own copy of the IPython Notebook server, it can degrade performance on a shared computer. Please consider shutting down the server when you are not using it.
Opening Python notebooks in GraphTerm¶
To open a new python notebook, use the menu command notebook/new/pylab
To open an existing notebook, use the gls
command to list your
notebooks, e,g.:
gls *.ipynb
Then click on the notebook that you wish to open. This will open the
notebook using the IPython Notebook server, if it is running, or using
the GraphTerm notebook mode otherwise. Alternatively, you can also use
the gopen
command:
gopen notebook.ipynb
To open notebook files using the built-in GraphTerm notebook mode, you
can use the gpython
or gipython
command:
gpython notebook.ipynb
or simply run the standard python
command and type Shift-Enter to enter
the notebook mode as needed.
Once you have opened a notebook, you can enter code in the notebook cells. Type either Control-Enter to execute code in-place, or Shift-Enter to execute and move to the next cell (creating a new cell, if necessary). You can also use the run button on the top menu, which behaves like Shift-Enter but does not create new cells. Other notebook operations can be carried out using the notebook menu or the keyboard shortcuts listed under help/notebook shortcuts.
Saving and exiting python notebooks¶
IPython Notebook server has a menu option to save notebooks. To exit the notebook, click the red X in the top left corner.
To save a GraphTerm mode notebook, use the menu command notebook/save. To exit the GraphTerm notebook mode, you can simply type Control-C or use the notebook/quit menu option. This returns you to the python command line, with the chevron (>>>) prompt.
To exit the python command line, type Control-D or the following command:
>>> exit()
Downloading files¶
To download files, use the gdownload
command:
gdownload filename(s)
Right-click (or control-click) on the displayed link to download. On
some browsers, like Chrome, directly clicking on the link would also
work. If more than one file (or a directory) is specified for downloading,
the command automatically creates a zip archive. This works well
for archive sizes of 1-2 MB, but for larger archives, you should create the
archive yourself using the zip
command and then download the
single archive file.
You can also download multiple files, one-at-a-time, using the following command:
gls --download filenames
Click on the displayed filenames to download.
Note: Browsers other than Chrome typically append .html
or .htm
to the downloaded filename. For example, file abc.ipynb
may be downloaded
as abc.ipynb.html
. If needed, you can rename the downloaded file by
gently clicking on the name in the Finder window and deleting the
.html
extension.
Uploading files¶
Use the gupload
command to upload files to the remote
terminal. First cd
to the directory where you want to upload the
file and type:
gupload optional_filename
Then select (or drag-and-drop) the file from your local computer. If you do not provide a filename, the original filename will be used. This command works well for file sizes of a few MB, but can be quite slow for larger files.
On Windows: Drag-and-drop for files currently does not work with IE10.
SSH key access¶
If you have an SSH client on your local computer, upload the public key
file (usually id_rsa.pub
) using the gupload
command as
~/.ssh/authorized_keys
to enable SSH access to your account:
ssh username@server_domain
Keyboard shortcuts¶
The special keystroke Control-J, followed by a sequence of letters, can be used to access all menu commands from the keyboard. The letter to be typed is highlighted and is usually, but not always, the first letter of the menu item to be selected. For example, the key sequence Control-J t c can be used to clear the terminal and the sequence Control-J c i can be used to send a Control-C interrupt.
In notebook mode, several keyboard shortcuts with the prefix Control-m are also available, similar to IPython Notebook. See help/notebook shortcuts menu option for more info.
Windows-specific tips¶
The Google Chrome and Firefox browsers work best on Windows, but Internet Explorer 10 should also be usable, with some limitations.
The Unix Control-C and Control-D key combinations do not always work as expected in Windows browsers. To send Control-C or Control-D, you can use the menu options, or the keyboard shortcuts prefixed with Control-J.
The up-arrow and down-arrow keys for command recall do not work with IE10.
Tips for Android/iPhone/IPad¶
GraphTerm can be used on touch devices (phones/tablets), with some limitations. Use the view/footer menu to enter keyboard input, send special characters, access arrow keys etc. Tap the Kbrd in the footer to display the keyboard.
Note: You should turn off the Autocapitalize and Autocorrect features in the language/keyboard settings if you want to do a lot of typing on touch devices.