title: What are the Hot and Cold observables?
body: <p><a href="http://channel9.msdn.com/posts/J.Van.Gogh/Rx-API-in-depth-Hot-and-Cold-observables/" rel="noreferrer">I watched the video</a> and I know the general principles - hot happens even when nobody is subscribed, cold happens "on demand".
  Also, Publish() converts cold to hot and Defer() converts hot to cold.</p>
  
  <p>But still, I feel I am missing the details. Here are some questions I'd like to have answered:</p>
  
  <ul>
  <li>Can you give a comprehensive definition for these terms?</li>
  <li>Does it ever make sense to call Publish on a hot observable or Defer on a cold?</li>
  <li>What are the aspects of Hot/Cold conversions - do you lose messages, for example?</li>
  <li>Are there differences between hot and cold definitions for IObservable and IEnumerable?</li>
  <li>What are the general principles you should take into account when programming for cold or hot?</li>
  <li>Any other tips on hot/cold observables?</li>
  </ul>