1. A method of presenting a continuous programming sequence at a client terminal comprising: defining a programming sequence at a server using a programming template comprising a plurality of sequential time slots, each respective time slot being associated with a particular content type, the defining including selecting, for each respective time slot, a program item from a plurality of candidate program items; wherein each respective time slot is associated with a parameter indicating whether or not a time limit of the respective time slot needs to be respected when selecting the program item from the plurality of candidate programs, wherein in a case where the parameter indicates that the time limit of the respective time slot need not be respected, and a parameter associated with a following program time slot indicates that the following program time slot can be shifted forward in time, the selected program item may have a duration exceeding the duration of the respective time slot, and wherein if a duration of the program item is less than the duration of the respective time slot and the next time slot start time is not backward shiftable, inserting personalized advertising after the program item to fill in the duration of the respective time slot; and the server instructing the client terminal associated with the programming sequence to retrieve a first program item specified in the programming sequence from a specified location.