Tuesday, July 30, 2024

Emulation

Years ago in grad school I was introduced to a display package called TopDrawer, which allowed you to take text columns of (usually) numbers and display them various ways. Most of the output devices were printers we didn't have, but the Tektronics option was quite useful, and later someone added a PostScript device option. It suited me down to the ground--it could handle fairly large tables, and because the input was text it wasn't hard to add more data or track down where the outliers came from. OTOH, it wasn't maintained.

I liked the idea well enough that when PAW came out I wrote a script to make it go read text files like those TopDraw had used. This way I could take advantage of PAW's better software portability and speed. PAW was intended to read binary data, but it used a Fortran variant as scripting language, so I could do what I wanted. And the text files were portable anywhere. True, text files aren't suitable for giant datasets, but I mostly didn't use huge ones for display--what's the point in plotting 5 million points on a picture? It looks like mud.

Even PAW dropped away (it never was very well supported) in favor of a kitchen-sink package called ROOT that used C++ as a scripting language. (I eventually had to manage the maintenance of packages that relied on low-level routines in ROOT, and developed a certain sourness about its support.) That was a bit messier to deal with, but I wanted something simple that let me visually inspect my raw data, and I wrote yet another script, with more of a TopDraw philosophy than actual emulation. I mostly used this for monitoring disk usage in a largish (several PB) set of file systems. (Users will use infinite space if available, and never clean up after themselves. I understand perfectly.)

Came the day when ROOT wasn't automatically supported in our configuration (I wasn't the only one who got grief from it), and I had to bite the bullet and use python like all the cool kids were doing--but still using text data as input. I wonder if Chaffee would approve.

No comments: