code: func NewConfig(nick string, args ...string) *Config {
  	cfg := &Config{
  		Me:       &state.Nick{Nick: nick},
  		PingFreq: 3 * time.Minute,
  		NewNick:  func(s string) string { return s + "_" },
  		Recover:  (*Conn).LogPanic, // in dispatch.go
  		SplitLen: defaultSplit,
  		Timeout:  60 * time.Second,
  	}
  	cfg.Me.Ident = "goirc"
  	if len(args) > 0 && args[0] != "" {
  		cfg.Me.Ident = args[0]
  	}
  	cfg.Me.Name = "Powered by GoIRC"
  	if len(args) > 1 && args[1] != "" {
  		cfg.Me.Name = args[1]
  	}
  	cfg.Version = "Powered by GoIRC"
  	cfg.QuitMessage = "GoBye!"
  	return cfg
  }
docs: // NewConfig creates a Config struct containing sensible defaults.
  // It takes one required argument: the nick to use for the client.
  // Subsequent string arguments set the client's ident and "real"
  // name, but these are optional.