1. A method for programming a target remote control, comprising: receiving, at a target remote control, user interface information that describes a user interface for a remote control and a mode code, transmitted from a computing device, the user interface information describing a user interface that is configured by a user on the computing device, the mode code is mapped to a specific set of signals, which the target remote control supports, to control a particular target device, the computing device being different from the particular target device; creating, at the target remote control, a particular user interface using the user interface information; displaying, on the target remote control, the particular user interface; and the target remote control configuring itself using said mode code.