Rugged Embedded Systems: Computing in Harsh Environments