Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

21 lines (20 sloc) 3.164 kb
<!DOCTYPE html>
<html>
<head>
<title>Nodelay!</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1 id="updates">Nodelay!</h1>
<p><a href="/">This page</a> shows recent edits to the English language wikipedia, <span class="time">right now</span>.</p>
<img id="doggy" src="images/nodelayKnockout.jpg" align="right">
<h2>What / Why / How?</h2>
<p>You're looking at <a href="http://nodeknockout.com/teams/nodelay">team Nodelay</a>'s entry into <a href="http://nodeknockout.com/">Node Knockout</a>, a 48hr programming contest to explore <a href="http://nodejs.org/">node.js</a>. We decided to transform the output of Wikipedia's IRC edit tracking bot into a tidy stream of JSON objects, annotated with information from external datasources, and then visualize that stream.</p>
<p>So far we're using <a href="http://github.com/gf3/Jerk/">Jerk</a>, <a href="http://github.com/miksago/node-websocket-server">node-websocket-server</a> <a href="http://github.com/cloudhead/node-static">node-static</a> and <a href="http://howtonode.org/step-of-conductor">Step</a> to help parallelize HTTP requests. We borrowed a bit of <a href="http://www.jibble.org/pircbot.php">Pircbot</a> to strip formatting information. WebSockets seem to be working in Firefox thanks to a bit of Flash glue from <a href="http://github.com/gimite/web-socket-js/">web-socket-js</a> and a good old fashioned <a href="http://github.com/waywardmonkeys/netty-flash-crossdomain-policy-server/blob/master/sample_flash_policy.xml">socket policy file</a> on port 843. We also hacked in a polling/long response implementation so it all works on devices without Flash and WebSockets, namely the iPad.</p>
<p>We're listening to the English <a href="http://meta.wikimedia.org/wiki/IRC_Channels#Recent_changes">Wikipedia IRC server</a> for update notifications. For each update, we request the page edit metadata using the <a href="http://www.mediawiki.org/wiki/API">Wikipedia APIs</a> and load additional semantic category data from <a href="http://www.freebase.com/docs/data">Metaweb's Freebase</a> and try to get a rank for the 'authority' of the wikipedia entry using <a href="http://code.google.com/apis/ajaxsearch/">Google</a>. Finally, we return an annotated JSON object to the browser using the <a href="http://dev.w3.org/html5/websockets/">HTML5 Web Socket APIs</a>. Mashup-tastic!</p>
<p>The physics simulation that pushes your CPU up to 100% is powered by the fabulous <a href="http://protovis.org">Protovis</a>. Try using your mousewheel to zoom, drag to pan, <a href="http://vis.stanford.edu/protovis/ex/force.html">check out the example</a> to get one for yourself.</p>
<h2>Contact</h2>
<p>We're <a href="http://twitter.com/knodelay">@knodelay</a> on Twitter if you need us.</p>
<a href="http://nodeknockout.com/teams/nodelay" target="nko" title="Help me win Node.js KO!"><img style="position: fixed; top: 5px; right: 5px; border: 0px;" src="http://nodeknockout.com/images/voteko.png" alt="Help me win Node.js KO!" /></a>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.