docs: def summarize(urls):
      """
      Calls extract for each of the URLs,
      Returns the list of Extracted instances as summaries, 
      the result of the process, and the speed.
      """
      import time
      from summary import Summary
  
  
      fails = 0
      err = lambda e: e.__class__.__name__
  
      summaries = []
      start = time.time()
      for url in urls:
          try:
              print "-> %s" % url
              summary = Summary(url)
              summary.extract()
          except KeyboardInterrupt:
              break
          except Exception, e:
              fails += 1
              summary = {
                  'titles': ["[%s]" % err(e)],
                  'urls': [url],
                  'descriptions': [str(e)],
                  'source': url,
                  }
              print "[%s] (%s): %s" % (err(e), e, url)
          summaries.append(summary)
          end = time.time()
  
      result = fails and "Fails: %s out of %s." % (fails, len(summaries)) \
          or "Success: %s." % len(summaries)
      print result
  
      duration = end - start
      speed = "%.2f" % (duration/len(summaries))
  
      return summaries, result, speed