McCain criticizes farm bill, Obama in NRA speech