anchor.diff:    { Node, Nodes } = get_node_info(),
     RowData = add_row(Nodes, Channel, User, Text, Node, list_to_integer(LastRow), list_to_integer(RowsBack)),
     row_renderer(RowData, Req),
  -  log_rt("Add row", Ctime)
  +  log_rt("Add row (user:" ++ User ++ " channel:" ++ Channel ++ " text:" ++ Text ++ " from:" ++ LastRow ++ " back:" ++ RowsBack ++ ")", Ctime)
     ;
   handle('POST', ["fetchrows"], Req) ->
     Ctime = now(),
  
positive.code:   { Node, _ } = get_node_info(),
    RowData = fetch_rows(Node, Channel, User, list_to_integer(LastRow), list_to_integer(RowsBack)),
    row_renderer(RowData, Req),
    log_rt("Fetch rows", Ctime)
    ;
  handle('POST', ["searchrows"], Req) ->
    Ctime = now(),
  
negative.code:   { Node, _ } = get_node_info(),
    RowData = search_rows(Node, Channel, list_to_integer(RowsBack), Pattern),
    row_renderer(RowData, Req),
    log_rt("Search (channel:" ++ Channel ++ " back:" ++ RowsBack ++ " pattern:" ++ Pattern ++ ")", Ctime)
    ;
  handle('GET', [Static], Req) ->
    Req:file("web/"++Static).
  