anchor.diff:  handle_call(list, _From, State = #state{socket = S}) ->
       Msg = <<?BUCKETS>>,
       ok = gen_tcp:send(S, Msg),
  -    case gen_tcp:recv(S, 0, 3000) of
  +    case gen_tcp:recv(S, 0, ?TIMEOUT) of
           {ok, <<Size:32/integer, D:Size/binary>>} ->
               {reply, {ok, decode_metrics(D, [])}, State};
           {error, E} ->
  
positive.code:             {ok, S1} = gen_tcp:connect(State#state.host, State#state.port,
                                         [binary, {packet, 4}, {active, false}]),
              ok = gen_tcp:send(S1, Msg),
              case gen_tcp:recv(S1, 0, 3000) of
                  {ok, <<Resolution:64/integer, D/binary>>} ->
                      {reply, {ok, Resolution, D}, State#state{socket = S1}};
                  E ->
  
negative.code: 
  do_list(Bucket, State = #state{socket = S}) ->
      ok = gen_tcp:send(S, <<?LIST, (dproto_tcp:encode_list(Bucket))/binary>>),
      case gen_tcp:recv(S, 0, ?TIMEOUT) of
          {ok, <<Size:32/integer, Reply:Size/binary>>} ->
              Ms = decode_metrics(Reply, []),
              io:format("metrics: ~p~n", [length(Ms)]),
  