I learned, rather hurriedly, how to script QGIS plugins for a class. I came away unimpressed with the class hierarchy (I got lost and certain methods I needed seemed misplaced and therefore hard to find).
But now that QGIS alone is becoming a viable replacement for other software, I'm motivated to try scripting plugins again.
So I'll be taking a look at moving over the apparent dip script and cross section script to the QGIS interface. If all goes well, I'll actually have a nice way to distribute them via the QGIS plugin repository.