Saturday, February 5, 2005

LabTerm--Proof Is the Product, Not the Programming

Today is the final release of our LabTerm unit.

This release finished a rather unsavoury assignment which yielded a rather good result: a custom lab bench computer or, as we say now, "thin client."

The goal was simple: to create a supportable computer which would do all that a lab tech needs to do:
  • provide a full-screen terminal to their homegrown HP MPE LIS (!)
  • provide rapid access to their on-line Lab Manual
  • provide a web browser for the growing number of web-based UIs
  • provide a full-screen terminal to their homegrown order handler
In order to accomplish all of these goals, we decided on the following implementation:

  1. a Linux image to run on old (discarded!) former Windows 95 boxes
  2. a simple X-windows windows manager, "Rat Poison" (kill the mouse)
  3. a custom app to provide a full-screen UI to their Lab Man data
  4. a customized version of the MiniCom terminal emulator
    1. support for MPE line-handling
    2. split-screen support to share the screen (Lab Man or order handler)
    3. scroll-back buffer
    4. copy-and-paste
    5. screen history for each session
  5.  automatic updating for all these components, including the Lab Man
  6. remote viewing of terminal session history
    1. this turned out to be fantastic for providing LIS support
I may have done the last dumb ASCII terminal mankind will ever know, and God knows we didn't break any new ground here, but we produced a product that met the customer's needs. By keeping our eyes on that prize, we succeeded even without the cool factor. And support old hardware meant that we could take cast-off computers from within the organization, so we actually went live with enough hardware to do the job properly.

Engineering can be beautiful, but life often demands ugly and our motto is "beauty is in the eye of the user--not the engineer."