Tutorial and examples for a workshop on defensive scripting