SPI

I think you should also be setting the MOSI and SCK pins as OUTPUTs since the SPI hardware doesn't do this automatically. It may be that the SPI library does this for you, but I think its wise to do this explicitly so that you can port to a different library without any surprises. It also documents in setup() which pins do what - so then you don't accidentally use the same pin for two different uses (surprising common error).