anchor.diff:      map = new google.maps.Map($("#hack .map")[0], map_options);
       google.maps.event.addListener(map, 'idle', update_bounds);
       google.maps.event.addListener(map, "bounds_changed", function(){
  -      HeatMap.state.dirty = true;
  +      HeatMap.dirty = true;
       });
     }
   
  
positive.code:       }
        gradient = [];
        _.times(14, function(i){
          c = HeatMap.state.colours[index];
          a = i/13.0;
          gradient.push("rgba("+c[0]+","+c[1]+","+c[2]+","+a+")");
        });
  
negative.code:   }
  
    function redraw_heatmaps() {
      localStorage.heatmap = JSON.stringify(HeatMap.state);
      if (HeatMap.state.filters.length > 0) {
        params = {
          bounds: HeatMap.state.bounds,
          filters: _.map(HeatMap.state.filters, function(f){ return f.id; })
        };
        $.getJSON("heatmaps/points", params, function(data){
          HeatMap.points = data;
          display_heatmaps();
        });
        $.getJSON("heatmaps/comments", params, function(data){
          HeatMap.comments = data;
          display_comments();
        });
  