Text this: Macro processors and techniques for portable software