The User Experience at Mathnet
jimc, 2000-04-27
Just what is Mathnet supposed to be supporting for our users? This document
is supposed to answer that question, in a form such that we can go through
it, execute the indicated tests, and determine if some change has occurred
that renders our support less than satisfactory.
Naturally the list of activities will change with time. Also, as presently
written it's mostly for UNIX on X-terminals. A version for pure Windows would
be very useful. In general the tests should be executed as Mathtest, so that
programmers' specific environments don't obscure what real users will see.
Items marked '#' are areas that need improvement.
- Log on. (Go to the end of this section without variants, then when the
basics are working, try each of the variants.)
- Repeat the logon test using:
- Console login (UNIX machine in lab)
- X-terminal (or lab PC running Xwin32)
- telnet (from local, BOL, or off-campus)
- rlogin (from local, or off-campus machine in .rhosts)
- slogin (from local, off-campus)
- dialup (to Math modem pool)
- Were you recognized? Or was your password unknown?
- Did you get the MOTD? Touch .motd, log in (should see MOTD), log out and
log in again (should skip MOTD). Edit .motd changing it, log out and
log in again (should see MOTD).
- Did you get one "you have [new] mail" message matching the actual mailbox
state? Do in 4 conditions:
- $MAIL is nonexistent. (No message)
- $MAIL is zero length. (No message)
- $MAIL contains a mail message that you just mailed to <mathtest>.
(You have new mail)
- $MAIL contains the above message, and you just read it.
(You have mail)
- Did you get a reasonable collection of X clients? (Not for Telnet.)
- twm window manager
- xclock
- one xterm on xdm controlling site (when it dies the session ends)
- # Upgrade to xexit, like the staff all have.
- When you type stuff, does the shell see it and echo it? Does the
conventional ctrl-U erase the line? Does backspace on the keyboard
erase character by character? Does "enter" on the keyboard produce
a newline seen by the shell?
- Is your home directory accessible? (Or did you get /tmp?)
- Shell is supposed to be /bin/csh. Your .cshrc and .login are supposed
to `source /usr/math/default/{cshrc,login}exp`; if they don't, some
features won't work.
- Is the prompt reasonable? Standard is:
hostname.5>
- echo "/bin/sh" > .shell -- does it give you an alternate shell?
- Check environment variables:
- DISPLAY = $xterminal:0.0 (not for Telnet)
- HOME = home dir, typically /home/$user
- HOSTNAME = name of host you're running on
- LD_LIBRARY_PATH = something reasonable including /usr/local/lib and
/usr/local/mathlib
- LOGNAME = same as $USER
- MAIL = /u/$homesite/m1/mail/$USER
- MANPATH = something reasonable
- PATH should include $HOME/bin /usr/math/bin /usr/local/bin /usr/ucb
/bin /usr/bin /usr/openwin/bin /usr/bin/X11 /usr/local/share/tex/bin
and a number of others.
- PRINTER is unset by default.
- SHELL = the full path name of your shell
- TERM = xterm (or whatever your terminal type actually is)
- TERMCAP = termcap corresponding to $TERM. Some dinosaur software
still expects TERMCAP to be available.
- TZ = PST8PDT
- USER = your loginID (mathtest)
- UNIX command line operations.
- Edit a file. You should be able to:
- Execute your favorite editor (try vi, emacs, and gemacs).
- Insert /etc/rpc into the file.
- Move around using the arrow keys.
- Move by pages using the PgUp and PgDn keys.
- Save the file (homedir should not be readonly), and exit.
- Compare using cmp; should be identical.
- Do "ls"; the file mode should be 600. Also check the homedir's
mode: should be 711.
- File management: rename the above file. Make a directory. Move the
file into that directory. Copy it. Delete everything you did.
- Using root access, create a file in ~mathtest that is not owned by
Mathtest but has (the primary group, another group) that Mathtest is
in, and mode 640. As Mathtest, try to read, then write on that file.
- Print a file. The above /etc/rpc is all text and fits on 2 pages.
- Print as plain text.
- Print as PostScript; use enscript.
- What about 8bit characters? Do they print?
- Which printer did it print on? Was there a message that told you?
- Locate the list of all Mathnet printers and the room numbers
they are in.
- View the man pages for sed (in /usr/man), perl (in /usr/local/man),
hostgroup (also in /usr/local/man). Also do `perldoc -t perlfunc`.
- Locate and look at the handout that tells you what are the bugs office
hours, and where the office is located.
- Send mail to yourself. The "official" command line mail sender is...
pine? Also try Berkeley mail.
- Read the mail that was just sent, using the same mail readers.
- Create .forward file (forwarding to your personal identity rather than
Mathtest). Send mail to mathtest. Was the mail forwarded? Remove the
.forward file.
- Subscribe to and read a newsgroup. Recommended: ucla.general.
Official command line news software: rn?
- Post an article to ucla.test.
- Chat with yourself using talk or irc. You may need two windows.
- Connect to a different host using:
- Telnet.
- rlogin. Due to /etc/hosts.equiv you should not need a password.
- slogin. It should demand a password since Mathtest has no
ssh authorized users.
- Program development. Use the following languages:
Create a program that writes "hello world" on standard output, opens a
file whose name is specified on the command line, and copies standard input
to the opened file. Include the statement "a = 0; b = 1/a".
- In a separate directory, edit your program.
- Create a Makefile for it. Specify -g when compiling.
- Make and execute. It bombs due to the divide by zero.
- Use the debugger to find the line with the error. Recommended
debugger: gdb?
- Fix the bug (set a = 1 instead of 0).
- Make and execute again. It should work.
- Clean up.
- Text Processing (using TeX and/or LyX)
- Write a paper in the AMS Article style (amsart). The topic should be
"The Analytic and Algebraic Topology of Locally Euclidean Metrizations
in Infinitely Differentiable Riemannian Manifolds". Include plenty of
neat looking equations. N. I. Lobachevski should be featured
prominently in the references.
- Write a letter to your boss or department chair asking for a raise.
Include a table listing your recent accomplishments including these
columns: Date, Category (sysadm, porting, installation, coding, etc.),
Description.
- Write a Ph.D. thesis using the UC thesis style. Include some text in
each division but, of course, keep it short. 100 pages max.
- For each of the above, do this:
- Edit.
- Compile.
- Fix syntax errors. If none, put some in.
- Preview the result.
- Fix semantic and layout errors. If none, put some in.
- Print the result.
- X Windows facilities (omit for Telnet)
- What is the paradigm for the following:
- Focus to a different window
- Raise / lower a window
- Resize a window
- Iconify a window
- Close a window
- # "Destroy" doesn't count as "Close".
- In the xterm, what do the mouse buttons do? Standard Athena actions:
- 1 (left): start selection. Double, by words. Triple, by lines.
- 2 (right): adjust end of selection.
- 3 (middle): insert selection as if typed.
- Menus when mouse keys pressed in the background
- Left mouse: useful applications
- Middle mouse: xterms on preset hosts
- Right mouse: window operations
- Are the default root background, xterm size, font and colors easy on the
eyes, easy to read, and appropriate for the screen size?
- Use the menu to start a second xterm.
- Did DISPLAY get propagated?
- Did xauthority get propagated? (Try on Math, and on PIC, which has
a separate homedir and .Xauthority file.)
- Can you run a client like xlogo?
- # Items needing improvement:
- # Needs automatic placement, like on Windows.
- # Needs facility to connect to arbitrary remote host.
- # Needs generalized run box, like on Windows.
- # Use local xterm, rlogin/slogin, and propagation of DISPLAY,
rather than rsh-ing xtem on the remote machine.
- Move, resize, inconify, de-iconify, close the window using border buttons.
- # Needs full/partial screen mode, like on Windows?
- # Right click to produce window operations menu.
- # twm doesn't support the "close" protocol atom.
- Lock your screen, and unlock.
- Are your X error messages written in ~/.xerrors? Use menus to create
a client, then "destroy" it, causing an error message. Or destroy
your xclock. Errors from your previous session should be in
~/.xerrors.old.
- Repeat all of the operations listed under "Unix Command Line Operations"
and "Program Development" using (as much as possible) non-command-line
X-gui programs.
- Run a web browser. (Try first with Netscape, then Microsoft Internet
Explorer, then a text-only browser like Lynx.)
- Local access: http://www.math.ucla.edu
- Starting from our home page, find out the hours and location of the
bugs office.
- Outside access: http://www.ucla.edu
- GIF and JPEG images. In http://www.math.ucla.edu, the pictures of
Royce and Powell are JPEG, and "UCLA Mathematics" and the surrounding
special text are GIF. (Lynx should be able to
display these using an external program.)
- Use the IMAP feature of your browser to read mail.
- Use the browser to read news (see newsgroup above).
- Create your personal home page. Can the browser see it?
- # What do we have in the way of a wysiwyg editor with HTML output?
- Applications
- Department directory ("g" command). Look up the chairman.
- pgp
- Create your secret key, with a passphrase.
- Encrypt /etc/rpc, then decrypt it. Compare with the original.
- Attach a digital signature to a file (/etc/rpc will do).
- Send a mail message with a digital signature and/or encrypted.
- # Which mailer programs have this integrated "seamlessly"?
- Delete the .pgp directory so the next tester can go through the
whole process.
- matlab
- Write a program to make a graph of a sine curve.
- Print it.
- mathematica
- Write a program to make a graph of a sine curve.
- Print it.
- maple
- Where a = t, b = t, simplify cos(a)*cos(b) + sin(a)*sin(b). The
correct answer is 1.
- lapack
- Find the eigenvalues and eigenvectors of a random 8x8 real
symmetric matrix, and verify that they satisfy the definition
with reasonable accuracy:
M = V * L * Vt, where M is the original matrix, V = eigenvectors,
Vt = its transpose, L = eigenvalues on diagonal. Use only lapack
calls, not self-coding, except for generating the matrix.
- A big part of the work of testing is to *locate* the documentation
describing the subroutines you need to use.
- Likely many other applications should be on this list.
- Documentation: For each of the above activities, can you find out how to
do it using Mathnet handouts / web pages?
- # No. This needs improvement.
- Ergonomics in the lab:
- Keyboard: Is it the right height? Is there space to rest your wrist?
Are the keys clean? Is the keyclick reasonable?
- Monitor: Is it too far or too close? Is it the right height?
Is it bright enough? Are the colors reasonably accurate?
- Mouse: Does it move freely and accurately on its substrate? Do the
buttons click with confidence? Are there the requisite three buttons?
- Chair: Is it hard on your butt? Does it support your back?
- Table: Is it clean? Is there enough room to put down hardcopy
and work from it?
- Atmosphere: Is the room temperature OK? Is there breathing air?
Is there trash on the floor? Is the table clean? Is the machine
itself clean, or dusty?