The User Experience at Mathnet (II)
jimc, 2004-09-30
At Mathnet we know that we have user experience issues with the new
Linux setup. This is a systematic attempt to evaluate how bad it is.
User Complaints
VI won't work
-- Bertozzi on Salinas, Edson on Bustamove
- ^? vs ^H issues -- Kallo, Linux vs Solaris.
- Shell history (!command) does nothing, file completion (by escape) works.
This was Kallo with /bin/csh on Sonia. Conversely, with /bin/csh
on Whitney, !history works and file completion... needs tab and ^D.
It's really tcsh on Whitney.
- Default prompt on Sonia is [?1lSonia.3> (3 = command sequence number)
This is Kallo. He has showroom stock dot files.
- Menus for fvwm2 are lame, and Edson gets two sets of fvwm modules when
using XWin32-XDMCP.
Functional Test of the Linux Configuration
The test procedure will be to log in as Mathtest in various runtime
environments and do a standard set of behaviors. Environments include: KDE,
Gnome, fvwm, XWin32. Later we'll spot check telnet, slogin -X (from jimc
account). Forget rlogin. The behaviors will be checked in detail under KDE,
since that is our default session type if one has no .xsession. In the
other environments, infrastructure issues revealed under KDE will be spot
checked.
We need to decide: how aggressively are we going to promote cygwin?
If we go with it, we'll need to test it too.
These are the behaviors. Most tests were done on Shasta, a Dell
Optiplex GX150 (1 GHz Pentium III) with SuSE 9.1, located in ACL.
- X-Windows appearance
- This machine's X-server is configured for 1024x768 px. However,
the monitor is a Dell E171FP which has a native resolution of
1280x1024 px. In the body font it's very clear that vertical elements
straddle pixel columns. The native resolution should always be used
on a flat panel, and likely this problem is common.
- Log in. (Estimate the startup time.)
- It took KDE about 85 seconds to start up.
- Get a shell and check out terminal issues.
- Using kconsole (the thing with the scallop shell icon).
It started with erase = ^H, which is wrong, and TERM = xterm, which
is right. Usage was a lot more pleasant after I did
stty erase '^?'
.
- View a file using less.
- Keys work: arrow, PgUp, PgDn, Home, End. There is no fault in
rendering. But the options for
less
are lame: no filename in the
statistics row, no file position, case-sensitive searching. We should
improve
this in the default .cshrc.
- Read a man page for sed, perl, hostgroup.
- sed: OK. hostgroup: not found. The manpath is /usr/local/man,
/usr/share/man, /usr/X11/man. Either MANPATH should be properly set,
or the page isn't installed, or both.
- perldoc -t -f chown
- Works fine.
- Edit a
hello world
program using vi, then using uemacs.
- Works fine, including arrow keys. Note,
emacs
is the old
PIC version. Arrow keys have never worked on PIC micro-emacs, on
Linux. They do work on Solaris.
- Compile using gcc and run it.
- Compiled and executed, no problems.
- Read mail using pine.
- This account is configured to use imap to Sonia on port 143.
Pine lets you know that the password is being handled insecurely.
Mail was displayed and managed OK.
- Send a mail message using pine.
- Recipient mathtest was translated to
mathtest@shasta.math.ucla.edu
, which is worrisome: the hostname
should not appear, and doesn't, on jimc's setup.
Arrow keys work fine in pico. The Pine default is to save a fcc in
sent-mail. This mail will accumulate without limit, and we need to
decide if we want this default.
- Web browser, view the department's home page.
- Mozilla was used. It worked fine, except that the default window
size, before I manually resized it, was too small: 640x480 px at most,
for the payload area. Plugins were not tested.
- Edit a paper using LyX. DVI output.
- I did a short essay on
The Analytic and Algebraic Topology of
Locally Euclidean Metrizations in Infinitely Differentiable Riemannian
Manifolds
. This went amazingly smoothly.
- View result with xdvi (forget the PostScript).
- Perfect results, no hassle.
- Do dvips and view the PostScript with gv.
- No problems.
- Print the PostScript on the lab printer.
- The printer was xaclps. Shasta found the printer and sent the
job without problems. However, the printer itself was not as well
behaved. I cleared a paper jam and waited for someone else's job
to be printed; then mine came out. It was in good order except that
the top margin was about 1in less than it should be. Suspicion:
the default paper setting is A4. Default of who? It could be
CUPS on Harlech, dvips on Shasta, or LyX on Shasta. This has to be
tracked down. (Later determined to be A4 on Harlech.)
- Do something with Matlab.
- I was able to view the help files and write a program to display
a graph of a sine curve. I didn't try printing, though. One issue:
there was a message saying it couldn't access OpenGL. It should be
able to do at least Mesasoft. Track this down.
- Spawn a shell on Bamboo01 and Sonia. Check infrastructure.
- When I did slogin on either host, erase = ^H (wrong), but once
that was fixed, it worked fine including X11 forwarding. When I did
ssh -X $host xterm
, it started with erase = ^? (correct), and
all the other activities worked too.
- Lock screen.
- The lock application was very slow to start up; I thought it
wasn't going to start, the first time, and unlocked before it got
its picture up. But if given some time, it works. (The lock function
was much quicker to respond in the other environments where tested.)
Spot checks were done with the other desktop environments. Here are the
results.
- KDE (summarizing the above)
- 85 seconds to start up (oink). The ubiquitous ^? vs ^H issues
were annoying but not KDE's fault. Infrastructure was satisfactory.
Screen layout was acceptable. The menus are satisfactory in a generic
sense, though of course there is no Mathnet customization. The
selection of applets is reasonable (clock, kicker). Alone among
the environments, KDE has a
click to focus
policy, which cannot
be overridden, which is very annoying to non-Windows users.
- Gnome
- 15 seconds to start up. Infrastructure was satisfactory. Screen
layout was acceptable. The menus are satisfactory in a generic sense,
though of course there is no Mathnet customization. The menus are
reasonable in a generic sense, though it took some hunting to locate
the xterm equivalent. Once that started, tThe ubiquitous ^? vs ^H
issues were annoying but not Gnome's fault. It is believed that
the Gnome window manager can be set for either focus follows mouse
(the default) or click to focus.
- FVWM
- It should be noted that this is fvwm2, not the old fvwm. 10
seconds to start up. Infrastructure was satisfactory, except that
automatic placement of windows is not turned on, which is very annoying
to someone used to Windows, KDE or Gnome. (Fvwm2 has this feature but
it was not turned on in the configuration file.) Screen layout was
acceptable. The menus seem rather skimpy, and the control panel
module/icon selection can be improved in utility. In particular,
Shell in Xterm
gives you bash (with the correct erase = ^?), not
the user's default shell. Fvwm2 can be set for either focus follows
mouse (the default) or click to focus.
- XWin32 (Windows) using XDMCP
- The test machine was Copycat, which had never been configured for
XWin32, or maybe mathtest's profile had never been configured. Creation
of a session was fairly intuitive for a knowledgeable user, once you
figure out which program will do it for you. Sessions were configured
for multiple windows (not the single window configuration that seems
popular among the staff). Sessions were attempted
on Sonia (Solaris 2.6) and Sassafras (Linux, SuSE 9.1). On Sonia,
startup was quick and trouble-free. The initial xterm has TERM=xterm
and erase=^H, and this key setting worked (which is bogus).
Infrastructure seemed to be working. On the other hand, on Sassafras
the entire KDE started up. It was not functional in the sense that
I couldn't get icons and menus to do their functions. When I logged
out, XWin32 froze and I had to kill it from the task manager.
User Experience Issues Revealed
These issues need to be resolved promptly. They are listed in order of
priority.
- ^H vs ^?
See the appendix below for an account of the holy war on this
issue. Conclusion: ^H is standard on Solaris. We should make ^?
standard on Linux, while preserving functionality when people connect
between Linux and Solaris. While this is probably our highest
priority item, it is also not going to be easy.
- Screen Resolution
We need to audit all the Linux workstations and make sure that
the screen resolution matches the monitor.
- Printing
Audit all printers and make sure the configuration matches the
printer, for all 101 printers. With specific reference to the paper
size, but there are other important features that may be wrong.
- Default Settings for Various Programs
- less: Add filename, percent position, and case-insensitive search.
- man: Get the manpath set right, and/or install missing man pages.
- pine: No default fcc in sent-mail. Recipient is user@math.ucla.edu.
- mozilla: Can we make the initial window bigger?
- matlab: Whatever the problem is with OpenGL, fix it.
- KDE Slow Login
I am sure that KDE greatly annoys the users. We should be pushing
either Gnome or FVWM as the default, not KDE. Because of swap space
issues on the servers, FVWM is preferred. But note that once you use
a particular session type, it persists until you change it on the ^T
menu, so we need to notify the users that they may, but are not
required to, change over.
- XWin32 vs. Linux
Whatever is making XWin32 freeze up needs to be tracked down and
removed. I suspect that the sheer volume of demands that KDE makes
on the server had something to do with the problem.
- Menus and Icons
We need to reach a compromise between completely re-doing the
menus and icons, and just grafting on a Math menu
analogous to
the SuSE Menu
found with KDE and Gnome. What functions are
needed in the Math menu? See the next section for a long discussion.
- Backgrounds
KDE has a blue background with a few abstract squares. Gnome and
FVWM have Alpine landscapes. In my opinion, a generic flat background
is ideal -- my own choice is fallen leaves (from Windows 3.1). The
photos distract too much from the payload, and confuse the window
borders. We need a group consensus on what we're going to impose
on the users.
Menu and Icon Functions
Menu arrangements depend greatly on personal taste, and we're going to
be creating a default that has to work for all our users. We'll need to
develop a group consensus about what menus to put on. For reference, here are
several menu setups, ending with jimc's recommendation (for FVWM).
Jimc's Personal Menus
- Window Manager
fvwm2
- Focus Policy
Focus Follows Mouse
- Placement Policy
Automatic
- Left Mouse
- Local Xterm (on same machine)
- Remote Xterm (runs pop-up that asks the hostname)
- Lock Screen
- Run Program (runs pop-up like Windows
run
menu item)
- Save and Sync (program sends
WM_SAVE_YOURSELF
to all apps)
- Calculator
- Opera (web browser)
- Xmag (screen magnifier)
- Window Operations (crossover to right mouse menu)
- Halt Machine (using setUID script)
- Reboot Machine
- Exit from FVWM (for testing)
- Middle Mouse
FVWM window list applet
- Right Mouse
- Move
- Resize
- Raise/Lower
- Identify (FVWM window information applet)
- (De)Iconify
- (Un)Stick (make immune from unmapping on a desktop jump)
- (Un)Maximize Y
- (Un)Maximize X and Y
- Refresh Window
- Close Window (WM_CLOSE_WINDOW)
- Destroy Window (kill on server)
- Refresh Screen
- Reinitialize FVWM (re-read configuration file)
- Titlebar
- Left mouse: Raise and focus
- Middle mouse: Move
- Right mouse: As for root window (but keys on that window)
- Left plug: Close
- Right plug A: Iconify
- Right plug B: Resize
- Icons and Applets
- Clock
- xexit (for logging out)
Teddy
editor
Default Menus on Solaris
There are no longer any Solaris workstations in the labs to try this out.
However, if you use XWin32 from a Windows machine, and log in to a Solaris
server with single window mode, you can see these effects.
- Window Manager
twm (ancestor of the old fvwm)
- Focus Policy
Focus Follows Mouse
- Placement Policy
Manual
- Left Mouse
- New Xterm (on same machine)
- TI Calculator
- HP Calculator
- Analog Clock
- Digital Clock
- Mailbox (mail arrival monitor)
- Lock Screen
- Middle Mouse
Xterm on a list of remote hosts such as Euphemia
- Right Mouse
- Move
- Resize
- (De)Iconify
- Raise
- Lower
- Circulate (not sure what this is)
- (Un)Zoom (maximize Y)
- Refresh Window
- Refresh Screen
- Focus on Window
- Focus on Root
- Destroy Window (kill on server)
- Titlebar
- Left mouse: Raise and focus
- Middle mouse: Move
- Right mouse: Zoom (maximize Y)
- Left plug: Iconify
- Right plug: Resize
- Icons and Applets
-
Recommended FVWM Menus
A certain resemblance can be discerned among all of these menu sets.
This is not a coincidence.
- Window Manager
fvwm2
- Focus Policy
Focus Follows Mouse
- Placement Policy
Automatic
- Left Mouse
If we're going to have a fvwm icon/applet area,
this menu should be on a menu applet labelled
Programs
, in addition to left mouse in the
root.
- Local Xterm (on same machine)
- Remote Xterm (runs pop-up that asks the hostname)
- Lock Screen
- Run Program (runs pop-up like Windows
run
menu item)
- Save and Sync (program sends
WM_SAVE_YOURSELF
to all apps)
- Calculator (user should use Xresources to choose calculator style)
- Mozilla (web browser)
- Xmag (screen magnifier)
- Pine (runs Pine in an xterm)
- Window Operations (crossover to right mouse menu)
- Any other nominations? These would be only in the
Programs
applet menu, not the mouse menu.
- Middle Mouse
FVWM window list applet
- Right Mouse
- Move
- Resize
- Raise/Lower
- Identify (FVWM window information applet)
- (De)Iconify
- (Un)Stick (make immune from unmapping on a desktop jump)
- (Un)Maximize Y
- (Un)Maximize X and Y
- Refresh Window
- Close Window (WM_CLOSE_WINDOW)
- Destroy Window (kill on server)
- Refresh Screen
- Reinitialize FVWM (re-read configuration file)
- Titlebar
- Left mouse: Raise and focus
- Middle mouse: Move
- Right mouse: As for root window (but keys on that window)
- Left plug: Close
- Right plug A: Iconify
- Right plug B: Resize
- Icons and Applets
- Clock
- xexit (for logging out) -- swallow into applet-icon area.
Programs
menu applet, see left mouse above.
Math Programs
menu applet, giving:
- Matlab
- Maple
- Mathematica
- SGE Job Submission GUI
- LyX (wysiwyg editor for TeX)
- xmgrace (2D plot editor GUI)
- gimp (drawing/graphics program)
- Any other nominations?
- We do not need xeyes.
XWin32 Issues
When XWin32 is in multi-window mode, or when using Cygwin, it is not clear
what role the window manager plays, if any. Possibly its only use is to
maintain the logout icon and program launching menus, which would have to be
reached from, for example, the fvwm2 icon/applet box. Issues such as resizing,
iconifying, or closing windows are handled by Microsoft Windows, not fvwm2.
When XWin32 is in single window mode, however, it behaves just like a
Solaris workstation as described above.
Appendix: Eric Stallman Versus the World, or ^? vs ^H
The issue with ^? vs ^H is a massive political tangle involving Eric
Stallman, the American National Standards Institute, Digital Equipment
Corporation (remember them?) and numerous other stakeholders and drivers of
stakes through hearts. To summarize:
- In ASCII as of 1967 or whenever, ^H was defined as "backspace",
analogous to ^R "carriage return" and ^J "linefeed". These
commands cause the paper and print mechanism to move physically
on a teletype. None of them erase what was already printed.
^? was defined as "delete". Having the code 0x7f, it would cause
a hole to be punched in every column of the paper tape, and in
particular, if a character were already there it would thenceforth
appear as 0x7f. Teletypes ignore this code, same as 0x00.
(Ignoring the minor detail that teletypes use Baudot code, which
is the same general idea except in 5 bits.)
- Eric Stallman read and understood the standard, and insisted
vociferously that it be followed. Gnu Emacs specifically checks
for ^H and ^?, overriding terminfo settings, and it will not do
destructive backspace on ^H (which traditionally produces the help
menu), unless you patch it to remove Stallman's checks.
- The way early serial terminals are designed, any kind of backspace
was destructive; overstriking backspace (like on a teletype) was
impossible. However, more advanced terminals could do cursor
addressing, so the cursor could be
on
an already-written
character. But even so, subsequently written characters replaced
what was there, not overstruck.
- DEC invariably used ^? for the destructive backspace and ^H for
mere cursor motion, as ANSI, God and Eric Stallman intended.
Other vendors used ^H as backward cursor motion (destructive) and
^? as
ignore me
, as ANSI and God intended.
- Mainly in response to the ^? vs ^H holy war, the stty command was
provided so the user could choose according to his terminal.
Elaborate procedures were put in place to match up the serial line
with its terminal type, so this setting could be automated. Xterm
has six different interacting controls to deal with erase character
selection.
- In the early days, Mathnet settled on ^H as the default erase
character, if not overriddeen on one of our few DEC terminals.
This selection was carried forward to the X Window System.
- However, xterm natively emulates the DEC VT102, and its natural
behavior is to use erase = ^?.
- The last act has not been played out, but Solaris (and its
adaptations) is on the descendant, and the ideal outcome is to use
^? on Linux, while keeping Solaris useable when you connect from
a Linux box.