anchor.diff:      {ok, {{simple_one_for_one, 1, 5},
             [{server, {server, start_link, []},
               transient, 5000, worker, [server]}]}}.
  -
  -
  -%% ===================================================================
  -%% private functions
  -%% ===================================================================
  -
  -find_server_name([], _) ->
  -    error;
  -find_server_name([H | Tail], Name) ->
  -    case server:get_name(H) of
  -        Name ->
  -            H;
  -        _ ->
  -            find_server_name(Tail, Name)
  -    end.
  
positive.code:     ChildPid;
  get_server(name, Name) ->
      ServPids = lists:map(fun({_, Child, _, _}) -> Child end, supervisor:which_children(?MODULE)),
      find_server_name(ServPids, Name).
  
  
  %% ===================================================================
  
negative.code: 
  start_server(Serv, Port) ->
      log:log("starting server " ++ Serv ++ " on port " ++ integer_to_list(Port)),
      supervisor:start_child(?MODULE, [Serv, Port]).
  
  kill_server(Name) ->
      ok = supervisor:terminate_child(?MODULE, get_server(name, Name)),
  