def index
    html do
      head do
        title 'Happy Pants'
        link :rel => 'stylesheet', :type => 'text/css', :href => "#{@base}/teamspeak.css"
        script :type => 'text/javascript', :src => "#{@base}/scripts/jquery.js"
        script :type => 'text/javascript', :src => "#{@base}/scripts/init.js"
        script :type => 'text/javascript', :src => "#{@base}/scripts/jsviz/EventHandler.js"
        script :type => 'text/javascript', :src => "#{@base}/scripts/jsviz/Timer.js"
        script :type => 'text/javascript', :src => "#{@base}/scripts/jsviz/GraphModel.js"
        script :type => 'text/javascript', :src => "#{@base}/scripts/jsviz/FDGraphModel.js"
        script :type => 'text/javascript', :src => "#{@base}/scripts/jsviz/GraphView.js"
        script :type => 'text/javascript', :src => "#{@base}/scripts/jsviz/DOMGraphView.js"
        script :type => 'text/javascript', :src => "#{@base}/scripts/jsviz/DOMFDGraphController.js"
      end
      body do
        h1 @host, :id => 'root'
        dl :id => 'list' do
          @channels.each do |channel|
            dt channel.name, :class => 'channel'
            dd do
              ul do
                channel.players.each do |player|
                  li do
                    p player.name
                    dl :class => 'player-details' do
                      unless player.login.nil? then dt 'Login'; dd player.login end
                      dt 'Connected';   dd player.connected.since
                      dt 'Idle';        dd player.idle.since
                      dt 'Packet loss'; dd "#{player.packet_loss}%"
                    end
                  end
                end
              end
            end
          end
        end
      end
    end
  end