public byte[] filter(String filter, Map<String, String> header) {
    String inHost = header.get("host");
    String hostIP;
    int pos0 = inHost.lastIndexOf(":");
    if (pos0 > 0) {
      hostIP = inHost.substring(0, pos0);
    } else {
      hostIP = inHost;
    }
    log.info("preforming the following substitutions for myrobotlab.html");
    // log.info("from client @ {}", socket.getRemoteSocketAddress());
    log.info("<%=getHostAddress%> --> {}", hostIP);
    filter = filter.replace("<%=getHostAddress%>", hostIP);
    log.info("<%=wsPort%> --> {}", webgui.port);
    filter = filter.replace("<%=wsPort%>", webgui.port.toString());
    log.info("<%=runtimeName%> --> {}", Runtime.getInstance().getName());
    filter = filter.replace("<%=runtimeName%>", Runtime.getInstance().getName());
    log.info("<%=webguiName%> --> {}", webgui.getName());
    filter = filter.replace("<%=webguiName%>", webgui.getName());
    log.info("<%=httpPort%> --> {}", webgui.port.toString());
    filter = filter.replace("<%=httpPort%>", webgui.port.toString());
    // filter.replace(, newChar);

    if (webgui.useLocalResources()) {
      filter = filter.replace("<%=mrl.script.location%>", "");
    } else {
      filter =
          filter.replace(
              "<%=mrl.script.location%>",
              "http://myrobotlab.googlecode.com/svn/trunk/myrobotlab/src/resource/WebGUI/");
    }
    return filter.getBytes();
  }