How to Create Portable Software