<commit_before>:markdown
  Here are some useful tutorials and services that we recommend for the
  competition.

  # Tutorials

  1. [How to install node & npm](http://blog.nodeknockout.com/post/33857791331/how-to-install-node-npm)
  2. [Managing dependencies with npm](http://blog.nodeknockout.com/post/33907937140/introduction-to-npm)
  3. [Writing a web app with Express](http://blog.nodeknockout.com/post/34180474119/getting-started-with-express)
  4. [Using Socket.IO for real-time messaging](http://blog.nodeknockout.com/post/34243127010/knocking-out-socket-io)
  5. [Persisting data with MongoDB & Mongoose](http://blog.nodeknockout.com/post/34302423628/getting-started-with-mongoose)
  6. [Creating a RESTful API with hapi](http://blog.nodeknockout.com/post/34571027029/making-an-api-happy-with-hapi)
  7. [Sending email with Nodemailer](http://blog.nodeknockout.com/post/34641712180/sending-email-from-node-js)
  8. [Performant RESTful web services restify and DTrace](http://blog.nodeknockout.com/post/34710903021/restify)

  # Services

:markdown
  ## <a name="teleportd"></a>Teleportd

  [Teleportd](http://teleportd.com) provides an API for accessing mobile
  photos that are publicly shared online. It aggregates photos from 14 social
  networks including Twitter and Instagram, and sees an average of 100 photos/s.
  Geolocation and keyword tags are associated with the photos, opening up a
  wide range of use cases.

if services.teleportd
  if !user
    p
      a(href="/login") Sign in
      |  to see how to get 
      strong free access to Teleportd's unlimited api
      |  during Node Knockout.
  else if user && (user.contestant || user.judge)
    h4 For free access to Teleportd's api for Node Knockout
    != markdown(services.teleportd)

:markdown
  ## <a name="monitaur"></a>Monitaur

  [Monitaur](http://monitaur.net) is instant server monitoring. Set it up in
  30 seconds (seriously, it's really easy). Record and view your system stats
  in real time. [Try it out!](http://monitaur.net)<commit_msg>add passport as a resource<commit_after>:markdown
  Here are some useful tutorials and services that we recommend for the
  competition.

  # Tutorials

  1. [How to install node & npm](http://blog.nodeknockout.com/post/33857791331/how-to-install-node-npm)
  2. [Managing dependencies with npm](http://blog.nodeknockout.com/post/33907937140/introduction-to-npm)
  3. [Writing a web app with Express](http://blog.nodeknockout.com/post/34180474119/getting-started-with-express)
  4. [Using Socket.IO for real-time messaging](http://blog.nodeknockout.com/post/34243127010/knocking-out-socket-io)
  5. [Persisting data with MongoDB & Mongoose](http://blog.nodeknockout.com/post/34302423628/getting-started-with-mongoose)
  6. [Creating a RESTful API with hapi](http://blog.nodeknockout.com/post/34571027029/making-an-api-happy-with-hapi)
  7. [Sending email with Nodemailer](http://blog.nodeknockout.com/post/34641712180/sending-email-from-node-js)
  8. [Performant RESTful web services restify and DTrace](http://blog.nodeknockout.com/post/34710903021/restify)
  9. [Implementing OAuth login with Passport](http://blog.nodeknockout.com/post/34765538605/getting-started-with-passport)

  # Services

:markdown
  ## <a name="teleportd"></a>Teleportd

  [Teleportd](http://teleportd.com) provides an API for accessing mobile
  photos that are publicly shared online. It aggregates photos from 14 social
  networks including Twitter and Instagram, and sees an average of 100 photos/s.
  Geolocation and keyword tags are associated with the photos, opening up a
  wide range of use cases.

if services.teleportd
  if !user
    p
      a(href="/login") Sign in
      |  to see how to get 
      strong free access to Teleportd's unlimited api
      |  during Node Knockout.
  else if user && (user.contestant || user.judge)
    h4 For free access to Teleportd's api for Node Knockout
    != markdown(services.teleportd)

:markdown
  ## <a name="monitaur"></a>Monitaur

  [Monitaur](http://monitaur.net) is instant server monitoring. Set it up in
  30 seconds (seriously, it's really easy). Record and view your system stats
  in real time. [Try it out!](http://monitaur.net)
{'fraction_non_alphanumeric': 0.1111111111111111, 'fraction_numerical': 0.05245588936576061, 'mean_word_length': 4.017942583732057, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4121343', 'n_tokens_mistral': 1544, 'n_tokens_neox': 1340, 'n_words': 381}