Seol mar théacs é seo: NC machine programming and software design