Thinking of cities in terms of hardware and software