Saturday, February 28, 2009

Sink or swim

For several years until last fall, my role at NASA had consisted of advocacy and advisory support: ostensibly helping programs and projects share their information systems more effectively through standards and interoperable designs. But over the years, this activity (not easy to explain in a soundbite) grew increasingly murky in purpose and scope; long story; the program came to a halt; and after a few amorphous months I've now begun a challenging project of my own design, building Web access to climate models running on supercomputers. It's nice to be doing something of substance, and easy to describe -- perhaps for the first time in years. However, this is a new field; actually several new fields; and I'm just an IT guy. Worse: for several years, I've been an architect / advisory IT guy who never had to write or debug a single line of code. So I'm having to exercise several atrophied sectors of my brain, and to learn (always by yesterday) reams of new stuff about numerical models, supercomputers, and how the latter run the former. I've spent hours reading about global and regional atmospheric simulations; the algorithmic and statistical basis for such models; the workflow infrastructures in which they run; and the deeper meaning of a whole new set of acronyms. A lot of the scientific code (fluid dynamics, etc.) is written in Fortran so I've even poked into some of that (though I hope to leave the Fortran as-is. I last used the language in 1983 and haven't missed it). Every so often my brain fills up (a la Gary Larson) and to quell the quiet panic I have to stand up and walk the halls for a few minutes. And sometimes the reading trail reaches an obvious dead end. For example:

ifeffit: An interactive program for XAFS analysis

IFEFFIT is an interactive program for XAFS analysis. It combines the high-quality analysis algorithms of AUTOBK and FEFFIT with graphical display of XAFS data and general data manipulation.

IFEFFIT comes as a command-line program, but the underlying functionality is available as a programming library. The IFEFFIT library can be used from C, Fortran, Tcl, Perl, and Python. This allows a variety of user interfaces (both graphical and non-graphical) to be written around IFEFFIT. Currently, three graphical user interfaces: G.I.FEFFIT, ATHENA/ARTEMIS, and SIXPACK are built on the underlying IFEFFIT library. IFEFFIT and all three GUIs are under active development, but are fairly well tested and ready for use.

On reading this effectively useless documentation the other day, I laughed out loud, realizing that I was living another Larson cartoon. When I don't even understand the terms necessary to explain the one I'm looking up, ... perhaps I've skidded off the learning curve. Time to find some pavement and try again. When it's not terrifying, it's great fun.