   n = t = 0
   (s) ->
     if (t1 = +new Date) - t > T then t = t1; n = 1
-    else if ++n < N then console.info process.uptime().toFixed(3) + ' ' + s
+    if ++n < N then console.info process.uptime().toFixed(3) + ' ' + s
     else if n == N then console.info '... logging temporarily suppressed'
 
 b64 = (s) -> Buffer(s).toString 'base64'

  key: fs.readFileSync 'ssl/key.pem'
  cert: fs.readFileSync 'ssl/cert.pem'
server = https.createServer(httpsOptions, app).listen (httpsPort = 8443),
  -> log "HTTPS server listening on :#{httpsPort}"

client = net.connect {host: '127.0.0.1', port: 4502}, -> log 'interpreter connected'


    f1 = "cache/#{f.replace /\//g, '_'}.uglified"
    if !fs.existsSync(f1) || fs.statSync(f1).mtime < fs.statSync(f).mtime
      if !fs.existsSync 'cache' then fs.mkdirSync 'cache'
      ib = fs.readFileSync f # input buffer
      sizes = [ib.length]
      s = ib + ''
      if /\.coffee$/.test f
        s = coffee.compile s, bare: 1
        sizes.push Buffer(s).length
      if !/\.min\.js$/.test f
        s1 = uglify.minify(
          s.replace(/^(?:.*require.*;\n)*/, '')
          fromString: true, mangle: true
        ).code
        ob = Buffer s1 # output buffer
        sizes.push ob.length
        try fs.writeFileSync f1, ob catch # ignore errors
        s = s1
      log "  #{f} #{sizes.join '→'} bytes"
    else
      s = fs.readFileSync f1, 'utf8'
    js += s + '\n'
  log "preloaded js: #{js.length} bytes"
jsFiles.forEach (f) -> fs.watch f, preloadJS

ttf = fs.readFileSync 'apl385.ttf'
ico = fs.readFileSync 'favicon.ico'
