programmable spintronics