anchor.diff:    <hr>
   
     <div>
  -    Poloniex BTC/Dash Price: <%= dash_btc %><br>
  -    latest update: <%= polo_ts %>
  +    Poloniex BTC/Dash Price: <span id="polo_btc_dash" data-bind="text: polo_btc_dash"><%= dash_btc %></span><br>
  +    latest update: <span id="polo_ts" data-bind="text: polo_btc_dash_ts"><%= polo_ts %></span>
     </div>
   
     <hr>
   
     <div>
  -    $<%= btc_usd %> * <%= dash_btc %> = $<%= dash_usd %> USD / Dash<br>
  -    <small>Page last generated: <%= last_page_gen %></small>
  +    $<span data-bind="text: formattedPrice"><%= btc_usd %></span> * <span data-bind="text: polo_btc_dash"><%= dash_btc %></span> = $<span data-bind="text: dash_usd"><%= dash_usd %></span> USD / Dash<br>
  +    <small>Value last updated: <span id="lastDashUSDUpdate" data-bind="text: lastDashUSDUpdate"><%= last_page_gen %></span></small>
     </div>
   
  +<!-- LTC price... who cares? -->
  +<!--
     <hr>
   
     <div>
       Poloniex BTC/LTC Price: <%= btc_ltc %><br>
       latest update: <%= polo_ts %>
     </div>
  +  -->
   
   </body>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js" type="text/javascript"></script>
  
positive.code: function BitstampViewModel() {
    var self = this;
  
    // set initial price here, or just leave as-was...
    //self.price = ko.observable(0);
    var current_val = parseFloat(jQuery('#btc_usd_price').text());
    var current_bits_ts = jQuery('#bits_ts').text();
  
    self.price = ko.observable(current_val);
    self.bitsTs = ko.observable(getNow());
  
    self.newPrice = function(price) {
      self.price(price);
      self.bitsTs(getNow());
    };
  
    self.formattedPrice = ko.computed(function() {
        return self.price().toFixed(2);
    });
  
    // can use $.getJSON to grab 1st value... or pull from DB to initialize it.
  }
  
  $(document).ready(function() {
  
negative.code:     viewModel.newPrice(data.price);
    });
  
    // poloniex websocket API broken as of 2016-01-20
    // var exampleSocket = new WebSocket("wss://api.poloniex.com", "ticker");
    // exampleSocket.onMessage = function (event) {
    //   console.log(event.data);
    // }
  
    // since poloniex websocket is broken, poll JSON api every 5 seconds
    window.setInterval(function () {
      fetchDashLast();
    }, 5000)
  
    ko.applyBindings(viewModel);
  });
  var viewModel = new BitstampViewModel();
  