Write Portable Code: An Introduction to Developing Software for Multiple Platforms